ffmpeg урожай и водяной знак за один шаг - PullRequest
0 голосов
/ 04 июня 2018

Мы обрабатываем короткие видеоролики.Большинство из них 640x480, записанные на мобильный телефон.У многих из них черная рамка слева и справа.Я хотел бы поставить водяные знаки на видео и в настоящее время использовать эту команду.

ffmpeg -i IN.mp4 -i WATERMARK.png -filter_complex "overlay=main_w-overlay_w-10:main_h-overlay_h-10" OUT.mp4

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

Возможны ли какие-либо из этих или какие-либо другие идеи?

a, Динамически определять черные рамки и регулировать положение водяного знакасоответственно.

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

Большое спасибо за помощь!

РЕДАКТИРОВАТЬ:

Я обнаружил, что это невозможно сделать за один шаг.

1, я могу получить размер обрезки

ffmpeg -i INPUT.mp4 -t 2 -vf cropdetect -f null - 2>&1 | awk '/crop/ { print $NF }' | tail -1

2, затем обрезать видео

ffmpeg -i INPUT.mp4 -filter:v "crop=352:480:144:0" -c:a copy OUTPUT.mp4

3, затем отметьте его водяным знаком

ffmpeg -i INPUT VIDEO.mp4 -i INPUT IMAGE.png -filter_complex "overlay=main_w-overlay_w-10:main_h-overlay_h-10" OUTPUT VIDEO.mp4

Есть ли способ объединить 2 и 3 в один шаг?

1 Ответ

0 голосов
/ 11 июня 2018

Есть ли способ объединить 2 и 3 в один шаг?

Вы можете объединить отдельные цепочки фильтров с точкой с запятой:

ffmpeg -i video.mp4 -i image.png -filter_complex "[0]crop=352:480:144:0[bg];[bg][1]overlay=main_w-overlay_w-10:main_h-overlay_h-10[v]" -map "[v]" -map 0:a -c:a copy output.mp4

Дополнительную информацию см. В документации FFmpeg filter .

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