Сьогодні програми настільки розумні, що навіть без особливих знань ти можеш займатися будь-чим: писати музику, знімати й монтувати відео, проєктувати 3D і т. д. І все це у зручних програмах, де все «під руками». Але за весь цей корисний софт здебільшого доводиться платити немалі суми.
Якщо ти читаєш цей блоґ, то вже знаєш, що я завжди стараюся підказати програмку, яка робить неймовірні речі, але коштує копійки або й зовсім безкоштовна. Сьогодні мова піде про те, як конвертувати відео й аудіо в FFmpeg – консольній програмі з відкритим кодом, яка має просто колосальні можливості для роботи з відео, аудіо й зображеннями. До речі, саме FFmpeg працює «під капотом» у купі відомих програм: конвертерах, відеоредакторах, медіаплеєрах і навіть у браузерах.
Графічного інтерфейсу FFmpeg не має, але є програми-оболонки, які дають ту саму силу мишкою, – про них я писав у статтях про відеоконвертери для Linux і безкоштовний відеоконвертер для Windows. А тут – найпотрібніші команди. Як встановити FFmpeg, описано внизу статті.
Як працюють команди FFmpeg
Усі операції FFmpeg виконує в командному рядку Windows, терміналі Linux чи macOS. Загальна схема майже завжди однакова:
ffmpeg -i вхідний_файл [параметри] вихідний_файл
Після -i вказуєш, що обробляти, далі – що з цим зробити, а в кінці – куди зберегти результат. Формат FFmpeg здебільшого визначає сам за розширенням вихідного файлу.
Конвертація відео
Просто перетворити відео з одного формату в інший:
ffmpeg -i original.mov converted.mp4
Конвертація з хорошим стисненням без помітної втрати якості. Я сам постійно так роблю перед завантаженням відео на YouTube:
ffmpeg -i original.mov -c:v libx264 -crf 23 -preset medium -c:a aac -b:a 192k converted.mp4
-crf– якість: чим менше число, тим краща якість і більший файл. Розумні значення – від 18 до 28, 23 – золота середина.-preset– швидкість кодування:slowстисне трохи краще, але довше,fast– швидше, але файл буде більшим.
Змінити контейнер (розширення) без перекодування – дуже швидко і без втрати якості:
ffmpeg -i original.mkv -c copy converted.mp4
Якщо треба, щоб файл став меншим, просто збільш значення -crf (наприклад, до 28) або зменш роздільну здатність. А от параметр -fs, який часто радять для «стиснення під розмір», насправді не стискає відео, а просто обриває запис, коли файл досягне заданого розміру, – кінця відео ти не побачиш.
Як витягти звук із відео
Зберегти аудіодоріжку з відео в MP3:
ffmpeg -i video.mp4 -vn sound.mp3
Параметр -vn означає «без відео». А якщо хочеш звук без жодних втрат, а не MP3, зберігай у WAV чи FLAC – просто зміни розширення: sound.wav або sound.flac.
Як зробити кадри з відео
Перетворити відео на набір зображень:
ffmpeg -i video.mp4 image%04d.png
%04d додає до назви порядковий номер із чотирьох цифр: image0001.png, image0002.png і так далі. Але обережно: якщо відео триває 10 секунд при 30 кадрах за секунду, вийде 300 картинок.
Якщо треба, наприклад, по 2 кадри за секунду:
ffmpeg -i video.mp4 -vf fps=2 image%04d.png
Або 1 кадр кожні 10 секунд:
ffmpeg -i video.mp4 -vf fps=1/10 image%04d.png
Як обрізати відео
Обрізати початок відео, наприклад, почати з десятої секунди:
ffmpeg -ss 00:00:10 -i original.mp4 -c copy converted.mp4
Вирізати уривок із середини: задаєш початок (-ss) і тривалість (-t). Ця команда видасть уривок тривалістю 20 хвилин, починаючи з десятої секунди:
ffmpeg -ss 00:00:10 -i original.mp4 -t 00:20:00 -c copy converted.mp4
Завдяки -c copy відео не перекодовується, тож обрізка займає секунди. Єдиний нюанс: так обрізати можна лише по ключових кадрах, тому початок може зсунутися на секунду-дві. Якщо потрібна точність до кадру, прибери -c copy – тоді FFmpeg перекодує відео, повільніше, але точно.
Як змінити роздільну здатність відео
Уяви, що в тебе відео FullHD (1920x1080), а потрібне HD (1280x720). Немає нічого простішого:
ffmpeg -i original.mp4 -vf scale=1280:-2 converted.mp4
Тут задаєш лише ширину, а -2 означає «висоту порахуй сам, щоб зберегти пропорції». Так відео не розтягнеться, навіть якщо в нього нестандартне співвідношення сторін.
FFmpeg уміє ще купу всього: склеювати відео, нормалізувати гучність, накладати субтитри й водяні знаки, робити GIF, записувати екран. Це лише найпотрібніші команди. Якщо стало цікаво – погортай офіційну документацію 😉
Як встановити FFmpeg
Windows
Найпростіше – через вбудований менеджер пакетів winget. Відкрий термінал (або командний рядок) і виконай:
winget install Gyan.FFmpeg
Після встановлення закрий і знову відкрий термінал, і команда ffmpeg запрацює.
Якщо winget немає, можна зробити все вручну: звантажити готову збірку FFmpeg для Windows з офіційного сайту (розділ Download – збірки для Windows):


Розпакуй архів, перейменуй теку в ffmpeg і поклади в корінь диска C:. Потім додай шлях C:\ffmpeg\bin до змінної Path: «Пуск» – пошук «Змінні середовища» – «Змінні середовища» – виділи Path – «Змінити» – «Створити». Так надійніше, ніж команда setx, яка може обрізати довгий Path.
macOS
Якщо встановлено менеджер пакетів Homebrew:
brew install ffmpeg
Linux
У багатьох дистрибутивах FFmpeg уже встановлений, а якщо ні – вистачає однієї команди.
Debian, Ubuntu, Linux Mint:
sudo apt install ffmpeg
Arch Linux і похідні:
sudo pacman -S ffmpeg
openSUSE (для всіх кодеків зазвичай підключають репозиторій Packman):
sudo zypper install ffmpeg
Fedora у своїх репозиторіях має урізану версію ffmpeg-free без деяких патентованих кодеків. Для повної версії підключи репозиторії RPM Fusion:
sudo dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
І заміни урізану версію повною:
sudo dnf swap ffmpeg-free ffmpeg --allowerasing
Перевірити, що все встановилося, можна командою ffmpeg -version.
Висновок
FFmpeg – надзвичайно корисна програма, яка робить безліч речей одним рядком. Можна шукати купу окремих програм, кожна з яких уміє лише частину цього або коштує немалі гроші, а можна поставити одну безкоштовну утиліту й мати все в одному місці.
Що далі
Якщо термінал тебе лякає, глянь на відеоконвертери для Linux – багато з них працюють на FFmpeg, але мишкою. Для картинок є схожий консольний комбайн – ImageMagick. Хочеш записати екран? Ось найкращі програми для запису екрана в Linux. А якщо ти скачав/ла трек із YouTube і він не в тому форматі, FFmpeg перетворить його одним рядком, а як скачати музику з YouTube, я розповідав окремо.
Усі найкорисніші команди зібрано в окремій шпаргалці FFmpeg: стиснення, склеювання, GIF, субтитри та пакетна обробка.
Більше про це – за позначками FFmpeg та Конвертери файлів.
А яку команду FFmpeg ти використовуєш найчастіше? Пиши в коментарях 🙂


Прокоментувати
На сайті відображається лише твоє ім'я та коментар. Електронна пошта зберігається виключно для зв'язку з тобою за потреби та в жодному разі не передається стороннім особам.