Как объединить видео MTS и применить фильтры без перекодирования с помощью FFmpeg?
У меня есть файл txt со многими видеофайлами МТС. Я хочу объединить их все вместе с помощью FFmpeg и получить один большой файл MTS. Но я хочу применить нарастание и затухание к окончательному видео. Можно без перекодирования? Потому что перекодирование занимает много времени, но мне нужно делать это быстро.
1 ответ
Вы можете просто перекодировать только те видео, к которым хотите добавить плавные переходы, и скопировать в потоке остальные.
Добавить плавное появление .
ffmpeg -i first.MTS -vf "fade=t=in:d=1" -c:v libx264 -c:a copy fadein.mts
Добавить постепенное исчезновение.
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. Я предполагаю, что все ваши входные данные похожи, поэтому в этом случае он, вероятно, будет работать без добавления дополнительных параметров.
Делать
input.txt
содержащий что-то вроде:file 'fadein.mts' file '0002.MTS' file '0003.MTS' file '0004.MTS' file 'fadeout.mts'
Объединитесь с демультиплексором concat .
ffmpeg -f concat -i input.txt -c copy output.mts