Сьогодні програми настільки розумні, що навіть без особливих знань ти можеш займатися будь-чим: писати музику, знімати й монтувати відео, проєктувати 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 для Windows

Вибір архіву зі збіркою FFmpeg для 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 ти використовуєш найчастіше? Пиши в коментарях 🙂