1

У меня есть видео файлы в формате MP4. Мне нужно конвертировать их в MP2. Однако, когда они превышают определенный размер файла в формате MP2, мне также нужно разрезать их на более мелкие файлы.

Для этого у меня есть две команды:

Команда преобразования

ffmpeg -i INPUTfile -codec:v mpeg2video -qscale:v 0 OUTPUTfile

Команда резки (значения времени приведены только для примера)

ffmpeg -ss 00:00:00.00 -i INPUTfile -to 00:10:00.00 -c copy -copyts OUTPUTfile

В настоящее время я конвертирую видеофайл, проверяю размер файла. Если он слишком большой, я сначала разрежу исходный видеофайл, а затем преобразую «части» в MP2.

Я новичок в ffmpeg и мне было интересно, смогу ли я объединить эти две команды в одну. Опять же, мне нужно конвертировать MP4-файл и разрезать его. Если я сначала сделаю преобразование, а потом урежу, или наоборот, для меня это не имеет значения.

Мне нужно будет выполнить команду резки несколько раз, так как я программно определю, во сколько «частей» я буду вырезать файл. Однако конечный результат должен быть в MP2, независимо от того, сколько «частей» я получу.

1 ответ1

1

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

Вы должны просто иметь возможность заменить -c copy -copyts соответствующими параметрами преобразования кодека из вашей первой команды. Эти параметры в основном означают "просто скопировать поток как есть", в то время как другие параметры времени устанавливают точки начала и окончания. В результате мы можем изменить "копировать поток" на "конвертировать видео" из вашей первой команды.

Параметры из вашей первой команды, которые относятся к преобразованию mp4 в mp2:-codec:v mpeg2video -qscale:v 0 . codec:v mpeg2video ffmpeg использовать кодер mpeg2video, а значение qscale 0, означает "лучшее качество".

В любом случае, быстрое перемещение дает вам

ffmpeg -ss 00:00:00.00 -i INPUTfile -to 00:10:00.00 -codec:v mpeg2video -qscale:v 0 OUTPUTfile

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