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

ffmpeg -y -i video.mp4 -i overlay.png -filter_complex 'overlay[out],amix=inputs=1,pan=stereo:c0=c0:c1=c1' -map '[out]' output.mp4

Лучшая команда должна также разрешить видео, которое не имеет звуковой дорожки и все еще накладывает PNG.

1 ответ1

0

использование

ffmpeg -y -i video.mp4 -i overlay.png
 -filter_complex "[1][0]scale2ref[i][m];[m][i]overlay[v]"
 -map "[v]" -map 0:a? -ac 2 output.mp4

scale2ref масштабирует первый вход (в фильтр) до размера второго. Индексы пэдов ввода 0 и 1 относятся к первому и второму входам FFmpeg, так как этот отсчет начинается с нуля.

-map 0:a? - чем ? говорит FFmpeg для сопоставления аудио, то есть, если оно присутствует. Я удалил amix так как a) фильтры внутри комплекса фильтров не могут быть случайными и b) есть только один вход, поэтому нечего «смешивать».

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .