这个GStreamer管道出了什么问题?

时间:2016-04-07 05:47:12

标签: gstreamer pipeline

我确信我已经将这个管道用于我之前设置的早期Ubuntu系统(格式化以便于阅读):

playbin
    uri=rtspt://user:pswd@192.168.xxx.yyy/ch1/main
    video-sink='videoconvert
                ! videoflip method=counterclockwise
                ! fpsdisplaysink'

然而,当我尝试在我的程序中使用它时,我得到:

Missing element: H.264 (Main Profile) decoder
WARNING: from element /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0:
    No decoder available for type 'video/x-h264,
    stream-format=(string)avc, alignment=(string)au,
    codec_data=(buffer)014d001fffe10017674d001f9a6602802dff35010101400000fa000030d40101000468ee3c80,
    level=(string)3.1, profile=(string)main, width=(int)1280,
    height=(int)720, framerate=(fraction)0/1, parsed=(boolean)true'.

Additional debug info:
    gsturidecodebin.c(938): unknown_type_cb ():
        /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0

现在我非常确定我安装了 H264解码器,gstreamer插件autogen.sh/configure确实正确认识到了这一点。已安装的软件包包括h264enclibx264-142libx264-devx264

如果我使用更“可接受的”autovideosink代替fpsdisplaysink,或者我尝试使用gst-play-1.0播放RTSP流,则会发生完全相同的事情。但是,如果我使用测试模式源videotestsrc,它就可以工作。

我做错了什么?

1 个答案:

答案 0 :(得分:0)

看起来gstreamer无法找到适合解码H264的插件。您没有安装H264解码器元素,或者gstreamer正在为您的元素寻找错误的路径。

首先,尝试运行gst-inspect-1.0。这应该输出gstreamer检测到的所有元素的长列表。

  • 如果这不返回任何元素,您可能需要将GST_PLUGIN_PATH环境变量设置为指向安装插件的目录。 Running Gstreamer - 此链接应该有所帮助。
  • 如果它返回许多元素,请运行gst-inspect-1.0 avdec_h264以验证您是否具有H264解码器元素。