
FFmpeg
Otwarty framework przetwarzania multimediów
Koduj, dekoduj, transkoduj, strumieniuj i konwertuj pliki audio i wideo za pomocą API FFmpeg.
Czym jest FFmpeg?
FFmpeg jest wiodącym otwartym frameworkiem multimedialnym, który umożliwia programistom nagrywanie, konwertowanie i transmitowanie treści audio i wideo. Zawiera kompleksowy zestaw bibliotek — takich jak libavcodec, libavformat, libavutil, libavfilter, libswscale i libswresample — oferując solidne narzędzia do obsługi różnorodnych zadań multimedialnych. Dzięki wsparciu setek kodeków i formatów, FFmpeg napędza niezliczone aplikacje, od oprogramowania do edycji wideo po serwery strumieniowe i odtwarzacze multimedialne.
FFmpeg jest szeroko stosowany w różnych branżach ze względu na swoją elastyczność, wydajność i aktywne wsparcie społeczności. Obsługuje wszystko, od prostej konwersji formatów po zaawansowane filtrowanie wideo i transmisję w czasie rzeczywistym. Niezależnie od tego, czy tworzysz serwer multimedialny, odtwarzacz na pulpicie, czy chmurową linię przetwarzania transkodowania, FFmpeg zapewnia niezawodne, wysokiej jakości możliwości przetwarzania. Jego narzędzia wiersza poleceń, takie jak ffmpeg, ffplay i ffprobe, ułatwiają integrację ze skryptami i automatyzacją, a jego API w języku C oraz powiązania (np. dla Pythona) umożliwiają głęboką kontrolę programistyczną.
Rozpoczęcie pracy z FFmpeg
Aby rozpocząć korzystanie z FFmpeg, zainstaluj go za pomocą menedżera pakietów systemu (np. `apt install ffmpeg` na Ubuntu, `brew install ffmpeg` na macOS) lub pobierz gotowe binaria ze strony oficjalnej. Do użytku programistycznego zainstaluj wrapper Pythona poprzez `pip install ffmpeg-python` lub użyj oficjalnych nagłówków biblioteki C. FFmpeg jest również dostępny na GitHubie pod adresem [FFmpeg GitHub](https://github.com/FFmpeg/FFmpeg), gdzie możesz zbudować go ze źródeł w celu niestandardowych konfiguracji. Jego lekka waga i wsparcie wieloplatformowe czynią go idealnym dla komputerów stacjonarnych, serwerów i wdrożeń wbudowanych.
Instalacja FFmpeg za pomocą menedżerów pakietów
# Ubuntu/Debian
sudo apt update && sudo apt install ffmpeg
# macOS (Homebrew)
brew install ffmpeg
# Python wrapper
pip install ffmpeg-python
Konwertowanie multimediów między formatami
FFmpeg wyróżnia się w konwertowaniu plików multimedialnych pomiędzy setkami formatów i kodeków. Możesz transkodować wideo z MP4 do WebM, wyodrębniać dźwięk z plików wideo lub zmieniać formaty kontenerów bez ponownego kodowania (kopiowanie strumienia). Inteligentne ustawienia domyślne zapewniają wysoką jakość, a zaawansowane opcje pozwalają precyzyjnie dostosować bitrate, rozdzielczość, liczbę klatek na sekundę i parametry kodeka. Niezależnie od tego, czy przygotowujesz treści do strumieniowania w sieci, archiwizacji czy odtwarzania na konkretnych urządzeniach, FFmpeg zapewnia precyzyjną kontrolę nad jakością wyjścia i kompatybilnością. Interfejs wiersza poleceń obsługuje złożone łańcuchy filtrów do zmiany rozmiaru, przycinania i stosowania efektów podczas konwersji.
Jak przekonwertować MP4 na WebM za pomocą FFmpeg?
ffmpeg -i input.mp4 -c:v libvpx-vp9 -crf 30 -b:v 0 -c:a libopus output.webm
Strumieniowanie w czasie rzeczywistym i transmisje na żywo
FFmpeg obsługuje pobieranie, transkodowanie i strumieniowanie mediów na żywo przy użyciu protokołów takich jak RTMP, HLS i SRT. Może przechwytywać z kamer internetowych, mikrofonów lub źródeł sieciowych i wysyłać strumienie na platformy takie jak YouTube, Twitch lub własne serwery RTMP. Dzięki opcjom niskiego opóźnienia i adaptacyjnemu strumieniowaniu bitrate, FFmpeg napędza potoki transmisji na żywo dla wydarzeń, gier i monitoringu. Jego zdolność do obsługi wielu wejść, nakładania grafiki i stosowania filtrów w czasie rzeczywistym czyni go idealnym rozwiązaniem do profesjonalnych konfiguracji strumieniowania. Możesz także segmentować wyjście dla DASH/HLS, aby uzyskać adaptacyjne odtwarzanie na urządzeniach mobilnych i w przeglądarkach.
Jak transmitować plik wideo na 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"
Filtrowanie wideo i postprodukcja
Framework libavfilter FFmpeg umożliwia potężne filtrowanie wideo w czasie rzeczywistym za pomocą skierowanego acyklicznego grafu filtrów. Możesz przycinać, skalować, obracać, usuwać przeplot, redukować szumy, nakładać znaki wodne, dodawać tekst, dostosowywać kolory i stosować złożone efekty, takie jak zwolnione tempo lub przyspieszenie czasu — wszystko bez ponownego kodowania całego strumienia. Filtry mogą być łączone w łańcuchy do przetwarzania wieloetapowego, a przyspieszenie sprzętowe (np. NVENC, VAAPI, VideoToolbox) zapewnia wydajność na nowoczesnych GPU. To sprawia, że FFmpeg jest niezbędny dla edytorów wideo, twórców treści i programistów budujących potoki przetwarzania mediów wymagające ulepszeń wizualnych lub normalizacji formatu.
Jak przyciąć, skalować i dodać znak wodny do wideo?
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
Wyodrębnianie i manipulowanie metadanymi oraz napisami
FFmpeg zapewnia pełną kontrolę nad metadanymi (tagami) i napisami osadzonymi w plikach multimedialnych. Możesz wyodrębniać, edytować lub usuwać metadane (np. tytuł, wykonawca, album, dane GPS) za pomocą prostych poleceń, a także konwertować napisy między formatami takimi jak SRT, ASS i VTT. Obsługuje wtopienie napisów w wideo lub ich osadzanie jako oddzielne ścieżki. W ramach przepływów pracy związanych z dostępnością i lokalizacją, FFmpeg umożliwia przetwarzanie wsadowe plików napisów, korektę synchronizacji oraz zarządzanie ścieżkami językowymi. Dzięki temu jest idealny do lokalizacji napisów, zarządzania zasobami medialnymi oraz spełniania wymogów standardów nadawczych wymagających osadzonych metadanych.
Jak wyodrębnić napisy z pliku wideo?
ffmpeg -i input.mkv -map 0:s:0 -c:s srt output.srt
