如何通过带有gstreamer的rtsp观看h263视频



我正在尝试读取以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-h263video/x-raw, format=RGB

我是否有关于大写的错误消息,或者程序崩溃。

我不知道我是否没有使用正确的元素,或者我的命令结束是否错误或其他原因..?

你可能会

收到错误,因为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);

相关内容

  • 没有找到相关文章