我正在尝试创建一个简单的gstreamer1-0管道,它可以使用最基本的元素对h264编码和解码网络摄像头。我已经(理论上)安装了所有标准,好,坏和丑陋的gstreamer库。我使用了“Theoretically”这个词,因为我没有root权限,我必须要求IT下载/安装我可能需要的每个库,这非常痛苦。
我尝试了以下管道,但它无效:
gst-launch-1.0 v4l2src ! autovideoconvert ! x264enc bitrate=256 ! decodebin ! autovideosink
我得到以下输出:
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
Redistribute latency...
Missing element: H.264 decoder
ERROR: from element /GstPipeline:pipeline0/GstDecodeBin:decodebin0: Your GStreamer installation is missing a plug-in.
Additional debug info:
gstdecodebin2.c(3977): gst_decode_bin_expose (): /GstPipeline:pipeline0/GstDecodeBin:decodebin0:
no suitable plugins found
Execution ended after 0:00:01.795803500
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...
所以据说我错过了我的插件块来解码h264吧?
现在我已经阅读了这个forum,我不知道如何安装解码器块。如果有人可以向我解释如何做到这一点,以便运行简单的管道?解释越精细越好,因为我后来不得不将这种解释传达给IT和法语,所以我坚持认为:这将是一个巨大的痛苦。
TY。
答案 0 :(得分:3)
您可能缺少h264解码器插件。您可以使用
进行检查gst-inspect-1.0 | grep 264
通常使用的解码器是avdec_h264
这将列出与h264相关的插件。如果您没有任何解码器,那么您将要安装gst-libav软件包。
答案 1 :(得分:1)
在centos 7中,您可以通过yum安装它:
sudo yum install -y http://download1.rpmfusion.org/free/el/updates/7/x86_64/g/gstreamer1-libav-1.10.4-2.el7.x86_64.rpm
,然后再次检查:
gst-inspect-1.0 | grep 264
现在您可以看到解码器