Как объединить видео MTS и применить фильтры без перекодирования с помощью FFmpeg?

У меня есть файл txt со многими видеофайлами МТС. Я хочу объединить их все вместе с помощью FFmpeg и получить один большой файл MTS. Но я хочу применить нарастание и затухание к окончательному видео. Можно без перекодирования? Потому что перекодирование занимает много времени, но мне нужно делать это быстро.

1 ответ

Вы можете просто перекодировать только те видео, к которым хотите добавить плавные переходы, и скопировать в потоке остальные.

  1. Добавить плавное появление .

            ffmpeg -i first.MTS -vf "fade=t=in:d=1" -c:v libx264 -c:a copy fadein.mts
    
  2. Добавить постепенное исчезновение.

            ffmpeg -i last.MTS -vf "fade=t=out:d=1:st=9" -c:v libx264 -c:a copy fadeout.mts
    
    • Предполагается, что длится 10 секунд, и вы хотите, чтобы 1-секундное затухание начиналось через 9 секунд.
    • Если вы не знаете продолжительность last.MTSВы можете получить это с помощью Как получить продолжительность видео в секундах?
    • Для правильной работы конкатенации необходимо, чтобы эти новые выходные данные соответствовали этим атрибутам других файлов MTS. Я предполагаю, что все ваши входные данные похожи, поэтому в этом случае он, вероятно, будет работать без добавления дополнительных параметров.
  3. Делать input.txt содержащий что-то вроде:

            file 'fadein.mts'
    file '0002.MTS'
    file '0003.MTS'
    file '0004.MTS'
    file 'fadeout.mts'
    
  4. Объединитесь с демультиплексором concat .

            ffmpeg -f concat -i input.txt -c copy output.mts
    
Другие вопросы по тегам