1

Я хочу обрезать фильм с указанием времени начала и окончания, используя ffmpeg. У меня есть заданное время начала работы, но я хочу установить время окончания. Наконец, конец 50 секунд назад. Я не знаю, как настроить.

ffmpeg -i demo.mp4 -ss 00:01:20 -acodec libfaac -ab 128k -vcodec mpeg4 -b 800k -mbd 2 -cmp 2 -subcmp 2 new_demo.mp4

1 ответ1

0

Разумный метод состоит в том, чтобы проанализировать считывание ffmpeg входной информации для длительности и затем указать значение -t duration - start time - 50s .

Безумный метод состоит в том, чтобы подать вход дважды и использовать оверлейный фильтр:

ffmpeg -ss 2:10 -i demo.mp4 -ss 00:01:20 -i demo.mp4 -filter_complex overlay=shortest=1[v] -map [v] -map 1:a -shortest -acodec libfaac -ab 128k -vcodec mpeg4 -b 800k -mbd 2 -cmp 2 -subcmp 2 new_demo.mp4

Первый вход имеет значение ss начального времени + количество конечной части видео, которое нужно вырезать.

Второй вход имеет значение ss вашего времени запуска.

Основная идея заключается в том, что оверлейный фильтр можно сделать так, чтобы он заканчивался, когда заканчивается самый короткий вход. Первому входу задается значение ss, так что наложение заканчивается, когда достигается интервал от конца.

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