使用gstreamer简单编码和解码管道?

时间:2017-04-17 15:21:09

标签: gstreamer h.264 encoder decoder

我正在尝试创建一个简单的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。

2 个答案:

答案 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

现在您可以看到解码器