0

我正在尝试读取以 h263 格式编码的视频流,该视频流是通过 rtsp 和 gstreamer 在 Windows 上接收的。最后,我必须获得 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

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

我不知道我是否使用了正确的元素,或者我的命令结尾是否错误或其他什么..?

4

1 回答 1

0

您可能会收到错误,因为 avdec_h263 的 src 上限与您为应用程序池指定的上限不匹配。运行cmdgst-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);

于 2016-02-10T18:12:14.837 回答