Anonymous
Выход SDI в режиме PAL с использованием Gstreamer и карты Declink Studio 4K с Opencv
Сообщение
Anonymous » 26 янв 2025, 13:14
Я пытаюсь транслировать видео через 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
1737886490
Anonymous
Я пытаюсь транслировать видео через SDI с режимом PAL на карте DeckLink Studio 4K.[code]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() [/code] Но получаю эту ошибку [code]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 [/code] Когда я пробую режим 720p50, он работает, но пропускает кадры, и мне приходится принудительно использовать PAL. Подробнее здесь: [url]https://stackoverflow.com/questions/79387728/sdi-output-with-pal-mode-using-gstreamer-and-decklink-studio-4k-card-with-opencv[/url]