
FFmpeg
Фреймворк обробки мультимедіа з відкритим кодом
Кодуйте, декодуйте, транскодуйте, транслюйте та конвертуйте аудіо та відеофайли за допомогою FFmpeg API.
Що таке FFmpeg?
FFmpeg — провідний фреймворк з відкритим кодом для мультимедіа, який дозволяє розробникам записувати, конвертувати та транслювати аудіо та відео контент. Він включає комплексний набір бібліотек — таких як libavcodec, libavformat, libavutil, libavfilter, libswscale та libswresample — забезпечуючи потужні інструменти для роботи з різноманітними мультимедійними завданнями. Підтримуючи сотні кодеків і форматів, FFmpeg живить безліч застосунків, від програм для відеомонтажу до серверів трансляції та медіаплеєрів.
FFmpeg широко використовується в різних галузях завдяки своїй гнучкості, продуктивності та активній підтримці спільноти. Він справляється з усім — від простого перетворення форматів до складної відеофільтрації та трансляції в реальному часі. Незалежно від того, чи створюєте ви медіасервер, настільний плеєр або хмарний конвеєр транскодування, FFmpeg забезпечує надійні, високоякісні можливості обробки. Його інструменти командного рядка, такі як ffmpeg, ffplay і ffprobe, спрощують інтеграцію в скрипти та автоматизовані робочі процеси, а C‑API та прив’язки (наприклад, для Python) дозволяють глибокий програмний контроль.
Початок роботи з FFmpeg
Щоб почати використовувати FFmpeg, встановіть його через менеджер пакетів вашої системи (наприклад, `apt install ffmpeg` в Ubuntu, `brew install ffmpeg` в macOS) або завантажте готові бінарники з офіційного сайту. Для програмного використання встановіть Python-обгортку за допомогою `pip install ffmpeg-python` або використайте офіційні заголовки бібліотеки C. FFmpeg також доступний на GitHub за адресою [FFmpeg GitHub](https://github.com/FFmpeg/FFmpeg), де ви можете зібрати його з вихідного коду для кастомних конфігурацій. Його легка вага та кросплатформна підтримка роблять його ідеальним для настільних, серверних та вбудованих розгортань.
Встановлення FFmpeg через менеджери пакетів
# Ubuntu/Debian
sudo apt update && sudo apt install ffmpeg
# macOS (Homebrew)
brew install ffmpeg
# Python wrapper
pip install ffmpeg-python
Конвертування медіа між форматами
FFmpeg відмінно конвертує медіафайли між сотнями форматів і кодеків. Ви можете транскодувати відео з MP4 у WebM, витягнути аудіо з відеофайлів або змінити формати контейнерів без перекодування (копіювання потоку). Його інтелектуальні налаштування за замовчуванням забезпечують високу якість, а розширені параметри дозволяють точно налаштувати бітрейт, роздільну здатність, частоту кадрів і параметри кодека. Незалежно від того, чи готуєте ви контент для веб-стримінгу, архівування чи відтворення на певних пристроях, FFmpeg надає точний контроль над якістю вихідного матеріалу та сумісністю. Інтерфейс командного рядка підтримує складні ланцюжки фільтрів для зміни розміру, кадрування та застосування ефектів під час конвертації.
Як конвертувати MP4 у WebM за допомогою FFmpeg?
ffmpeg -i input.mp4 -c:v libvpx-vp9 -crf 30 -b:v 0 -c:a libopus output.webm
Потокове транслювання в реальному часі та живе мовлення
FFmpeg підтримує захоплення, транскодування та трансляцію живих медіа за протоколами, такими як RTMP, HLS та SRT. Він може захоплювати відео з веб‑камер, мікрофонів або мережевих джерел і передавати потоки на платформи, такі як YouTube, Twitch або власні RTMP‑сервери. Завдяки опціям низької затримки та адаптивному бітрейту, FFmpeg забезпечує живі трансляції для подій, ігор та спостереження. Його здатність обробляти кілька входів, накладати графіку та застосовувати фільтри в реальному часі робить його ідеальним для професійних потокових налаштувань. Ви також можете сегментувати вихід для DASH/HLS для адаптивного відтворення на мобільних та веб‑клієнтах.
Як транслювати відеофайл у YouTube Live?
ffmpeg -re -i input.mp4 -c:v libx264 -preset veryfast -maxrate 3000k -bufsize 6000k -g 50 -c:a aac -b:a 160k -f flv "rtmp://a.rtmp.youtube.com/live2/your_stream_key"
Відеофільтрація та постобробка
Фреймворк libavfilter у FFmpeg забезпечує потужне фільтрування відео в реальному часі за допомогою орієнтованого ациклічного графа фільтрів. Ви можете обрізати, масштабувати, обертати, деінтерлейсити, зменшувати шум, накладати водяні знаки, додавати текст, коригувати кольори та застосовувати складні ефекти, такі як уповільнення або тайм‑лапс — все без повторного кодування всього потоку. Фільтри можна ланцюжком з’єднувати для багатоступеневої обробки, а апаратне прискорення (наприклад, NVENC, VAAPI, VideoToolbox) забезпечує продуктивність на сучасних GPU. Це робить FFmpeg незамінним для відеоредакторів, творців контенту та розробників, які створюють конвеєри обробки медіа, що потребують візуальних покращень або нормалізації форматів.
Як обрізати, масштабувати та додати водяний знак до відео?
ffmpeg -i input.mp4 -i watermark.png -filter_complex "[0:v]crop=1280:720:0:0[scaled];[scaled][1:v]overlay=10:10" -c:a copy output.mp4
Витяг та маніпулювання метаданими та субтитрами
FFmpeg забезпечує повний контроль над метаданими (тегами) та субтитрами, вбудованими у медіафайли. Ви можете витягувати, редагувати або видаляти метадані (наприклад, назву, виконавця, альбом, дані GPS) за допомогою простих команд, або конвертувати субтитри між форматами, такими як SRT, ASS та VTT. Він підтримує вбудовування субтитрів у відео або їх розміщення як окремих доріжок. Для робочих процесів доступності та локалізації FFmpeg дозволяє пакетну обробку файлів субтитрів, коригування таймінгу та управління мовними доріжками. Це робить його ідеальним для локалізації субтитрів, управління медіа-активами та відповідності стандартам трансляції, що вимагають вбудованих метаданих.
Як витягти субтитри з відеофайлу?
ffmpeg -i input.mkv -map 0:s:0 -c:s srt output.srt
