GStreamer无法找到目标caps,Decklink视频源2160p60参数配置链接失败问题
问题原因
decklinkvideosrc默认不会自动检测输入信号格式,gst-inspect查到的是元件全局支持的能力集合,不是当前采集卡对接输入信号后实际可输出的格式,直接硬编码caps参数会出现协商失败的报错。- 不带caps启动时,元件会加载默认的720x486 30i输出配置,和你实际输入的2160p60信号不匹配,采集卡无法捕获到符合配置的帧,因此管道无输出卡顿。
解决方法
- 第一步先开启信号自动检测,验证输入信号识别是否正常:
执行以下命令查看输出的caps参数是否和你输入的2160p60参数匹配:
gst-launch-1.0 -v decklinkvideosrc device-number=1 connection=sdi auto-detect=true ! fakesink silent=false
如果你的输入源是HDMI接口,把connection=sdi改成connection=hdmi即可。
- 第二步如果检测输出的caps符合预期,直接替换为导出命令即可:
gst-launch-1.0 -v decklinkvideosrc device-number=1 connection=sdi auto-detect=true ! 'video/x-raw, width=3840, height=2160, pixel-aspect-ratio=1/1, interlace-mode=progressive, framerate=60/1, format=UYVY,colorimetry=bt2020,chroma-site=mpeg2' ! queue ! filesink location=rp2
- 如果你使用的GStreamer版本较旧无
auto-detect参数,可通过gst-inspect-1.0 decklinkvideosrc查询mode参数的枚举值,找到对应2160p60的枚举编号填入参数即可,示例:
gst-launch-1.0 -v decklinkvideosrc device-number=1 connection=sdi mode=18 ! queue ! filesink location=rp2
注:不同版本
mode枚举值不同,需自行查询对应版本的枚举值。
- 额外排查点:确认你的Blackmagic驱动版本和GStreamer版本匹配,过旧的驱动无法正常支持Decklink 8k Pro的4通道2160p60输入,也会出现协商失败的问题。
内容的提问来源于stack exchange,提问作者BarkerChippy
相关产品推荐
相关产品推荐

