我正在尝试复制我的网络摄像头,以便可以同时在两个不同的 python 程序中使用它,我目前正在尝试使用以下命令使用 v4l2loopback 进行复制:
sudo modprobe v4l2loopback devices=2
并且它确实打开了一个额外内容因为我得到了以下内容:
Dummy video device (0x0000) (platform:v4l2loopback-000):
/dev/video1
Lenovo EasyCamera: Lenovo EasyC (usb-0000:00:14.0-1):
/dev/video0
因此我尝试使用以下命令复制它
ffmpeg -f video4linux2 -s 800x600 -i /dev/video0 -codec copy -f v4l2 /dev/video1 \ -codec copy -f v4l2 /dev/video2
但我收到以下错误:
Unable to find a suitable output format for ' -codec'-codec: Invalid argument
我能做些什么来修复它?或者用别的东西复制它?
答案1
您可能从网站上复制了该命令,但该命令以两行显示。问题在于\
您的命令中存在错误。如果您删除它,它应该可以正常工作:
ffmpeg -f video4linux2 -s 800x600 -i /dev/video0 -codec copy -f v4l2 /dev/video1 -codec copy -f v4l2 /dev/video2
由于ffmpeg
的语法相当复杂,其文档和许多 wiki 页面将示例命令分成多行以便于阅读。\
在这种情况下, 字符用于转义换行符。
可能与主题无关,但如果你(或其他任何人)对为什么会导致问题感兴趣\
:
在大多数 shell 中,应用程序的输入参数由独立财务顾问变量,通常是空间,标签和新队(您可以在参数之间放置任意多个转义符)。转义符\
会转义下一个字符,在您的情况下是字符[space]
,并导致输入参数变成[space]-codec
而不是-codec
。
ffmpeg 的文档对于输入参数非常具体:
命令行上任何不能被解释为选项的内容都被视为输出 URL。
...因此它将其解释[space]-codec
为输出 url,但显然它找不到合适的输出格式(请注意错误消息中的空格字符)。