Разделение видео на части с помощью FFmpeg: подробное руководство с примерами кода

В современный век цифровых технологий видеоконтент становится все более популярным, и часто возникают случаи, когда по разным причинам нам необходимо разделить большой видеофайл на более мелкие части. FFmpeg — это мощный инструмент командной строки, который позволяет нам манипулировать видео различными способами, включая разделение их на сегменты. В этой статье мы рассмотрим несколько методов разделения видео на части с помощью FFmpeg, а также примеры кода, иллюстрирующие каждый подход.

Метод 1. Разделение видео по длительности
Одним из распространенных методов разделения видео на части является указание продолжительности каждого сегмента. FFmpeg предоставляет опцию -tдля установки продолжительности выходного сегмента. Вот пример команды:

ffmpeg -i input.mp4 -c copy -segment_time 00:05:00 -f segment output%03d.mp4

В приведенной выше команде -segment_timeуказывает продолжительность каждого сегмента (в данном случае 5 минут), а %03d— это заполнитель, который будет заменен на тройку. -цифровое число в выходных именах файлов.

Метод 2: разделение видео по количеству кадров.
Другой подход — разделить видео на части в зависимости от количества кадров. Это может быть полезно, если вы хотите разделить видео на равные части. Опция -framesв FFmpeg позволяет нам указать количество кадров для каждого сегмента. Вот пример команды:

ffmpeg -i input.mp4 -c copy -frames 1000 -f segment output%03d.mp4

В приведенной выше команде -framesобозначает количество кадров в каждом сегменте (в данном случае 1000 кадров). Опять же, %03dгенерирует последовательные номера для имен выходных файлов.

Метод 3: вырезание видео в определенные моменты времени
Если у вас есть определенные моменты времени в видео, где вы хотите его разделить, FFmpeg предоставляет -ss(время начала) и -t(длительность) вариантов достижения этой цели. Вот пример команды:

ffmpeg -i input.mp4 -ss 00:02:30 -t 00:01:00 -c copy output.mp4

В этой команде -ssуказывает время начала (2 минуты 30 секунд), а -tобозначает продолжительность сегмента (1 минута). Результирующий сегмент начнется с указанного момента времени и будет иметь указанную продолжительность.

Метод 4: разделение видео по размеру
Иногда нам может потребоваться разделить видео на части в зависимости от размера файла. FFmpeg позволяет нам добиться этого, используя опцию -fs, которая устанавливает максимальный размер файла для каждого сегмента. Вот пример команды:

ffmpeg -i input.mp4 -c copy -fs 50M -f segment output%03d.mp4

В приведенной выше команде -fsзадает максимальный размер файла для каждого сегмента (в данном случае 50 мегабайт), а %03dгенерирует последовательные номера для имен выходных файлов.

Разделение видео на части — распространенная задача, и FFmpeg предоставляет несколько методов для ее выполнения. В этой статье мы рассмотрели четыре различных подхода: разделение по продолжительности, количеству кадров, конкретным моментам времени и размеру файла. Каждый метод предлагает гибкость в зависимости от ваших требований. Используя мощные функции FFmpeg, вы можете легко разделить видео на части для различных целей.