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

使用gstreamer进行简单的编码和解码管道?,gstreamer,h.264,encoder,decoder,Gstreamer,H.264,Encoder,Decoder,我正在尝试创建一个简单的gstreamer1-0管道,对h264进行编码和解码,希望使用最基本的元素。我已经(理论上)安装了所有标准的、好的、坏的和难看的gstreamer库。我使用“理论上”这个词是因为我没有root权限,我必须请求它下载/安装我可能需要的每个库,这是一件非常痛苦的事情 我尝试了以下管道,但不起作用: gst-launch-1.0 v4l2src ! autovideoconvert ! x264enc bitrate=256 ! decodebin ! autovideosi

我正在尝试创建一个简单的gstreamer1-0管道,对h264进行编码和解码,希望使用最基本的元素。我已经(理论上)安装了所有标准的、好的、坏的和难看的gstreamer库。我使用“理论上”这个词是因为我没有root权限,我必须请求它下载/安装我可能需要的每个库,这是一件非常痛苦的事情

我尝试了以下管道,但不起作用:

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,对吗

现在我已经读过了,我不知道如何安装解码器块。如果有人能向我解释一下,为了让这个简单的管道运行,该怎么做?解释得越详细越好,因为我后来不得不用法语向它转达这个解释,所以我坚持:这将是一个巨大的痛苦


TY.

您可能缺少h264解码器插件。你可以跟我核对一下

gst-inspect-1.0 | grep 264
通常使用的解码器是
avdec_h264


这将列出与h264相关的插件。如果您没有任何解码器,则需要安装gst libav软件包。

在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

现在你可以看到解码器了

是的,我试过了,但没有看到。。。非常感谢avdec_h264和gst libav套餐信息。我会调查的。将avdec_h264字与x264enc块匹配,还是必须使用匹配的avdec_h264编码块?编辑:这是我检查时得到的结果:x264:x264enc:x264enc rtp:rtph264depay:rtp H264 depayloader rtp:rtph264pay:rtp H264 payloader videoparserbad:h264parse:H.264 parser typefindfunctions:video/x-H264:H264,x264,264是的,您缺少H264解码器。avdec_h264可与x264enc配合使用。我想gst libav软件包有另一个h264编码器,但x264enc还可以。太棒了,非常感谢。。。我会尝试一下,尽快给你回复。。。顺便问一下,我如何选择答案?如果只有一个,有必要吗?不客气。最好选择一个答案,让其他有同样问题的人知道它对你有效,即使只有一个答案。()顺便说一下,检查一下版本