Вопрос ffmpeg объединить тире камеры mp4 видео с последней секундой?


У меня есть dashcam (сделанный на Тайване), он генерирует видео ровно 5 минут и 1 секунду, последняя 1 секунда дублирует следующее видео в первую секунду.

Я хочу вырезать последнюю секунду каждого видео, а затем объединить их все и понизить диск 1080p до 720p с оптимизированным сжатием.

Как это сделать с помощью ffmpeg? заранее спасибо!


2
2018-01-01 03:53


происхождения




ответы:


Шаг 1:

Отрезать последнюю секунду из файла ровно 5 м 1 с.

ffmpeg -i "input.mp4" -t 300 -c copy "input-5m.mp4"

Шаг 2:

Объединение файлов и масштабирование до 720p

1) Создайте текстовый файл, содержащий список всех обрезанных файлов, последовательно, как это

file 'input1-5m.mp4'
file 'input2-5m.mp4'
file 'input3-5m.mp4'
...
file 'inputn-5m.mp4'

2) Слить и сжать

ffmpeg -f concat -i "list.txt" -vf scale=1280x720,setsar=1 -sws_flags lanczos -c:v libx264 -crf 23 -c:a aac "merged-720p.mp4"

Если у вас есть более старая сборка ffmpeg, вам, возможно, придется вставить -strict -2 чтобы пропустить нижний кодировщик VisualOn AAC.


Если вы хотите пропустить Шаг 1, то вы можете использовать приведенную ниже команду для части 2 Шаг 2:

ffmpeg -f concat -i "list.txt" -vf "select='(gte(mod((t\),301),0)*lt(mod((t\),301),300))',scale=1280x720,setsar=1,setpts=N/TB/FRAME_RATE" -af "aselect='(gte(mod((t\),301),0)*lt(mod((t\),301),300))',asetpts=N/SR/TB" -sws_flags lanczos -c:v libx264 -crf 23 -c:a aac "merged-720p.mp4"

Но это не сработает, если какая-либо временная метка входных файлов имеет неправильный шаблон.


С новым concatdec_select флаг, это также можно сделать следующим образом

1) Создайте текстовый файл, как указано выше, но с указанными точками:

file 'input1.mp4'
outpoint 300
file 'input2.mp4'
outpoint 300
file 'input3.mp4'
outpoint 300
...
file 'inputn.mp4'
outpoint 300   

2) Слить и сжать

ffmpeg -f concat -i "list.txt" -vf "select=concatdec_select,scale=1280x720,setsar=1,setpts=N/TB/FRAME_RATE" -af "aselect=concatdec_select,asetpts=N/SR/TB" -sws_flags lanczos -c:v libx264 -crf 23 -c:a aac "merged-720p.mp4"

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


3
2018-01-01 08:38



спасибо, возможно ли сделать два шага вместе без создания промежуточного файла? - est
Возможно, если временные метки, сгенерированные камерой, либо сброшены, либо непрерывны без сдвига по файлам. Я скоро добавлю команду. Я также вижу новый параметр concatdec_select недавно добавлен в ffmpeg, но синтаксис для меня непонятен. - Gyan


Джефф Герлинг скрипт автоматизирует большинство ответов Мульвии. Отключите сжатие времени сценария, установив SPEEDUP="1.0", и пропустите ровно 1 секунду перекрытия между клипами, установив TRIM_AMOUNT="01.00", Добавьте такие параметры, как -vf scale=1280x720 к ffmpeg команды на последней строке.


1
2017-09-20 17:43