Гид по технологиям

Быстрая обрезка и нарезка видео с помощью FFmpeg

• 5 min read • Видео • Обновлено 30 Nov 2025
Обрезка и нарезка видео с FFmpeg
Обрезка и нарезка видео с FFmpeg

Фотография рабочего стола с запущенным видеоредактором.

Содержание

  • Обрезка начала и конца видео
  • Вырезка короткого фрагмента внутри видео
  • Разбиение файла на равные сегменты
  • Полезные советы, когда методы не сработают
  • Альтернативные подходы и шпаргалка команд

Важно: прежде чем редактировать — всегда делайте резервную копию оригинального файла.

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

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

Создайте резервную копию исходного файла:

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

Примеры рабочих команд (корректная синтаксис):

  • Удалить первые 30 секунд из пятиминутного видео:
ffmpeg -ss 00:00:30 -to 00:05:00 -i my-video.mp4 -c copy my-video-trim.mp4
  • Удалить последние 30 секунд (оставить с начала до 4:30):
ffmpeg -ss 00:00:00 -to 00:04:30 -i my-video.mp4 -c copy my-video-trim.mp4
  • Удалить и начало, и конец (убрать первые и последние 30 секунд):
ffmpeg -ss 00:00:30 -to 00:04:30 -i my-video.mp4 -c copy my-video-trim.mp4

Пояснения:

  • Флаг -ss перед -i указывает стартовую точку чтения входа; -to указывает время окончания относительно начала файла. При использовании -c copy команда выполняет копирование без перекодирования (быстро), но точность может зависеть от ключевых кадров (keyframes).
  • Для более точной обрезки по произвольным кадрам может потребоваться перекодирование (например, удалить -c copy и указать кодек: -c:v libx264 -c:a aac).

После выполнения сравните длину и воспроизведение нового файла с оригиналом в медиаплеере.

Скриншот VLC с сравнением оригинала и обрезанного файла.

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

FFmpeg позволяет выбирать и объединять несколько временных диапазонов из одного файла с помощью фильтров выборки (select/aselect) и коррекции тайминга (setpts/asetpts).

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

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 }'

Общий шаблон команды для выбора нескольких диапазонов (замените PLACEHOLDER на ваши значения в секундах):

ffmpeg -i my-video.mp4 \
  -vf "select='between(t,FIRST_START,FIRST_END)+between(t,SECOND_START,SECOND_END)',setpts=N/FRAME_RATE/TB" \
  -af "aselect='between(t,FIRST_START,FIRST_END)+between(t,SECOND_START,SECOND_END)',asetpts=N/SR/TB" \
  my-video-cut.mp4

Пример с числами (первые фрагмент 150–240 с, второй 465–510 с):

ffmpeg -i my-video.mp4 \
  -vf "select='between(t,150,240)+between(t,465,510)',setpts=N/FRAME_RATE/TB" \
  -af "aselect='between(t,150,240)+between(t,465,510)',asetpts=N/SR/TB" \
  my-video-cut.mp4

Пояснения:

  • Фильтры select/aselect выбирают кадры/сэмплы в указанных интервалах, а setpts/asetpts пересчитывают временные метки, чтобы итоговый клип шел без «прыжков» времени.
  • Если добавляете больше фрагментов, просто расширьте выражение внутри between(…) через +between(…).

Терминал с выделением первой отметки времени для команды FFmpeg.

Терминал с выделением второй отметки времени для команды FFmpeg.

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

Скриншот VLC с результатом вырезки по сравнению с оригиналом.

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

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 для пятиминутных фрагментов.

Скриншот VLC с равномерными разрезами на одном файле.

Примечание по точности:

  • Команда ориентируется на ближайший ключевой кадр. В результате сегменты могут отличаться на несколько секунд от идеала. Для точного разреза потребуется перекодирование с переинициализацией GOP (Group of Pictures).

Когда описанные методы не сработают

  • Видео использует контейнер или кодек с редкой разметкой ключевых кадров — копирование (-c copy) может дать «склеенные» сегменты с неидеальной границей. Решение: перекодировать фрагменты, добавив -c:v libx264 -crf 18 -c:a aac.
  • Требуется точный разрез на кадре, не совпадающем с ключевым кадром — перекодируйте только короткий фрагмент вокруг границы.
  • Аудио и видео расходятся после применения select/aselect — проверьте фильтры setpts/asetpts и частоту дискретизации (SR).

Альтернативные подходы

  • Графические редакторы (Kdenlive, Shotcut): удобны для визуальной нарезки и точной подгонки, но менее автоматизируемы.
  • FFmpeg с промежуточным перекодированием: вырезать с большим запасом и затем перекодировать результат с указанием точных кодеков и настроек качества.
  • Комбинация: использовать ffmpeg для массовой нарезки, а графический редактор для тонкой правки одного–двух фрагментов.

Шпаргалка — часто используемые команды

  • Получить информацию о файле:
ffprobe -show_format -show_streams my-video.mp4
  • Извлечь аудио в MP3:
ffmpeg -i my-video.mp4 -vn -c:a libmp3lame -q:a 2 audio.mp3
  • Перекодировать видео в H.264 с контролем качества:
ffmpeg -i my-video.mp4 -c:v libx264 -crf 23 -preset medium -c:a aac out.mp4
  • Экспорт одного кадра (скриншот) в PNG на отметке 00:01:23:
ffmpeg -ss 00:01:23 -i my-video.mp4 -frames:v 1 shot.png

Мини‑методология для выполнения задачи в 5 шагов

  1. Сделайте резервную копию исходного файла.
  2. Определите точные временные метки (плеер, ffprobe, awk).
  3. Выберите метод: copy (быстро) или перекодирование (точно).
  4. Выполните команду FFmpeg в тестовой директории.
  5. Проверьте результат в плеере и при необходимости уточните метки.

Роль‑ориентированная чек‑лист

  • Для контент‑менеджера: подготовить метки времени, сохранить исходник, указать требуемую длину.
  • Для техподдержки: протестировать 2–3 плеера, проверить субтитры и метаданные.
  • Для видеоредактора: при необходимости доработать первый и последний кадры в графическом редакторе.

Факто‑бокс: ключевые моменты

  • Копирование (-c copy) — быстро, без потерь, но зависит от ключевых кадров.
  • Перекодирование — медленнее, обеспечивает точный разрез и униформный GOP.
  • Разбиение сегментов опирается на ближайший ключевой кадр — отклонения возможны.

Краткая глоссарий — 1 строка на термин

  • Keyframe: кадр, с которого декодирование может начаться без предыдущих кадров.
  • GOP: группа изображений между ключевыми кадрами.
  • setpts/asetpts: фильтры для пересчёта временных меток видео/аудио.

Критерии приёмки

  • Видео начинается и заканчивается в нужных метках.
  • Аудио синхронизировано и не содержит смещений.
  • Формат и кодек соответствуют целевым требованиям (если нужно — проверить ffprobe).

Ресурсы и примечания

  • Знание кодеков и битрейта помогает оптимизировать размер файлов при перекодировании.
  • Можно конвертировать WebM в другие форматы с помощью ffmpeg, указав нужный кодек выходного файла.

Image credit: Sanjeev Nagaraj via Unsplash and Wikimedia Commons. All alterations and screenshots by Ramces Red.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро