Потоковая передача с веб-камеры на GStreamer shmsink с использованием Python и OpenCV.Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Потоковая передача с веб-камеры на GStreamer shmsink с использованием Python и OpenCV.

Сообщение Anonymous »

Мне удалось использовать GStreamer только для потоковой передачи видео с веб-камеры на shmsink:

Код: Выделить всё

# Sender:
gst-launch-1.0 v4l2src ! "video/x-raw,format=YUY2,color-matrix=sdtv,chroma-site=mpeg2,width=(int)320, \
height=(int)240,framerate=(fraction)30/1"  ! shmsink socket-path=/tmp/blah shm-size=2000000

# Receiver to verify:
gst-launch-1.0 shmsrc socket-path=/tmp/blah \
! "video/x-raw,format=YUY2,color-matrix=sdtv,chroma-site=mpeg2,width=(int)320,height=(int)240,framerate=(fraction)30/1" \
! queue ! videoconvert ! autovideosink
Теперь нужно выполнить потоковую передачу массивов numpy с помощью opencv, поэтому я просто заменил v4l2src на appsrc:

Код: Выделить всё

import time
import cv2

fps = 30.
frame_width = 320
frame_height = 240
cap = cv2.VideoCapture(0)
cap.set(cv2.CAP_PROP_FRAME_WIDTH, frame_width)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, frame_height)
cap.set(cv2.CAP_PROP_FPS, fps)

gst_str = "appsrc ! \"video/x-raw,format=YUY2,color-matrix=sdtv,chroma-site=mpeg2,width=(int)320, " \
"height=(int)240,framerate=(fraction)30/1\" ! shmsink socket-path=/tmp/blah shm-size=2000000"

# Create VideoWriter as a SHM sink
out = cv2.VideoWriter(gst_str, cv2.CAP_GSTREAMER, fps, (frame_width, frame_height), True)

while True:
ret, frame = cap.read()
if ret:
out.write(frame)
cv2.imshow("Frame", frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
else:
print("Camera error.")
time.sleep(10)

cap.release()

Но это вообще не создает файл /tmp/blah.
Есть идеи, почему opencv не создает цель shmsink-файл?

Подробнее здесь: https://stackoverflow.com/questions/694 ... hon-opencv
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»