Під час запису відео майже завжди залишається щось зайве. Камера починає запис ще до початку події, запис не зупиняється вчасно і зберігає непотрібне, або необхідно залишити лише перші кілька хвилин великого ролика. Для таких завдань зовсім не обов’язково встановлювати професійний відеоредактор. Значно простіше скористатися “швейцарським ножем” у світі роботи з відео – безкоштовною утилітою FFmpeg.
Якщо потрібно просто відрізати зайвий фрагмент від початку або кінця відео, FFmpeg впорається з цим за лічені секунди без відкриття важких редакторів.
Що таке FFmpeg
Крихітна безкоштовна утиліта FFmpeg давно стала стандартом для роботи з відео. Проєкт існує понад двадцять років і постійно розвивається спільнотою програмістів з усього світу. Нею користуються розробники програм, відеомонтажери, адміністратори серверів і навіть великі онлайн-сервіси. Вона працює через командний рядок і не має зручного інтерфейсу типового відеоредактора, що може дещо відлякувати. Але її широкі можливості, висока швидкість роботи, універсальність та безкоштовність роблять її надзвичайно корисною.
За допомогою 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, програма не змінює структуру відеопотоку, тому місце розрізу може бути прив’язане до найближчого ключового кадру, який може бути раніше, ніж вказаний вами момент часу.
Якщо потрібна абсолютна точність до окремого кадру, доведеться виконати перекодування відео. Такий процес займає більше часу і призводить до створення нового відеопотоку.



