使用 gstreamer 的简单编码和解码管道?
Simple encode and decode pipeline with gstreamer?
我正在尝试创建一个简单的 gstreamer1-0 管道,希望使用尽可能最基本的元素来编码和解码 h264 网络摄像头源。我已经(理论上)安装了所有标准的、好的、坏的和丑陋的 gstreamer 库。我使用 "Theoretically" 这个词是因为我没有 root 权限,我必须请求 IT download/install 我可能需要的每个库,这很痛苦。
我试过以下管道,但没有用:
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.
您可能缺少 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
现在你可以看到解码器了
gst-launch-1.0 videotestsrc num-buffers=10 ! x264enc ! avdec_h264 ! videoconvert ! autovideosink
请注意 videoconvert
才能显示视频。
我正在尝试创建一个简单的 gstreamer1-0 管道,希望使用尽可能最基本的元素来编码和解码 h264 网络摄像头源。我已经(理论上)安装了所有标准的、好的、坏的和丑陋的 gstreamer 库。我使用 "Theoretically" 这个词是因为我没有 root 权限,我必须请求 IT download/install 我可能需要的每个库,这很痛苦。
我试过以下管道,但没有用:
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.
您可能缺少 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
现在你可以看到解码器了
gst-launch-1.0 videotestsrc num-buffers=10 ! x264enc ! avdec_h264 ! videoconvert ! autovideosink
请注意 videoconvert
才能显示视频。