Частичное транскодирование ffmpeg с использованием -ss и -to

Я пытаюсь добиться частичного транскодирования с использованием ffmpeg. Команда, которую я использую в настоящее время:

ffmpeg.exe -ss время запуска -i исходный файл -t продолжительность -y -s 640x360 -b:v 1024k -vcodec libx264 -r 29,7 -movflags faststart -pix_fmt yuv420p outputfile

В документации ffmpeg я прочитал о параметре -to:

-в положение (вывод) Прекратить запись вывода в положении. положение может быть числом в секундах или в формате чч: мм: сс [.xxx].

-to и -t являются взаимоисключающими и имеют приоритет.

Но когда я попытался -to вместо "-t", вывод был таким же, я имею в виду значение после -to, которое берется как длительность выходного видео. Я думал, что это будет относиться к значению как к концу времени. Я что-то пропустил?

1 ответ

Решение

Из FFmpeg Wiki:

Обратите внимание, что если вы укажете -ss до -i только метки времени будут сброшены на ноль, поэтому -t и -to будут иметь одинаковый эффект:

ffmpeg -ss 00:01:00 -i video.mp4 -to 00:02:00 -c copy cut.mp4
ffmpeg -i video.mp4 -ss 00:01:00 -to 00:02:00 -c copy cut.mp4

Здесь первая команда будет сокращена с 00:01:00 до 00:03:00 (в оригинале), а вторая команда будет сокращена с 00:01:00 до 00:02:00, как и предполагалось.

Итак, убедитесь, что вы положили -ss после ввода, чтобы временные метки не сбрасывались.

Другие вопросы по тегам