我确信我已经将这个管道用于我之前设置的早期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
确实正确认识到了这一点。已安装的软件包包括h264enc
,libx264-142
,libx264-dev
和x264
。
如果我使用更“可接受的”autovideosink
代替fpsdisplaysink
,或者我尝试使用gst-play-1.0
播放RTSP流,则会发生完全相同的事情。但是,如果我使用测试模式源videotestsrc
,它就可以工作。
我做错了什么?
答案 0 :(得分:0)
看起来gstreamer无法找到适合解码H264的插件。您没有安装H264解码器元素,或者gstreamer正在为您的元素寻找错误的路径。
首先,尝试运行gst-inspect-1.0
。这应该输出gstreamer检测到的所有元素的长列表。
gst-inspect-1.0 avdec_h264
以验证您是否具有H264解码器元素。