ffmpeg,/dev/video0,-f decklink

ffmpeg,/dev/video0,-f decklink,ffmpeg,video-capture,ubuntu-18.04,Ffmpeg,Video Capture,Ubuntu 18.04,我正试图通过ffmpeg在运行Ubuntu18.04.2 LTS的无头主机上从PCI卡Blackmagic DeckLink Mini Recorder中捕获视频,希望能使用如下命令 ffmpeg -f decklink -i /dev/video0 ... 我怎样才能做到这一点?我有两个障碍 否/dev/video0 ffmpeg-i/dev/video0…失败:/dev/video0:没有这样的设备或地址。 v4l2 ctl--列出设备失败,并显示相同的错误消息 我构建了/dev/vide

我正试图通过ffmpeg在运行Ubuntu18.04.2 LTS的无头主机上从PCI卡Blackmagic DeckLink Mini Recorder中捕获视频,希望能使用如下命令

ffmpeg -f decklink -i /dev/video0 ...
我怎样才能做到这一点?我有两个障碍

否/dev/video0
ffmpeg-i/dev/video0…
失败:
/dev/video0:没有这样的设备或地址
v4l2 ctl--列出设备
失败,并显示相同的错误消息

我构建了/dev/video0,看起来还可以:

mknod /dev/video0 c 81 0
chown root.video /dev/video0
chmod g+rw /dev/video0
为了将这个文件与工作文件进行比较,我在这个主机上运行了
strace cat/dev/video0
,在另一个主机(Ubuntu 14)上运行了一个工作文件/dev/video0。这里的输出开始不同(好,然后坏):

因此/dev/video0在低于ffmpeg或v4l2甚至cat的级别上被破坏

在Ubuntu14上,
Man8Makedev
建议错误消息意味着“内核没有配置或加载驱动程序。”

这个Ubuntu18主机没有那个手册页,但它确实有一些
/snap/core/*/sbin/MAKEDEV
,所有这些都是一样的,所以我尝试了

/snap/core/6350/sbin/MAKEDEV -n -v video
它将创建100多个设备videoXX、radioXX、vtxXX、vbiXX。这些设备还不存在,所以尝试一下似乎是无害的

rm /dev/video0; /snap/core/6350/sbin/MAKEDEV video
从cat或ffmpeg重建了/dev/video0,但“没有这样的设备”仍然存在

无甲板连接
ffmpeg-f decklink…
失败,输入格式未知:“decklink”

无论是Ubuntu自己的3.4.4-0ubuntu0.18.04.1版本,还是2019年3月13日从源代码编译的N-93330-g7ff89574c7版本,
ffmpeg-devices
(fbdev、lavfi、oss、v4l2)和
ffmpeg-formats
(约350),都没有提及black、deck或link:

git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg
cd ffmpeg
./configure --enable-nonfree --disable-doc --disable-w32threads --enable-pthreads
(尽管
/configure--help
提到了
--enable decklink
,但使用该选项会产生“ERROR:DeckLinkAPI.h not found.”
updatedb&locate DeckLinkAPI.h
也找不到具有该名称的文件。)

DeckLink PCI卡由
hwinfo
lspci
识别

lsmod
报告加载的模块
blackmagic
blackmagic\u io

可能PCI卡安装正常,但ffmpeg无法访问它,因为我无法对此进行配置


编辑:重新启动无法修复任何问题。

您必须为Linux安装“”软件,该软件支持x64和i386(但不支持arm)。它将提供DeckLinkAPI.h,udev应该在/etc中自动创建视频设备。

是的,我下载了Blackmagic_DeckLink_SDK_10.11.4.zip,将其解压缩到/foo中,然后执行
/configure--enable DeckLink--extra cflags='-I/foo/Blackmagic_DeckLink_SDK_10.11.1/Linux/include'&&制作
。然后
/ffmpeg-f decklink-list_formats 1-i'decklink Mini Recorder'
列出了十几种格式。现在我在猜测哪种格式会产生颜色条以外的内容。看起来根本没有使用/dev/video0。当我完成实际视频捕获后,我会接受答案。剩下的
/dev/video0
与Decklink迷你监视器(或任何Decklink卡)无关。它可能是一个网络摄像头或其他东西,可能它的驱动程序有问题或完全丢失。捕获视频只需要猜测哪个
-format_code xxxx
对应于hdmi电缆发送的内容。看起来Linux驱动程序只提供了盒子广告格式的一小部分。我最后的工作命令,仅供参考:
/ffmpeg-y-format\u code hp60-f decklink-video\u input hdmi-i“decklink Mini Recorder”…
iirc,blackmagic设备不做任何(或很多)转换。因此,如果您只看到“部分格式”,那么这很可能是因为您的输入流只使用了部分格式(可能只有一种格式)。我删除了
v4l2
标记,因为decklink设备不提供v4l2支持。
git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg
cd ffmpeg
./configure --enable-nonfree --disable-doc --disable-w32threads --enable-pthreads