Частичное транскодирование 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
после ввода, чтобы временные метки не сбрасывались.