Выход SDI в режиме PAL с использованием Gstreamer и карты Declink Studio 4K с OpencvPython

Программы на Python
Ответить
Anonymous
 Выход SDI в режиме PAL с использованием Gstreamer и карты Declink Studio 4K с Opencv

Сообщение Anonymous »

Я пытаюсь транслировать видео через SDI с режимом PAL на карте DeckLink Studio 4K.

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

GST_DEBUG=3 gst-launch-1.0 videotestsrc ! video/x-raw,format=BGR,width=720,height=576,framerate=25/1 ! videoconvert ! video/x-raw,format=UYVY,width=720,height=576,framerate=25/1,pixel-aspect-ratio=12/11,interlace-mode=interleaved,colorimetry=bt601,chroma-site=mpeg2 ! decklinkvideosink mode=pal device-number=0
< /code>
Теперь я использую этот код с GST_DEBUG = 3 Python3 Stream_sdi.py < /p>
import cv2

cap = cv2.VideoCapture("output_main.mp4")

gst_pipe = "appsrc ! video/x-raw,format=BGR,width=720,height=576,framerate=25/1 ! videoconvert ! video/x-raw,format=UYVY,width=720,height=576,framerate=25/1,pixel-aspect-ratio=12/11,interlace-mode=interleaved,colorimetry=bt601,chroma-site=mpeg2 ! decklinkvideosink mode=pal device-number=0"

out = cv2.VideoWriter(gst_pipe, cv2.CAP_GSTREAMER, 0, 25.0, (720,576), True)

if not out.isOpened():
print("coud not open out")
cap.release()
exit()

while True:
ret, frame = cap.read()
if not ret:
break

print(frame.shape)

out.write(frame)

cv2.imshow("F", frame)

key = cv2.waitKey(40)
if key == ord('q'):
break

out.release()
cap.release()
Но получаю эту ошибку

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

0:00:00.031007288  8176     0x39964aa0 ERROR           videoconvert gstvideoconvert.c:490:gst_video_convert_set_info: input and output formats do not match
0:00:00.031014444  8176     0x39964aa0 WARN           basetransform gstbasetransform.c:1370:gst_base_transform_setcaps: FAILED to configure incaps video/x-raw, format=(string)BGR, width=(int)720, height=(int)576, framerate=(fraction)25/1 and outcaps video/x-raw, width=(int)720, height=(int)576, framerate=(fraction)25/1, format=(string)UYVY, pixel-aspect-ratio=(fraction)12/11, interlace-mode=(string)interleaved, colorimetry=(string)bt601, chroma-site=(string)mpeg2
(576, 720, 3)
[ WARN:0@0.143] global cap_gstreamer.cpp:2839 handleMessage OpenCV | GStreamer warning: Embedded video playback halted; module appsrc0 reported: Internal data stream error.
[ WARN:0@0.145] global cap_gstreamer.cpp:2730 writeFrame OpenCV | GStreamer warning: Error pushing buffer to GStreamer pipeline
(576, 720, 3)
[ WARN:0@0.188] global cap_gstreamer.cpp:2730 writeFrame OpenCV | GStreamer warning: Error pushing buffer to GStreamer pipeline
(576, 720, 3)
[ WARN:0@0.232] global cap_gstreamer.cpp:2730 writeFrame OpenCV | GStreamer warning: Error pushing buffer to GStreamer pipeline
Когда я пробую режим 720p50, он работает, но пропускает кадры, и мне приходится принудительно использовать PAL.


Подробнее здесь: https://stackoverflow.com/questions/793 ... ith-opencv
Ответить

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

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

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

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

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