这个 GStreamer 管道有什么问题?

问题描述 投票:0回答:2

我确定这个管道可以在我设置的早期 Ubuntu 系统上运行(为了便于阅读而格式化):

playbin
    uri=rtspt://user:[email protected]/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

我做错了什么?

gstreamer pipeline
2个回答
4
投票

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

首先,尝试运行

gst-inspect-1.0
。这应该输出 gstreamer 检测到的所有元素的长列表。

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

0
投票

尝试执行以下操作:

  1. sudo apt-get install h264enc
  2. sudo apt-get install --yes libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-bad1.0-dev gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-tools gstreamer1.0-x gstreamer1.0-alsa gstreamer1.0-gl gstreamer1.0-gtk3 gstreamer1.0-qt5 gstreamer1.0-pulseaudio 
  3. sudo apt-get install --yes libgirepository1.0-dev libgstrtspserver-1.0 libgstreamer1.0-dev

如果您遇到损坏的软件包,请运行此命令:

sudo apt --fix-broken install
,然后执行上述步骤。

© www.soinside.com 2019 - 2024. All rights reserved.