- FFmpeg — це лінійний інструмент Команди кросплатформний, здатний записувати, конвертувати та обробляти аудіо та відео з підтримкою великої кількості кодеків та форматів.
- Він дозволяє виконувати все: від простих перетворень форматів до складних завдань, таких як обрізання, зміна розміру, вставка логотипів, створення GIF-файлів та відео з послідовностей зображень.
- Його справжній потенціал розкривається при інтеграції в скрипти та автоматизовані робочі процеси, де він може об'єднувати кліпи, застосовувати переходи, нормалізувати аудіо та стандартизувати виробництво контенту.
- За допомогою кількох добре зрозумілих команд можна побудувати ефективний робочий процес для редагування та стиснення відео, не покладаючись на громіздкі графічні інтерфейси.

Якщо ви часто працюєте з відео, рано чи пізно ви зіткнетеся з FFmpeg як швейцарський ніж для конвертації, стиснення та автоматизації завданьНеважливо, чи ви працюєте з редакторами з графічним інтерфейсом, чи з платформами... потоковий або прості онлайн-конвертери: коли вам потрібен точний контроль, рідкісні формати чи масштабна автоматизація, FFmpeg вступає в гру.
Також правда, що коли бачиш це вперше, це трохи лякає: безліч параметрів, дуже довгі команди та повідомлення в терміналАле як тільки ви зрозумієте його логіку, він стане надзвичайно зручним інструментом для повторюваних завдань: зміни форматів, зменшення розміру файлу, обрізки, додавання логотипів, створення GIF-файлів або створення покадрових відео з фотографій, серед багатьох інших речей.
Що таке FFmpeg і чому його так часто використовують у відео?
FFmpeg — це набір безкоштовних програмних інструментів та бібліотек. Розроблено для запису, конвертації, обробки та потокової передачі аудіо та відео. Це не програма з гарними вікнами та кнопками: вона керується з командного рядка, що надає їй неймовірної гнучкості та робить її ідеальною для автоматизації, серверів та написання сценаріїв.
Його назва стосується Перемотування вперед MPEG...стосується групи, яка визначила відеостандарти MPEG. З 2000 року, коли Фабріс Беллар запустив проєкт, спільнота розширює його на... мультимедійний механізм, який використовується незліченною кількістю програм та сервісів без вашого відома (стрімінгові платформи, редактори, конвертери тощо).
Одна з його найбільших чеснот полягає в тому, що Підтримує величезну кількість кодеків та контейнерів (Як вибрати найкращі кодеки для відео): MP4, MOV, MKV, AVI, WebM, FLV, Ogg, анімовані GIF-файли, послідовності зображень, MP3AAC, OGG, WAV, WMA та багато інших форматів. Якщо ваш улюблений плеєр щось відтворює, FFmpeg, ймовірно, може це прочитати або згенерувати.
Крім того, FFmpeg є поперечна платформаЙого можна встановити без жодних проблем у Linux, WindowsmacOS та інші системи ЮнексІ хоча він використовується з консолі, існує кілька графічних інтерфейсів, які використовують його за лаштунками, якщо ви віддаєте перевагу поступовому виконанню, не бачачи команд.
Як встановити FFmpeg на Windows, macOS та Linux

Перш ніж ми почнемо видавати команди, нам потрібно встановити інструмент. Процес залежить від операційної системи.Але в усіх випадках це робиться лише один раз, а потім ви про це забуваєте.
Встановлення FFmpeg у Windows
У Windows є кілька варіантів, але один із найпоширеніших — це завантажити статичний пакет вже скомпільованийЦе позбавляє вас від необхідності компілювати щось або мати справу із залежностями.
Типовий робочий процес буде таким: ви переходите на офіційний веб-сайт FFmpeg або сторінку надійної збірки, завантаження u «статична» версія у форматі ZIP або 7zВи розпаковуєте його в потрібну папку (наприклад, на додатковому диску), і всередині ви побачите каталог з кількома підкаталогами, включаючи Бен, де розташовані виконувані файли ffmpeg.exe, ffplay.exe та ffprobe.exe.
Щоб уникнути постійного переходу до цієї папки, ідеальним рішенням є додати шлях до каталогу bin до системних змінних середовищаУ розділі «Панель керування» > «Система» > «Додаткові параметри системи» > «Змінні середовища» знайдіть змінну «Шлях», відредагуйте її та додайте повний шлях до папки bin. Звідти ви зможете писати ffmpeg на будь-якій консолі, і вона працюватиме.
Ще однією дуже зручною альтернативою є використання менеджер пакетів, такий як Chocolatey та запустіть його в консолі адміністратора: choco install ffmpegМенеджер сам займається встановленням та PATH.
Встановлення FFmpeg на macOS
En MacНайпрактичніший спосіб – це потягнути HomebrewЯкщо у вас його немає, встановіть його, вставивши сценарій Спеціаліст з встановлення на терміналі. Після початку роботи просто:
brew install ffmpeg
і за лічені хвилини у вас буде ffmpeg готовий до використання з будь-якого терміналуHomebrew автоматично обробляє залежності, шляхи та майбутні оновлення.
Якщо ви бажаєте зробити це самостійно, ви також можете завантажити вже скомпільовані бінарні файли для macOS, але на практиці, з Homebrew ви позбавляєте себе багатьох клопотів і можете оновлювати FFmpeg за допомогою простого brew upgrade ffmpeg.
Встановлення FFmpeg на Linux
У більшості сучасних дистрибутивів, FFmpeg доступний в офіційних репозиторіях.Наприклад, у Debian, Ubuntu та похідних системах, Ви можете встановити його за допомогою:
sudo apt install ffmpeg
В інших дистрибутивах менеджер пакетів зміниться, але ідея та сама: Ви встановлюєте пакет ffmpeg та пов'язані з ним інструменти, як-от ffprobe. Якщо потім запустити which ffmpeg і ви отримуєте щось на кшталт /usr/bin/ffmpegВсе добре.
У більш складних сценаріях (наприклад, серверах, яким потрібно спеціальна підтримка певних кодеків або бібліотекДехто воліє компілювати FFmpeg з вихідного коду та вручну додавати модулі, такі як LAME для MP3, libogg, libvorbis, або інтегрувати його з mplayer. У цих випадках ці бібліотеки завантажуються та компілюються заздалегідь, а дозволи та шляхи налаштовуються (LD_LIBRARY_PATH) і символічні посилання створюються в /usr/lib до бібліотек FFmpeg у /usr/local/lib.
Розуміння базового синтаксису FFmpeg

Після встановлення наступним кроком буде розуміння Як написати мінімальну команду FFmpegЗагальна структура зазвичай така:
ffmpeg -i entrada.ext salida.ext
Ключовим параметром є -iЦе вказує на вхідний файл або потік. Все, що ви додаєте до та після цього параметра, є налаштуваннями, які впливають на те, як обробляються та генеруються вивідні дані.
Якщо ви просто хочете отримати технічну інформацію з відеофайлу, ви можете використовувати:
ffmpeg -hide_banner -i video.mp4
Завдяки цьому FFmpeg показує такі деталі, як тривалість, бітрейт, відео- та аудіокодеки, роздільна здатність, частота кадрів та інші метадані. Параметр -hide_banner Це запобігає перегляду величезного блоку початкової конфігурації та компіляції та дозволяє зосередитися на справді корисній інформації.
Ось деякі дуже корисні глобальні параметри, які допоможуть вам:
- -формати: перелічує підтримувані формати (контейнери).
- - кодеки: відображає всі вхідні та вихідні кодеки.
- -декодери: детально описує кодеки, що приймаються як вхідні дані.
- - кодери: містить список кодеків, які можна використовувати під час експорту.
Маючи цей мінімум інформації, ви можете почати конвертувати з одного формату в інший, просто змінивши розширення виводу, Наприклад:
ffmpeg -i video_origen.mov video_destino.mp4
У цьому випадку FFmpeg вибере прийнятні кодеки залежно від розширенняНаприклад, H.264 для відео та AAC для аудіо в MP4, якщо не вказано інше.
Кодеки, контейнери та ключові параметри якості
Щоб отримати максимальну віддачу від FFmpeg, важливо розрізняти кодек і контейнерMP4 (контейнер) — це не те саме, що H.264 або H.265 (відеокодеки), хоча ці терміни часто плутають у повсякденній мові.
Un кодек Це алгоритм, який стискає та розпаковує потік аудіо- або відеоданих (H.264, H.265/HEVC, AV1, VP9, AAC, MP3, Ogg Vorbis тощо). контейнер (MP4, MKV, AVI, MOV, WebM, Ogg тощо) – це «обгортка», яка може містити кілька відео- та аудіодоріжок, субтитри та метадані.
Деякі поширені контейнери:
- AVI: класична програма для Windows, широко використовувана, але з сучасними обмеженнями.
- MOVСтандартний формат QuickTime, широко використовується в середовищах Apple.
- MP4: стандартний контейнер для MPEG-4, високосумісний з різними пристроями.
- Огг- Відкрити контейнер для кодеків, таких як Vorbis або Theora.
- MKVФормат Matroska, дуже гнучкий та відкритий, ідеально підходить для майстер-класів та архівування.
У FFmpeg ви можете контролювати якість, головним чином, за допомогою таких параметрів, як -b:v (бітрейт відео), -б:а (бітрейт аудіо) або популярний CRF у таких кодеках, як H.264 або H.265. Наприклад:
ffmpeg -i video.avi -b:v 2500k -b:a 192k salida.mp4
У цьому випадку ви форсуєте бітрейт відео 2.500 кбіт/с та один аудіозапис 192 кбіт/сВищий бітрейт зазвичай означає вищу якість, але також більший розмір файлу, і навпаки. З CRF (Constant Rate Factor) логіка дещо змінюється, оскільки Нижче значення означає вищу якість і більший розмір файлу.Наприклад, у H.265 CRF приблизно 18-22 у багатьох випадках майже не відрізняється від оригіналу.
Конвертація відео, стиснення та зміна формату
Одним із найпоширеніших застосувань FFmpeg є Конвертуйте та повторно стискайте відео, щоб зменшити їх розмір або змінити їхній формат.зберігаючи при цьому прийнятну якість. Якщо ви віддаєте перевагу альтернативі з графічним інтерфейсом, ви можете побачити Як редагувати та конвертувати відео за допомогою VLC.
Для базове перетворенняПросто вкажіть точки входу та виходу:
ffmpeg -i origen.avi destino.mpg
Якщо ви хочете налаштувати параметри точно, ви можете вказати відео- та аудіокодеки, режим якості та контейнер. Наприклад, для Стиснення відео за допомогою H.265 (libx265) з дуже гарною якістю та без втрат аудіо:
ffmpeg -i "input.mp4" -c:v libx265 -preset veryslow -crf 18 -c:a copy "salida_comprimida.mkv"
Тут ви використовуєте:
- -c:v libx265Відеокодек H.265 (дуже ефективний).
- -попередньо встановлено дуже повільно: повільніше кодування, але з кращим стисненням.
- -crf 18дуже висока якість; ви можете збільшити до 20-22, якщо хочете зменшити вагу.
- -c:копія: копіює аудіо як є, без повторного стиснення.
Якщо ви віддаєте перевагу також стиснути аудіо Для AAC зі швидкістю 128 кбіт/с можна використовувати:
ffmpeg -i input.mp4 -c:v libx265 -preset veryslow -crf 18 -c:a aac -b:a 128k output.mkv
Формат контейнера MKV дуже стабільний та гнучкий для такого типу роботи. Якщо вам пізніше конче знадобиться MP4, ви можете ремультиплексування (зміна контейнера без повторного стиснення) з:
ffmpeg -i salida.mkv -c copy salida_final.mp4
Цей останній крок є швидкооскільки змінюється лише "обгортка" файлу, не торкаючись відео- та аудіоконтенту.
Базові операції редагування з FFmpeg
FFmpeg також дозволяє виконувати багато класичні завдання редагування без відкриття потужного відеоредактораЦе не зручно для масштабного творчого редагування, але для конкретних завдань це можливо негайно.
Виріжте фрагмент часу
Якщо ви хочете витягти певний сегмент з відео, ви можете скористатися опціями -ss, -t y -до, Наприклад:
ffmpeg -i video.mp4 -ss 35 -t 30 fragmento.mp4
У цьому випадку, Ви починаєте з 35-ї секунди і ви отримуєте 30 секунд. Інший варіант буде таким:
ffmpeg -i video.mp4 -ss 00:00:35 -to 00:01:05 fragmento.mp4
Тут ви визначаєте час початку та час закінчення у форматі години:хвилини:секунди. Залежно від порядку, в якому ви їх розмістите. -ss щодо -iРізання буде швидшим, але менш точним, або навпаки; для більшості практичних застосувань можна залишити так, як у прикладах.
Змінити роздільну здатність відео
Щоб адаптувати відео до іншої роздільної здатності, наприклад, з 1920×1080 до 1280 × 720, ви можете використовувати:
ffmpeg -i entrada.mov -s 1280x720 salida.mp4
Параметр -s визначити розмір виводу. Ви також можете використовувати відеофільтри (-vf масштаб=), щоб мати більше контролю над зміною масштабу або зберегти певні пропорції.
Видалення або вилучення аудіодоріжок
Якщо ви хочете, зберегти лише аудіо Наприклад, з MP3-відео можна використовувати:
ffmpeg -i video.avi -vn -ar 44100 -ac 2 -ab 192k -f mp3 audio.mp3
Це означає, що ви не хочете відео з -внЧастота дискретизації та канали налаштовуються, а також визначається прийнятний бітрейт аудіо для MP3.
Якщо те, що ти хочеш, так і є видалити аудіо з відео Щоб залишити лише зображення, можна скористатися:
ffmpeg -i entrada.mp4 -an -c:v copy salida_sin_audio.mp4
Вибір -ан Це видаляє аудіо, водночас -c:v копія Уникайте повторного стиснення відео, що заощаджує час і зберігає якість.
Вставка логотипів або водяних знаків
Щоб розмістити фіксований логотип у кутку відео, можна скористатися фільтром. накладенняТиповий приклад:
ffmpeg -i video.mp4 -i logo.png -filter_complex "overlay=10:10" salida.mp4
У цій команді накладання=10:10 Це означає, що логотип розташований на відстані 10 пікселів від лівого краю та 10 пікселів від верхнього. Якщо ви хочете перемістити його в правий нижній кут, ви можете використовувати вирази на основі ширини та висоти:
overlay=x=(main_w-overlay_w):y=(main_h-overlay_h)
Таким чином, логотип адаптується до будь-якої роздільної здатності відео без необхідності обчислювати позиції вручну.
Робота із зображеннями: вилучення кадрів та створення відео
FFmpeg підходить не лише для класичних відео; він також дуже потужний для конвертувати між відео та зображеннямищо ідеально підходить для уповільненої зйомки, покадрової зйомки або для аналізу окремих кадрів.
Вилучення зображень із відео
Якщо ви хочете конвертувати кожен кадр На зображенні достатньо чогось подібного (див. більше опцій у Як витягувати кадри з відео та GIF-файлів):
ffmpeg -i video.mp4 image%d.jpg
Це створить один файл на кадр: зображення1.jpg, зображення2.jpg, зображення3.jpg…Якщо відео довге, ви отримаєте тисячі зображень, оскільки більшість відео відтворюються з частотою від 25 до 30 кадрів в секунду.
Щоб уникнути створення величезної кількості файлів, можна обмежити видобування за допомогою фільтра. кадрів в секундуНаприклад, одне зображення за секунду:
ffmpeg -i video.mp4 -vf fps=1 image%d.png
Таким чином, щосекунди оригінального відео експортується лише одне зображення, що ідеально підходить для створення візуальних резюме або автоматичні мініатюри.
Створення відео із зображень (уповільнена зйомка та слайд-шоу)
Якщо у вас є послідовність пронумерованих фотографій (наприклад, зображення-01.png, зображення-02.png, зображення-03.png…Ви можете легко створити відео:
ffmpeg -framerate 5 -i img-%02d.png video.avi
У цьому випадку, -частота кадрів 5 У ньому зазначено, що в отриманому відео буде використано 5 зображень за секунду. Якщо це фотографії з уповільненої зйомки, можливо, варто збільшити швидкість для плавнішого руху або зменшити її для більш розслабленого слайд-шоу.
FFmpeg розуміє кілька шаблонів іменування:
- назва_файлу-%03d.png- Збігається з filename-001.png до filename-999.png.
- назва_файлу-%d.png- Збігається з filename-1.png, filename-2.png тощо.
- назва файлу-*.png: більш загальний шаблон, для випадків, коли ви не дотримуєтеся суворої нумерації (у цьому випадку вам знадобляться додаткові параметри для контролю порядку).
Якщо ви також хочете примусово перетворити вихідне відео на MP4 з певним частота кадрів відтворенняВи можете зробити щось подібне:
ffmpeg -framerate 1 -i img%03d.png -r 25 -pix_fmt yuv420p output.mp4
Тут ви визначаєте захоплення 1 зображення за секунду та частоту кадрів відтворення 25 кадрів за секунду, з піксельним форматом, сумісним з більшістю плеєрів.
Створюйте анімовані GIF-файли та прості ефекти
Ще один класичний інструмент у FFmpeg — це конвертація невеликих відео у Анімовані GIF-файли для веб-сайтів або мережПроцес можна спростити до одного рядка або виконати в кілька кроків для покращення якості.
Для найбільш прямий випадок:
ffmpeg -i entrada.mp4 salida.gif
Це дасть вам робочий GIF-файл, хоча, можливо, не оптимізований. Якщо ви хочете краще контролювати розмір і якість, один із варіантів — змінити масштаб відео, створити PNG-кадри, а потім створити з них GIF, Наприклад:
ffmpeg -i input.mp4 -vf scale=640x360 -c:v h264 -crf 18 -c:a aac salida_intermedia.mp4
ffmpeg -i salida_intermedia.mp4 frame%04d.png
ffmpeg -i salida_intermedia.mp4 salida.gif
Або скористайтеся зовнішніми інструментами редагування GIF для ще кращого результату. Такий тип робочого процесу дозволяє підтримувати Повний контроль над роздільною здатністю, якістю та розміром кінцевого файлу.
Автоматизуйте редагування відео за допомогою скриптів та YAML
Де FFmpeg справді сяє, так це коли ви інтегруєте його в скрипти, що автоматизують повторювані завданняЯкщо ви щотижня створюєте відео одного типу (курси, інтерв'ю, інституційні матеріали…), ви можете визначити стандартний робочий процес і дозволити сценарію робити практично все.
Дуже потужний підхід полягає в тому, щоб описати свій проект YAML-файл (config.yml)де ви детально описуєте потрібні кліпи, зображення, тривалість, монтаж, гучність та переходи, а потім скрипт перетворює це на складні команди FFmpeg.
За допомогою цієї системи ви можете, наприклад, визначити список елементів (зображення, відео, аудіодоріжки) які обробляються окремо (обрізка, зміна гучності, масштабування, нормалізація) у тимчасовому каталозі, а потім об'єднуються з міліметровою точністю, синхронізуючи аудіо та відео.
Типові випадки використання включають:
- Створюйте навчальні відео з слайди + короткі фрагменти.
- Створіть інформаційні капсули, що складаються з кількох стандартних блоків.
- Створюйте інституційні вступи та завершення для цілої серії відео.
Приклади практичних скриптів з FFmpeg
На основі цієї ідеї автоматизації можна побудувати різні типи скриптів, від найпростіших до досить складних налаштувань, завжди покладаючись на FFmpeg як рушій.
Загальний скрипт для об'єднання зображень та відео
Скрипт загального призначення може працювати з список гетерогенних елементів описані в YAML (відео, зображення, аудіокліпи), призначаючи кожній тривалість, початкову та кінцеву обрізки, відносну гучність тощо. Скрипт генерує попередньо налаштовані тимчасові версії, а потім створює файл списку об'єднати все за допомогою FFmpeg.
Це дає вам точний контроль над:
- Фінальна роздільна здатність та FPS проекту.
- Обсяг кожного сегмента окремо.
- Початок і кінець кожного кліпу без відкриття графічного редактора.
Простий сценарій: зображення обкладинки + основне відео
Ще більш поширеним сценарієм є бажання відображати статичний слайд як зображення обкладинки (назва, логотип, деталі події) протягом кількох секунд, а потім запустіть основне відео.
Типовий сценарій Це робить щось на кшталт цього:
- Перетворіть зображення обкладинки на відеокліп тривалістю близько 5 секунд.
- Закодуйте як обкладинку, так і основний кліп у форматі, сумісному для конкатенації (наприклад, за допомогою mpegts).
- Він об'єднує обидва сегменти без повторного стиснення вмісту, що пришвидшує процес і запобігає втраті якості.
Цей тип рішення зазвичай зберігається в таких шляхах, як /автоматизація/відео-відкриті-теми/ і вони легко інтегруються в робочі процеси запису для занять, лекцій або записаних презентацій.
Розроблено сценарій для монтажів з переходами
На вищому рівні ви можете створити скрипт, який збирає кілька блоків з плавними переходами між аудіо та відеоТиповий приклад включає:
- Інституційне вступне слово з музикою та анімацією.
- Зображення із назвою та деталями зустрічі.
- Основне відео записане у форматі RAW (з можливістю обрізки на початку та в кінці).
- Завершення анімацією та музикою.
За допомогою FFmpeg ви можете застосовувати такі фільтри, як xfade (перехід до відео) та перехідне зникнення (аудіоперехід), щоб зробити зміни між блоками плавними. Крім того, ви можете:
- Обрізайте основне відео на льоту відповідно до часу, зазначеного в YAML.
- Налаштуйте гучність кожного сегмента окремо.
- Примусово використовувати стандартні параметри, такі як роздільна здатність 720p та аудіо 44.1 кГц.
Логіка збірки визначена в config.yml зі шляхами кожного елемента, тривалістю переходів, точками відрізу тощо, а також скриптом у папці типу /автоматизація/видання-для-кафе/ Перетворіть усе це на ланцюжок фільтрів та карт у FFmpeg. Результатом є кінцеве відео, яке візуально та звуково узгоджене з мінімальними ручними зусиллями.
Більше корисних команд та розширених хитрощів
Окрім усього вищезазначеного, FFmpeg має незліченна кількість застосувань «Нішові» продукти, які, коли вони вам потрібні, рятують становище. Серед інших:
- Список або вилучення метаданих:
ffmpeg -i INPUT -f ffmetadata metadata.txt. - Заміна аудіодоріжки відео не торкаючись відео:
ffmpeg -i video.mp4 -i nuevo_audio.mp3 -map 0:v -map 1:a -c copy salida.mp4. - Створення візуалізації звукових хвиль у відео з фільтром
showwaves, корисно для відео типу подкастів. - Змінити формат субтитрівНаприклад, від VTT до ASS:
ffmpeg -i subtitulos.vtt salida.assЩоб легко редагувати субтитри, ви можете переглянути Використовуйте Word як редактор субтитрів. - регулювати гучність швидко з
-volабо більш просунуті аудіофільтри.
Повний список майже неможливо охопити, але за допомогою поєднання офіційної документації та практичних прикладів ви можете розпочати будівництво. власний репертуар часто використовуваних команд щоб нам не доводилося щоразу винаходити велосипед.
FFmpeg перетворюється з "дивної консольної програми" на... центральний інструмент для конвертації, стиснення, пакетного редагування та автоматизації створення відеоЧи то на вашому персональному комп'ютері, чи в професійних скриптах та робочих процесах, щойно ви звикнете писати кілька основних команд, кожен новий варіант використання буде просто питанням додавання невеликих частин до основи, яку ви вже освоїли.
Пристрасний письменник про світ байтів і технологій загалом. Я люблю ділитися своїми знаннями, пишучи, і саме це я буду робити в цьому блозі, показуватиму вам все найцікавіше про гаджети, програмне забезпечення, апаратне забезпечення, технологічні тренди тощо. Моя мета — допомогти вам орієнтуватися в цифровому світі в простий і цікавий спосіб.
