Дублирующаяся веб-камера

Я пытаюсь копировать свою веб-камеру так, чтобы я мог использовать ее одновременно с двумя различными программами 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

Есть ли что-нибудь, что я могу сделать для фиксации его? или копируйте его с чем-то еще?

0
задан 4 November 2018 в 08:52

1 ответ

Вы, вероятно, скопировали ту команду с веб-сайта, где она была отображена в двух строках. Проблемой является случайное \ в Вашей команде. При удалении его это должно работать:

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, для которого это, очевидно, не могло найти подходящий выходной формат (отмечают пробел в сообщении об ошибке).

0
ответ дан 27 October 2019 в 05:45

Другие вопросы по тегам:

Похожие вопросы: