FFMPEG объединяет фильтры для водяных знаков и скорости видео

#ffmpeg #command-line

Вопрос:

Я использую FFMPEG для ускорения видео и добавления водяного знака. Водяной знак-это процент от размера видео.

Для ускорения я использую

 ffmpeg -i input.mp4 -filter_complex "[0:v]setpts=0.5*PTS[v];[0:a]atempo=2.0[a]" -map "[v]" -map "[a]" output.mp4
 

и для добавления водяного знака я использую

 ffmpeg -i input.mp4 -i watermark.png -filter_complex "[1][0]scale2ref=w=oh*mdar:h=ih*0.1[logo];[logo]overlay=5:H-h-5" -c:a copy output.mp4
 

Оба хорошо работают сами по себе. Я пытаюсь объединить их в единую команду. Есть много вопросов/ответов, касающихся подобных проблем, которые я мог бы найти, однако они кажутся либо устаревшими, либо я просто не могу заставить их работать.

Чтобы объединить фильтры, которые я прочитал, нужно просто добавить запятую, но это, похоже, не работает

 ffmpeg -i input.mp4 -i watermark.png -filter_complex "[1][0]scale2ref=w=oh*mdar:h=ih*0.1[logo];[logo]overlay=5:H-h-5,[0:v]setpts=0.5*PTS[v];[0:a]atempo=2.0[a]" -map "[v]" -map "[a]" output.mp4
 

Команда будет выполнена без ошибок и добавит водяной знак, но фильтр аудио/видео не применяется.

Предложения?

Спасибо

Ответ №1:

Объединенная команда:

 ffmpeg -i input.mp4 -i watermark.png -filter_complex "[1][0]scale2ref=w=oh*mdar:h=ih*0.1[logo];[logo]overlay=5:H-h-5,setpts=0.5*PTS;[0:a]atempo=2.0" output.mp4
 

Соедините линейные фильтры запятой. Соедините цепочки фильтров точкой с запятой. См. Введение к фильтрации FFmpeg.