- Zvládněte konverzi a editaci videa a zvuku v Linux s FFmpegem z terminál pomocí příkazy jasné a personalizované.
- Objevte komplexní příklady pro změnu formátů, úpravu kvality, extrakci stop nebo práci s obrázky a titulky.
- Naučte se, jak automatizovat opakující se úlohy převodu a zpracování multimédií a optimalizovat tak svůj pracovní postup v Linuxu.
FFmpeg je považován za jeden z nejrobustnějších a nejvšestrannějších nástrojů pro zpracování multimédií v Linuxu, což z něj činí nezbytný nástroj pro ty, kteří hledají flexibilitu a úplnou kontrolu z terminálu. Navzdory existenci grafických programů nabízí konzole přesnost, rychlost a schopnost automatizovat všechny druhy audiovizuálních úloh. S FFmpeg můžete konvertovat formáty, upravovat soubory pro zařízení, extrahovat stopy, ořezávat klipy, upravovat kvalitu, spravovat titulky a mnoho dalšího, pracovat se zvukem, videem a dokonce i obrázky, to vše pomocí několika dobře strukturovaných příkazů.
V tomto komplexním článku jsme shromáždili a přepsali nejkompletnější a nejpokročilejší informace z nejvýznamnějších článků Googlu o převodu formátů a manipulaci se soubory pomocí FFmpeg v Linuxu. Najdete zde nejen základní příkazy, ale také tipy , parametry a praktické příklady, které pokrývají vše od instalace a dávkové konverze souborů až po úpravu metadat, optimalizaci kvality, řešení běžných problémů a pokročilé scénáře, jako je automatizace, práce s titulky, kompatibilita s televizí a synchronizace zvuku/videa.
Co je FFmpeg a proč ho používat v Linuxu?
FFmpeg je sada programů a knihoven vyvinutých pro správu, konverzi, streamování a analýzu multimediálních souborů. Vznikl pod záštitou svobodného softwaru a vyniká svou kompatibilitou s obrovským množstvím kodeků a kontejnerů. Ačkoli existuje pro Windows a Mac , jeho integrace do světa Linuxu je legendární: mnoho grafických aplikací používá FFmpeg jako svůj interní engine a v serverech nebo skriptování je bezkonkurenční.
Hlavní výhodou FFmpeg je výkon jeho terminálu: můžete manipulovat s velkými objemy dat, automatizovat pracovní postupy a přizpůsobit všechny technické aspekty mediálního souboru. Jeho flexibilita ho činí užitečným jak pro začínající uživatele, kteří chtějí jednoduše změnit formáty, tak pro experty, kteří potřebují upravit specifické parametry pro každý soubor nebo provést pokročilé následné zpracování.
Instalace FFmpeg na Linuxu
Instalace FFmpeg je na většině linuxových distribucí jednoduchá. Obvykle se nachází v oficiálních repozitářích.
- Debian, Ubuntu a deriváty:
sudo apt install ffmpeg - Arch, Manjaro:
sudo pacman -S ffmpeg - Fedora, CentOS, openSUSE:
sudo dnf install ffmpeg
Zkontrolujte, zda je FFmpeg správně nainstalován spuštěním ffmpeg -version o which ffmpeg. Pokud se trasa zobrazí, můžete začít pracovat.
Klíčové pojmy: kodeky, formáty a kontejnery
Než se ponoříme do samotných příkazů, je dobré pochopit několik konceptů:
- kodek: Algoritmus, který komprimuje a dekomprimuje zvuk nebo video. Příklady: h264, xvid, mp3, aac.
- Formát nebo kontejner: Soubor, který seskupuje stopy videa, zvuku, titulků a metadat. Příklady: mp4, mkv, avi, mov, webm.
- Parametry: Specifické možnosti pro úpravu bitrate, rozlišení, fps, zvukových kanálů atd.
FFmpeg podporuje nepřeberné množství kombinací, ale výsledek závisí na kompatibilitě kodeků a kontejnerů. Ne všechny formáty podporují všechny typy stop a ani všechny konfigurace nejsou stejně kompatibilní na všech zařízeních.
Základní syntaxe a struktura příkazů FFmpeg
Obecná struktura libovolného příkazu FFmpeg je:
ffmpeg -i archivo_entrada archivo_salida
Některé důležité body:
- Možnosti se vztahují na následující vstupní nebo výstupní soubor. Objednávky se počítá.
- Můžete mít více vstupních a výstupních souborů a s každým z nich manipulovat pomocí indexů.
- Pokud není zadán žádný výstupní soubor, FFmpeg zobrazí informace pouze v konzoli, nový soubor se nevygeneruje.
- Globální možnosti (např. úroveň výřečnosti) jdou na začátek.
Například pro převod souboru AVI do MP4:
ffmpeg -i video.avi video.mp4
A pokud chcete nastavit konkrétní parametr, například datový tok videa na 2500 kb/s a datový tok zvuku na 192 kb/s:
ffmpeg -i video.avi -b:v 2500k -b:a 192k video_final.mp4
Základní příkazy pro převod formátů
Změna formátu videa nebo zvuku
- Z MP4 do AVI:
ffmpeg -i entrada.mp4 salida.avi - Z MKV do MP4:
ffmpeg -i original.mkv convertida.mp4 - Z AVI do MPG (MPEG):
ffmpeg -i video.avi video.mpg - Z FLV do MPEG:
ffmpeg -i video.flv video.mpeg - Z MOV do MP4:
ffmpeg -i archivo.mov resultado.mp4
Výstupní formát je definován pouze změnou přípony, ale pokud chcete vynutit kodek nebo určité funkce, přidejte potřebné parametry:
ffmpeg -i entrada.mov -c:v libx264 -c:a aac salida.mp4
Převod zvuku mezi formáty
- Z WAV do MP3:
ffmpeg -i cancion.wav nueva.mp3 - Z WMA do MP3:
ffmpeg -i audio.wma -f mp3 -ab 192 audio.mp3 - Z FLAC do OGG:
ffmpeg -i original.flac destino.ogg
Můžete také změnit parametry, jako je kodek, bitová rychlost, kanály nebo vzorkování:
ffmpeg -i sonido.flac -acodec libmp3lame -ab 128k -ar 44100 nuevo.mp3
Praktický příklad: konverze více souborů
Pro dávkovou konverzi souborů ve složce použijte smyčku v bash:
for archivo in *.avi; do
ffmpeg -i "$archivo" "${archivo%.avi}.mp4"
done
Tím se všechny soubory AVI ve složce převedou do souborů MP4.
Kontrola kvality a úprava klíčových parametrů
Bitrate videa a zvuku
- Video:
-b:v 3000k(3000 kb/s) - Audio:
-b:a 192k(192 kb/s)
Kvalitu můžete upravit v závislosti na použití. Například u mobilních zařízení můžete snížit rozlišení a datový tok:
ffmpeg -i entrada.mkv -vf scale=1280:720 -b:v 1500k salida.mp4
A pro lehčí zvuky:
ffmpeg -i cancion.wav -b:a 96k cancion_compacta.mp3
Změna rozlišení a poměru stran
- Vynucení specifického výstupního rozlišení:
ffmpeg -i entrada.mp4 -s 1280x720 salida_720p.mp4 - Změna poměru stran:
ffmpeg -i entrada.mp4 -aspect 16:9 salida_16_9.mp4
Některá zařízení někdy vyžadují specifické formáty pixelů, například televizory LG, které potřebují -pix_fmt yuv420p: více o kompatibilitě pixelů.
Změna snímkové frekvence za sekundu (FPS)
Změna nebo vynucení hodnoty FPS:
ffmpeg -i original.mp4 -r 30 salida_30fps.mp4
Nezapomeňte, že změna rozlišení nebo snímkové frekvence nezlepší původní kvalitu, i když to může být nezbytné pro kompatibilitu.
Extrakce informací a analýza souborů
Před konverzí je nezbytné znát vlastnosti souboru:
ffmpeg -i archivo.ext
V konzoli se zobrazí kodek, délka, kvalita, kanály a metadata.
Pokud chcete, aby byl výstup čistší, přidejte -hide_banner: Více o analytice a metadatech.
ffmpeg -hide_banner -i archivo.ext
Pro komplexní a přizpůsobitelnou analýzu použijte ffprobe: Více o ffprobe a pokročilé analýze.
ffprobe -i archivo.ext -print_format json -show_format -show_streams
Tímto způsobem získáte všechny informace strukturované do JSON.
Pokročilá editace a manipulace s multimediálními soubory
Upravit metadata
- Export metadat ze souboru MP3:
ffmpeg -i cancion.mp3 -f ffmetadata metadata.txt - Úprava a import metadat:
ffmpeg -i original.mp3 -metadata artist='Nuevo Artista' -acodec copy salida.mp3
Můžete upravovat informace jako interpret, album, žánr, rok, skladba atd. Ideální pro organizaci hudby nebo její přizpůsobení náročným přehrávačům (například Apple).
Extrahovat zvukové stopy nebo odstranit zvuk/video
- Extrahovat pouze zvuk bez překódování:
ffmpeg -i original.avi -vn -acodec copy solo_audio.mp3 - Extrahujte převedený zvuk do jiného formátu (např. z videa):
ffmpeg -i video.mp4 -q:a 0 -map a solo_audio.mp3 - Odebrání všech zvukových stop z videa:
ffmpeg -i original.avi -map 0 -map -0:a -c copy sin_audio.avi - Smazat všechny zvukové streamy kromě konkrétních:
ffmpeg -i original.avi -map 0 -map -0:a:3 -map -0:a:6 -c copy con_dos_streams.avi - Extrahovat pouze konkrétní zvukovou stopu:
ffmpeg -i original.avi -map 0:a:2 -c copy solo_pista2.avi
Extrahování obrázků nebo vytváření videí z obrázků
- Extrahujte všechny snímky jako obrázky:
ffmpeg -i video.mp4 imagen%d.jpg - Extrahujte jeden snímek každou sekundu:
ffmpeg -i video.mp4 -vf fps=1 imagen%d.jpg - Extrahujte pouze klíčové snímky:
ffmpeg -i video.avi -vf "select=eq(pict_type\,I)" -vsync vfr imagen%d.jpg - Vytvořte video ze sekvence obrázků:
ffmpeg -i imagen%d.jpg video.avi - Vytvořte video s vlastní snímkovou frekvencí:
ffmpeg -framerate 1 -i img%03d.png -r 25 -pix_fmt yuv420p salida.mp4
Převod videa do animovaného GIFu
FFmpeg umožňuje transformovat videoklip do animovaného GIFu, což je užitečné pro memy a sociální média:
ffmpeg -i original.mp4 -vf "scale=320:-1" animado.gif
Pro vyšší kvalitu nejprve extrahujte snímky a použijte nástroj jako gifski:
ffmpeg -i original.mp4 frame%04d.png
gifski -o salida.gif frame*.png
Převod mezi rozlišením 4K, FullHD, HD…
- Z 4K na FullHD (výměna kontejneru):
ffmpeg -i 4k.mkv -vf scale=1920:1080 -q:a 0 -q:v 0 1080p.avi - Z FullHD na HD:
ffmpeg -i fullhd.mkv -vf scale=1280:720 -b:v 2000k hd.mp4 - Z FullHD na 4K:
ffmpeg -i 1080p.mkv -vf scale=3840:-1 4k.mkv
Úprava fragmentů: stříhání, spojování, ořezávání a kombinování souborů
Stříhání video nebo audio fragmentu
Chcete-li extrahovat konkrétní část souboru:
ffmpeg -ss 00:00:30 -t 00:00:15 -i original.mp4 -c copy fragmento.mp4
Toto se zkracuje od 30. sekundy s trváním 15 sekund. Pokud chcete definovat konec místo trvání, použijte -to:
ffmpeg -ss 00:00:35 -to 00:01:05 -i original.mp4 -c copy fragmento.mp4
Můžete také stříhat od začátku k bodu:
ffmpeg -t 00:01:36 -i original.mp4 -c copy recortado.mp4
Sloučení více videí do jednoho
Nejspolehlivější metodou jsou seznamy souborů a filtrování concat: Více o spojování souborů pomocí FFmpeg
- Vytvořte textový soubor (například
lista.txt) s názvy videí:
soubor 'part1.mp4' soubor 'part2.mp4'
- Běh:
ffmpeg -f concat -safe 0 -i lista.txt -c copy resultado.mp4
Tato metoda je rychlá a neprovádí rekompresi, ale videa musí mít identické kodeky.
Kombinace zvuku a videa z různých souborů
Zvukový soubor můžete sloučit se souborem videa:
ffmpeg -i video.mp4 -i audio.mp3 -c:v copy -c:a aac -strict experimental final.mp4
Chcete-li nahradit zvukovou stopu videa:
ffmpeg -i video.mp4 -i nuevo_audio.mp3 -map 0:v -map 1:a -c copy video_con_nuevo_audio.mp4
Automatizace: Dávková konverze a skriptování
Jednou ze silných stránek FFmpeg je automatizace procesů pomocí bash skriptů. Formát stovek souborů můžete změnit jen několika řádky:
IFS=$'\n'
for i in *.webm; do ffmpeg -i "$i" "${i/%.webm/.mp3}"; done; unset IFS
S podobnými smyčkami můžete převést .flv na .ogg nebo jakoukoli jinou kombinaci. Nezapomeňte, že v názvech s mezerami se použití IFS Je to zásadní.
Opravy chyb a kompatibilita
Oprava problematických souborů
Některá videa nemusí správně fungovat na zařízeních, jako jsou chytré televizory. Vyřešte to vygenerováním kopie ve FFmpeg bez překódování:
ffmpeg -i video_orig.avi -c:v copy -c:a copy reparado.avi
Pokud se vyskytnou problémy s rozlišením, můžete vynutit -vf "setdar=16:9,setsar=1:1" pro nastavení vhodného poměru stran. Více informací o kompatibilitě s různými formáty a zařízeními je k dispozici na adrese nástroje pro převod virtuálních disků.
Optimalizujte pro maximální kompatibilitu
Pokud potřebujete, aby soubor MKV fungoval na téměř všech televizorech, použijte:
ffmpeg -i original.mkv -c:a libmp3lame -pix_fmt yuv420p compatible.mkv
Někdy mohou zvukové kodeky způsobovat problémy, proto pro maximální kompatibilitu zvolte MP3 nebo AAC.
Další pokročilé úkoly a operace
Extrahovat a přidat titulky
- Převod titulků z .vtt do .ass:
ffmpeg -i subtitulos.vtt salida.ass - Přidání titulků k videu:
ffmpeg -i video.mp4 -i subtitulos.srt -map 0 -map 1 -c copy -c:v libx264 -crf 23 -preset veryfast salida.mkv
Odebrání titulků a dalších streamů
ffmpeg -i entrada.mkv -map 0:v -map 0:a -c copy solo_video_audio.mkv
Přidání vodoznaků nebo log
Do libovolného rohu můžete přidat obrázek (například PNG s průhledností):
ffmpeg -i video.mp4 -i logo.png -filter_complex "overlay=10:10" salida.mp4
Umístění loga do pravého dolního rohu:
ffmpeg -i video.mp4 -i logo.png -filter_complex "overlay=W-w-10:H-h-10" salida.mp4
Úprava hlasitosti nebo vyčištění zvuku
- Zvyšte hlasitost vynásobením x3.5:
ffmpeg -i entrada.mkv -filter:a "volume=3.5" -c:v copy -acodec mp3 salida.mkv - Odstranění šumu na pozadí (vyžaduje sox):
Nejprve extrahujte fragment šumu
ffmpeg -i entrada.mp3 -ss 00:00:00 -t 1 ruido.mp3
Po:
sox entrada.mp3 limpio.mp3 noisered noise.prof 0.21
Synchronizujte zvuk a video
Pokud zjistíte desynchronizaci, zpozďte zvuk nebo video pomocí -itsoffset o -af adelay:
ffmpeg -itsoffset 1.7 -i video.mkv -i video.mkv -map 0:0 -map 1:1 -acodec copy -vcodec copy sincronizado.mkv
V jednodušších případech pro zpoždění zvuku o 1.7 sekundy:
ffmpeg -i video1.webm -af "adelay=1700|1700" -vcodec copy video_sincronizado.webm
Zřetězení videí s různými kodeky nebo formáty
Pokud soubory nemají stejný kodek a parametry, je nejlepší je nejprve překódovat nebo použít concat s překódováním. Můžete se také podívat.
ffmpeg -f concat -i lista.txt -c:v libx264 -c:a aac -strict experimental salida.mp4
Otočit videa
Otočení videa o 90 stupňů doprava:
ffmpeg -i original.mov -vf "transpose=1" -c:a copy rotado.mov
Pro 180 stupňů:
ffmpeg -i original.mov -vf "transpose=2,transpose=2" -c:a copy rotado.mov
Smyčka videa
ffmpeg -stream_loop 2 -i original.mp4 -c copy loop.mp4
Číslo označuje počet opakování; Pro nekonečno použijte -1.
Stabilizace roztřesených videí
Pro nestabilní videa:
- Detekuje pohyb:
ffmpeg -i tembloroso.avi -vf vidstabdetect=stepsize=6:shakiness=3:accuracy=9:result=vectors.trf -f null - - Opravte video:
ffmpeg -i tembloroso.avi -vf vidstabtransform=input=vectors.trf:zoom=1:smoothing=30,unsharp=5:5:0.8:3:3:0.4 -vcodec libx264 -preset slow -tune film -crf 18 -acodec copy corregido.avi
Rychlost přehrávání
Zrychlení nebo zpomalení videa:
- Zrychlení x2:
ffmpeg -i video.mpg -vf "setpts=0.5*PTS" rapido.mpg - Zpomalení x4:
ffmpeg -i video.mpg -vf "setpts=4.0*PTS" lento.mpg
Nahrávání videa z počítače nebo streamování
- Nahrávání plochy (FullHD) a zvuku:
ffmpeg -f alsa -i default -f x11grab -s 1920x1080 -r 30 -i :0.0 -preset ultrafast -vcodec libx264 -tune zerolatency -f mpegts tcp://IP_DESTINO:4444 - Záznam z webkamery:
ffmpeg -f v4l2 -i /dev/video0 -preset ultrafast salida.webm
Automatizujte hromadné úpravy a opakující se úkoly
Kombinujte FFmpeg se skripty používajícími bash, python nebo jakýkoli jazyk pro správu procesů pro konverzi, přejmenování a zpracování stovek souborů současně. Příklad automatického dělení souborů pomocí souboru seznamu úloh a skriptu , který iteruje adresářem a podle potřeby spouští příslušné příkazy pro každý soubor.
Automatická změna více formátů souborů
Používejte vlastní smyčky nebo skripty. Například pro převod všech souborů .wav na CD do formátu MP3 a jejich uložení do složky:
cd /ruta/al/cd
mkdir ~/MP3s
IFS=$'\n'
for i in *.wav; do ffmpeg -i "$i" ~/MP3s/"${i/%.wav/.mp3}"; done; unset IFS
Pokročilý případ: konverze obsahu DVD, Blu-ray nebo ISO
- Připojte ISO obraz k systému.
- Identifikuje fragmenty videa (obvykle .VOB pro DVD, .m2ts pro Blu-Ray).
- Zřetězením velkých souborů získáte celý film:
cat VTS_01_1.VOB VTS_01_2.VOB VTS_01_3.VOB VTS_01_4.VOB > pelicula.vob - Zkontrolujte streamy:
ffmpeg -probesize 4G -analyzeduration 4G -i pelicula.vob - Vyberte pouze potřebné streamy (například video a audio ve španělštině):
ffmpeg -i pelicula.vob -q:a 0 -q:v 0 -map 0:1 -map 0:2 pelicula_es.mkv
Celý proces je přizpůsobitelný potřebám a můžete zahrnout titulky nebo alternativní stopy pomocí příslušných parametrů. -map.
Vášnivý spisovatel o světě bytů a technologií obecně. Rád sdílím své znalosti prostřednictvím psaní, a to je to, co budu dělat v tomto blogu, ukážu vám všechny nejzajímavější věci o gadgetech, softwaru, hardwaru, technologických trendech a dalších. Mým cílem je pomoci vám orientovat se v digitálním světě jednoduchým a zábavným způsobem.
