FFmpeg

 
 

Отворена мултимедийна рамка за обработка

Кодирайте, декодирайте, транскодирайте, стриймвайте и конвертирайте аудио и видео файлове чрез FFmpeg API.

Какво е FFmpeg?

FFmpeg е водеща отворена мултимедийна рамка, която позволява на разработчиците да записват, конвертират и стриймват аудио и видео съдържание. Тя включва обширен набор от библиотеки — като libavcodec, libavformat, libavutil, libavfilter, libswscale и libswresample — предоставящи мощни инструменти за работа с разнообразни мултимедийни задачи. С поддръжка на стотици кодеци и формати, FFmpeg захранва безброй приложения, от софтуер за видеоредактиране до сървъри за стрийминг и медийни плейъри.

FFmpeg е широко приет в различни индустрии благодарение на гъвкавостта, производителността и активната подкрепа от общността. Той се справя с всичко – от проста конверсия на формати до сложни видеофилтри и стрийминг в реално време. Независимо дали създавате медиа сървър, настолен плейър или облачен транскодинг процес, FFmpeg предоставя надеждни, висококачествени възможности за обработка. Неговите командни инструменти като ffmpeg, ffplay и ffprobe улесняват интегрирането им в скриптове и автоматизирани работни процеси, докато C API‑то и обвързващите библиотеки (например за Python) позволяват дълбок програмен контрол.

Previous Next

Започване с 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
 Български