При записи видео почти всегда остается что-то лишнее. Камера начинает запись еще до начала события, запись не останавливается вовремя и сохраняет ненужное или необходимо оставить только первые несколько минут большого ролика. Для таких задач совсем не обязательно устанавливать профессиональный видеоредактор. Значительно проще воспользоваться «швейцарским ножом» в мире работы по видео — бесплатной утилитой FFmpeg.
Если нужно просто отрезать лишний фрагмент от начала или конца видео, FFmpeg справится с этим в считанные секунды без открытия тяжелых редакторов.
Что такое FFmpeg
Крошечная бесплатная утилита FFmpeg давно стала стандартом для работы с видео. Проект существует более 20 лет и постоянно развивается сообществом программистов со всего мира. Ею пользуются разработчики программ, видеомонтажеры, администраторы серверов и даже обширные онлайн-сервисы. Она работает через командную строку и не имеет удобного интерфейса типичного видеоредактора, что может несколько отпугнуть. Но ее широкие возможности, высокая скорость работы, универсальность и бесплатность делают ее очень полезной.
С помощью FFmpeg можно:
- обрезать видео;
- объединять несколько роликов;
- изменять формат файлов;
- сжимать видео;
- извлекать звук;
- создавать GIF-анимацию;
- изменять разрешение;
- добавить субтитры;
- записывать экран;
- выполнять сотни других операций.
Шаг 1. Загрузите FFmpeg
Откройте браузер, перейдите на официальный сайт проекта FFmpeg (https://www.ffmpeg.org/), загрузите архив с программой. Для Windows удобнее всего использовать готовую сборку.
Распакуйте загруженный архив в какую-нибудь папку, желательно с простым коротким путем к ней. К примеру, С:\ffmpeg.
В Windows распаковка архива производится очень просто. Щелкните правой кнопкой мыши загруженный файл. Выберите Extract All… или Извлечь все…, укажите папку, в которую нужно распаковать файлы.
После распаковки откройте папку. Внутри будет несколько каталогов. Нас интересует папка bin. Именно в ней находится файл ffmpeg.exe Это главное приложение, которое будет выполнять все операции.
Шаг 2. Подготовьте видео
Найдите видеофайл, который необходимо обрезать. Например: holiday.mp4
Для простоты можно скопировать его в ту же папку, где находится ffmpeg.exe.
Тогда не придется вводить длинные пути в файлы.
В результате структура папки может выглядеть следующим образом:
bin
│
├── ffmpeg.exe
├── holiday.mp4
Шаг 3. Откройте командную строку
Многие начинающие пугаются командной строки, хотя на самом деле это простое текстовое окно для запуска программ.
Откройте папку bin. Щелкните мышью по адресу Проводника Windows.
Введите: cmd Затем нажмите клавишу Enter. Windows автоматически откроет командную строку в нужной папке. Теперь не нужно переходить между каталогами вручную.
Как отрезать лишний фрагмент от начала видео
Предположим, необходимо оставить только первые 5 минут и 30 секунд видео.
Введите в командной строке команду:
ffmpeg -i holiday.mp4 -to 00:05:30 -c copy holiday_short.mp4
После этого нажмите Enter. Через несколько секунд в папке появится новый файл:
holiday_short.mp4
Оригинальный видеофайл останется без изменений.
Что означает каждая часть команды
Рассмотрим команду по частям.
ffmpeg
Запуск программы FFmpeg.
-i holiday.mp4
Сообщает программе, какой файл нужно открыть.
-to 00:05:30
Указывает момент, на котором необходимо завершить новое видео. В этом примере это 5 минут 30 секунд.
-c copy
Важнейший параметр. Он предписывает FFmpeg не перекодировать видео. Программа просто копирует уже готовые видео- и аудиоданные в новый файл.
Именно поэтому такая операция выполняется очень быстро и не ухудшает качество изображения.
holiday_short.mp4
Это название нового файла, который будет создан.
Как обрезать видео от определенного момента и до самого конца
Иногда нужно не оставить начало ролика, а наоборот отбросить его первую часть. Например, запись началась раньше времени, а нужное событие начинается только на пятой минуте. В таком случае достаточно указать момент, с которого нужно начать новое видео.
Для этого используется параметр -ss.
Если нужно оставить видео, начиная с 5 минут 30 секунд и до самого конца, выполните команду:
ffmpeg -ss 00:05:30 -i holiday.mp4 -c copy holiday_end.mp4
После завершения работы в папке появится файл:
holiday_end.mp4
Он содержит только ту часть видео, которая начинается с отметки 00:05:30 и длится до конца оригинального ролика.
Как выбрать любой момент времени
Время задается в формате:
години:хвилини:секунди
Например:
00:00:45
45 секунд от начала видео.
00:12:10
12 минут 10 секунд от начала видео.
01:25:40
1 час 25 минут 40 секунд от начала видео.
Почему обрезка выполняется так быстро
Большинство видеоредакторов после любой обработки видео, даже просто обрезки, заново сжимают все видео (этот процесс называется перекодировкой). Перекодирование представляет собой очень трудную вычислительную задачу и даже мощные компьютеры требуют на это много времени.
В случае с FFMPEG команда использует параметр:
-c copy
В этом режиме FFmpeg не выполняет перекодирование, он только копирует нужную часть существующих потоков данных в новый файл. Поэтому скорость выполнения команды часто ограничивается только скоростью чтения и записи накопителя, а не мощностью процессора.
Если обрезка получилась неточной
Иногда новое видео может начинаться или заканчиваться на несколько кадров раньше нужного момента, несмотря на то, что вы указали нужное время. Это не ошибка FFmpeg.
Причина заключается в способе работы большинства современных видеофайлов. Видео состоит из ключевых и промежуточных кадров. Если используется параметр -c copy, программа не изменяет структуру видеопотока, поэтому место разреза может быть привязано к ближайшему ключевому кадру, который может быть раньше, чем указанный вами момент времени.
Если требуется абсолютная точность для отдельного кадра, придется выполнить перекодировку видео. Такой процесс занимает больше времени и приводит к созданию нового видеопотока.












