ffmpeg cli фильтр, который требует ввода данных пользователем - PullRequest
0 голосов
/ 02 марта 2019

Есть ли способ создания сценариев фильтров для ffmpeg, чтобы при изменении ввода фильтр изменил поведение?

Примером может быть изменение контраста с ключом или смешивание двух видео с другим ключом во время записи потока.

Я видел, что мог бы сделать это статическим способом, например перезапуститьзапись с новым поведением и вызов concat после этого приводят к некоторой потере кадров из-за уничтожения процесса и его отмены, но я хотел знать, возможно ли это, без вызова перезапуска.

Ответы [ 2 ]

0 голосов
/ 04 марта 2019

Используйте фильтры zmq и azmq .В отличие от фильтра sendcmd, который использует предварительно записанные команды, (a) zmq позволяет произвольно отправлять команды фильтра.

Чтобы включить эти фильтры, вам необходимо установить библиотеку libzmq и заголовки и настроить ffmpeg с помощью --enable-libzmq.

Только фильтры, которые поддерживают команды, могут использоваться с этим фильтром.Обратитесь к выводу ffmpeg -filters, чтобы просмотреть список фильтров, которые поддерживают команды.Кроме того, не все параметры фильтра считаются командами.Список поддерживаемых команд см. В документации каждого фильтра.


Примеры из документации

Рассмотрим следующий фильтр-фильтр, сгенерированный ffplay.В этом примере последний фильтр наложения имеет имя экземпляра.Все остальные фильтры будут иметь имена экземпляров по умолчанию.

ffplay -dumpgraph 1 -f lavfi "
color=s=100x100:c=red  [l];
color=s=100x100:c=blue [r];
nullsrc=s=200x100, zmq [bg];
[bg][l]   overlay     [bg+l];
[bg+l][r] overlay@my=x=100 "

Чтобы изменить цвет левой стороны видео, можно использовать следующую команду:

echo Parsed_color_0 c yellow | tools/zmqsend

Чтобы изменить правосторона:

echo Parsed_color_1 c pink | tools/zmqsend

Чтобы изменить положение правой стороны:

echo overlay@my x 150 | tools/zmqsend

0 голосов
/ 04 марта 2019

Я думаю, что вы ищете sendcmd , который поддерживается несколькими фильтрами.См. документация по фильтрам FFmpeg (поиск по sendcmd).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...