h.264 - Gstreamer 错过了 H.264
问题描述
我想尝试 GStreamer 使用 RTSP 流连接到远程 IP 摄像机。所以我已经下载并安装了最后一个版本。
在使用 GStreamer页面上说:GStreamer 还提供了 playbin,这是一个基本的媒体播放插件,可以自动处理大多数播放细节 所以我尝试使用以下命令连接到相机:
gst-launch-1.0 playbin uri=rtsp://192.168.1.2:554/av0_0
不幸的是我得到错误:
错误:来自元素 /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0:您的 GStreamer 安装缺少插件。附加调试信息:../gst/playback/gsturidecodebin.c(988):no_more_pads_full ():/GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0:找不到合适的插件:../gst/playback/gstdecodebin2.c(4679): gst_decode_bin_expose (): /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0: 找不到合适的插件: 缺少解码器: H.264 (Main Profile) (video/x-h264, stream-format=(string)byte-stream,对齐=(字符串)au,级别=(字符串)3.1,配置文件=(字符串)主,宽度=(整数)1280,高度=(整数)720,帧率=(分数)0/1,隔行模式=(字符串) )渐进式,色度格式=(字符串)4:2:0,位深度亮度=(uint)8,位深度色度=(uint)8,解析=(布尔)真)
这是否意味着我的安装错过了 h264 的解码器?怎么可能?我猜h264是最流行的编解码器。我做错什么了吗?
更新:
./gst-inspect-1.0 | grep h264
videoparsersbad: h264parse: H.264 parser
typefindfunctions: video/x-h264: h264, x264, 264
rtp: rtph264pay: RTP H264 payloader
rtp: rtph264depay: RTP H264 depayloader
openh264: openh264enc: OpenH264 video encoder
openh264: openh264dec: OpenH264 video decoder
解决方案
您是否使用“完成”选项安装了 GStreamer MSI?如果它以典型模式安装,则不会安装 libav 插件。您可以更改安装并选择附加功能或重新安装。
当您以 Complete 模式安装时,您应该能够找到 avdec_h264。或者,您可以选择自定义模式,然后启用“GStreamer 1.0 libav 包装器”。
$ gst-inspect-1.0.exe libav | grep h264
avdec_h264: libav H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 decoder
推荐阅读
- c++ - 当我们复制/分配派生类对象时,如何在继承中复制基类成员?
- kotlin - 在函数文字中使用隐式变量
- google-chrome - Chrome 扩展与开发服务器通信
- elixir - 如何同时执行函数
- plugins - Summernote 和自定义“魔术笔”(样式)工具
- java - 内存问题 - InputStream/OutputStream
- android - 控制/指定 Android Jetpack Navigation 深层链接主机名
- php - PHP DateTime 对象提前到最近的 17 号
- java - 如何在Java中服务器的特定路径中创建文件?
- c# - COM 对象在 C# 中作为提升的权限运行