4

Мне нужно разрезать одно видео на несколько частей с помощью ffmpeg .

Когда я вырезал только один эпизод

ffmpeg -i 001.mp4 -vcodec copy -acodec copy -ss 00:00:00.000 -t 00:00:25.500 -strict -2 out1.mp4

или же

ffmpeg -i 001.mp4 -vcodec copy -acodec copy -ss 00:00:25.500 -t 00:00:33.750 -strict -2 out2.mp4

мое видео вырезано мгновенно.

Но когда я цепью маркеров, где я хотел бы сократить

ffmpeg -i 001.mp4 -vcodec copy -acodec copy -ss 00:00:00.000 -t 00:00:25.500 -strict -2 out1.mp4 -ss 00:00:25.500 -t 00:00:33.750 -strict -2 out2.mp4

это все еще работает, но это занимает значительно больше времени (около 10 секунд), и я вижу тот же результат, что и когда я что-то конвертирую.

Что-то не так с моей ffmpeg-command , или лучше выполнять ffmpeg-commands одну за другой?

1 ответ1

5

ffmpeg, вероятно, перекодирует out2.mp4 потому что вы не включили параметры копирования для второго вывода:

ffmpeg -i 001.mp4 -codec copy -t 00:00:25.5 out1.mp4 -codec copy -ss 00:00:25.5 -t 00:00:33.75 out2.mp4
  • -strict -2 не требуется в этом случае. Если вы перекодируете, и другие кодеры AAC недоступны, то ffmpeg будет использовать -codec:a aac который требует -strict -2 (или псевдоним -strict experimental который я предпочитаю).

  • -codec copy скопирует все потоки каждого типа, если они есть. Для MP4 это обычно означает аудио и видео, но другие контейнеры могут иметь субтитры или даже поток данных.

  • Вам не нужно использовать -ss если значение равно 0.

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