我试图读取以h263格式编码的视频流,我在Windows上通过rtsp与gstreamer接收。最后,我必须得到一个BGR或RGB格式(使用Qimage / Qt)。
我可以通过 vlc rtsp://172.22.1.2:8554/test
我可以使用 cmd 观看流程:
gst-launch-1.0 rtspsrc location=rtsp://172.22.1.2:8554/test ! rtph263pdepay ! avdec_h263 ! autovideosink
我无法在我的计划中 。
我试过了m_pipeline = gst_parse_launch("rtspsrc location=rtsp://172.22.1.2:8554/test ! rtph263pdepay ! avdec_h263 ! appsink name=sink caps=video/x-raw, format=BGR", &error);
我在uridecodebin uri=..
状态下尝试rtspsrc location=..
。
我尝试了video/x-h263
和video/x-raw, format=RGB
是否有关于大写字母的错误消息,或程序崩溃。
我不知道我是否使用了正确的元素,或者我的命令结束是否错误或其他原因......?
答案 0 :(得分:0)
您可能会收到错误,因为avdec_h263的src上限与您为appsink指定的上限不符。运行cmd gst-inspect-1.0 avdec_h264
,您可以看到src pad caps模板仅支持video/x-raw format = I420
,而您的appsink设置为video/x-raw format=BGR
。
尝试将videoconvert
元素添加到解码器和appsink之间的管道中:
m_pipeline = gst_parse_launch("rtspsrc location=rtsp://172.22.1.2:8554/test ! rtph263pdepay ! avdec_h263 ! videoconvert ! appsink name=sink caps=video/x-raw, format=BGR", &error);