首页 > 解决方案 > 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

标签: h.264rtspgstreamer-1.0

解决方案


您是否使用“完成”选项安装了 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

推荐阅读