Как вырезать фильм с указанного начального и конечного времени в ffmpeg 50 секунд назад?

Как вырезать фильм с указанного начального и конечного времени в ffmpeg 50 секунд назад?

Я хочу вырезать фильм, указав время начала и окончания, используя 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

Разумный метод — проанализировать считывание 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, так что наложение завершается, когда достигается интервал от end.

Связанный контент