Я пытаюсь копировать свою веб-камеру так, чтобы я мог использовать ее одновременно с двумя различными программами 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
Есть ли что-нибудь, что я могу сделать для фиксации его? или копируйте его с чем-то еще?
Вы, вероятно, скопировали ту команду с веб-сайта, где она была отображена в двух строках. Проблемой является случайное \
в Вашей команде. При удалении его это должно работать:
ffmpeg -f video4linux2 -s 800x600 -i /dev/video0 -codec copy -f v4l2 /dev/video1 -codec copy -f v4l2 /dev/video2
С тех пор ffmpeg
синтаксис довольно сложен, его документация и много страниц Wiki отдельные команды в качестве примера к строкам кратных чисел для удобочитаемости. \
символ используется для выхода из символа новой строки в этом случае.
Вероятно, вне темы, но если Вы (или кто-либо еще) интересуетесь почему это \
вызванные проблемы:
В большинстве оболочек входные параметры для приложений разделяются символами, определенными в переменной IFS, которые обычно являются пространством, вкладкой и новой строкой (можно поместить столько из тех, которые между параметрами, сколько Вы хотите). Символ ESC \
выходит из следующего символа, который в Вашем случае был [space]
символ и вызванный входной параметр, чтобы быть [space]-codec
вместо -codec
.
документация ffmpeg очень конкретна относительно входных параметров:
Что-либо найденное на командной строке, которая не может быть интерпретирована как опция, считается выходным URL.
... и таким образом, это интерпретировало [space]-codec
как выходной URL, для которого это, очевидно, не могло найти подходящий выходной формат (отмечают пробел в сообщении об ошибке).