ГлавнаяОперационные системыLinuxКак обрезать видео с помощью FFmpeg в Linux

Как обрезать видео с помощью FFmpeg в Linux

FFmpeg — мощный мультимедийный редактор командной строки для Linux. Он позволяет записывать и манипулировать звуком, создавать скринкасты и даже редактировать и кодировать видеофайлы с высоким битрейтом. Здесь мы покажем вам, как быстро обрезать видеофайлы с помощью FFmpeg.

Совет. Узнайте больше о видеокодеках и битрейте до оптимизация размера видеофайла с помощью FFmpeg .

Обрезка начала и конца видеофайла

Одной из самых мощных функций FFmpeg является способность быстро обрезать сегменты аудио- и видеофайлов. Это позволяет удалить из видео все ненужные части и даже автоматизировать его с помощью сценариев оболочки.

Прежде чем приступить к обрезке, убедитесь, что у вас есть резервная копия исходного видеофайла. Это связано с тем, что, в отличие от графических редакторов, FFmpeg не предоставляет возможности отмены какой-либо из своих функций:

cp ~/my-video.mp4 ~/my-video-backup.mp4

Чтобы обрезать первые 30 секунд 5-минутного видеофайла, выполните следующую команду:

ffmpeg -ss 00:00:30 -to 00:05:00 -i my-video.mp4 -c copy my-video-trim.mp4

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

ffmpeg -ss 00:00:00 -to 00:04:30 -i my-video.mp4 -c copy my-video-trim.mp4

Помимо этого, этот синтаксис также поддерживает обрезку на обоих концах видео. Например, удаление первых и последних 30 секунд 5-минутного видео будет выглядеть примерно так:

ffmpeg -ss 00:00:30 -to 00:04:30 -i my-video.mp4 -c copy my-video-trim.mp4

После этого проверьте, правильно ли FFmpeg обрезал ваше видео, сравнив его с исходным файлом.

Скриншот медиаплеера VLC, показывающий сравнение исходного видео и его обрезанной копии.

Совет : вот список из самые полезные команды FFmpeg для управления вашим видео .

Вырезание короткого фрагмента внутри видеофайла

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

Скриншот временной шкалы Kdenlive, показывающий двусторонний переход.

Начните с создания резервной копии исходного видеофайла:

cp ~/my-video.mp4 ~/my-video-backup.mp4

Откройте видео на медиаплеере и определите точные временные метки для точек обрезки. В моем случае я хочу создать видеофайл, используя только кадры с 2:30 до 4:00 и с 7:45 до 8:30 оригинала.

Преобразуйте временные метки из минут в секунды:

echo "00:02:30" | awk -F: '{ print ($1 * 3600) + ($2 * 60) + $3 }'

Перейдите в каталог вашего видеофайла и вставьте следующую команду:

ffmpeg -i my-video.mp4 \
-vf "select='between(t,FIRST-START-VALUE,FIRST-END-VALUE)+between(t,SECOND-START-VALUE,SECOND-END-VALUE)', setpts=N/FRAME_RATE/TB" \
-af "aselect='between(t,FIRST-START-VALUE,FIRST-END-VALUE)+between(t,SECOND-START-VALUE,SECOND-END-VALUE)', asetpts=N/SR/TB" \
my-video-cut.mp4

Замените «FIRST-START-VALUE» и «FIRST-END-VALUE» для флагов -vfи -afзначением для вашего первого разреза. В моем видео первый монтаж начинается на 150 секунде и заканчивается на 240.

Терминал, выделяющий измененное время первого вырезания для команды FFmpeg.

Замените «SECOND-START-VALUE» и «SECOND-END-VALUE» значением для второго разреза, затем нажмите Enter, чтобы запустить команду.

Терминал, выделяющий измененное время второй резки для команды FFmpeg.

Примечание. Вы можете добавить дополнительные разрезы, скопировав функцию «+between()» для флагов -vfи -afвместе с список ваших новых сокращений, разделенный запятыми.

Убедитесь, что новое видео обрезано правильно, сравнив его с исходным файлом.

Скриншот медиаплеера VLC, показывающий разницу между исходным видео и вырезанным.

Полезно знать: FFmpeg также может работать с музыкой. Узнайте, как вы можете настройте и нормализуйте свои музыкальные файлы с помощью FFmpeg .

Разрез видеофайла на одинаковые сегменты

Помимо вырезания и объединения клипов, вы также можете использовать FFmpeg для вырезания и обрезки всего видео на короткие сегменты. Это может быть полезно, если у вас длинное видео, которое вы разбиваете на более мелкие клипы.

Для начала откройте сеанс терминала и перейдите в каталог вашего длинного видео.

Скопируйте следующую строку кода в строку терминала:

ffmpeg -i my-video.mp4 -c copy -map 0 -segment_time 00:10:00 -f segment -reset_timestamps 1 my-video-%03d.mp4

Замените значение «segment_time» на целевую длину клипа. Например, вы можете установить значение «00:05:00», чтобы разделить длинное видео на 5-минутные сегменты.

Скриншот медиаплеера VLC, показывающий единые нарезки одного видеофайла.

Примечание. Эта команда попытается разделить видеофайл на основе ключевого кадра, ближайшего к времени целевого сегмента. Таким образом, эта команда не всегда может привести к созданию идеально однородных сегментов.

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

Изображение предоставлено: Санджив Нагарадж через Unsplash и Викисклад . Все изменения и скриншоты Рамсеса Реда.

ПОХОЖИЕ СТАТЬИ

Популярные записи