FFmpeg pro převod mezi video formáty
Dnes trochu mimo primární téma blogu, ale určitě potěším všechny media-fily, kteří občas potřebují převést video soubory do jiného formátu. A nejenom to. Můžeme si pohodlně vytvořit variantu videa v nižší kvalitě. To všechno jednoduše přes příkazovou řádku. Nebudeme si nic namlouvat – internet je plný všelijakých videí a to se nebavím jen o p0rnu :).
Pro ty, kteří projekt FFmpeg neznají, tak ho ve stručnosti představím. FFmpeg je kolekcí svobodného softwaru sloužící pro stream, nahrávání nebo konverzi většiny video a audio formátů. Základem je knihovna libavcodec, která má v sobě implementovanou většinu kodeků a není tak potřeba shánět a instalovat hromadu Codec Packů. Libavcodec používá například i MPlayer.
Jelikož jsem dost opatrný jaký software si do počítače nahrávám, tak používám pro přehrávání videa Windows Media Player. Občas se mi stává, že video nefunguje kvůli chybějícímu kodeku. Pomocí FFmpeg s jeho implementovanými kodeky si dokážu převést soubor do použitelnějšího formátu. Při převodu si můžeme pohrát i s bitrate nebo kvalitou audia. Ne všechna videa mi také stojí za to skladovat na disku v HD kvalitě.
Jak na konvertování videa
Je potřeba si stáhnout projekt FFmpeg z nějakého zdroje. Asi nejlepší pro Windows se mi jeví http://ffmpeg.zeranoe.com/builds/. Vybereme nejnovější 32-bit nebo 64-bit verzi (static). Archiv je ve formátu 7zip a je potřeba jej rozbalit, umí WinRar.
1) Archiv rozbalíme. Ve složce bin je soubor ffmpeg.exe, který nakopírujeme například do C:/Documents and Settings/Váš Profil/ nebo přímo na kořen disku C:/. Doporučuji první umístění, aby jsme nemuseli při každém spuštění příkazové řádky psát cestu k ffmpeg.exe.
2) Součástí archivu je i dokumentace, která nám v začátcích pomůže. Hlavní parametry, které se určitě budou hodit jsou -i (nastavení input souboru), -b (nastavení bitrate, POZOR default je 200kbps!!!), -s (nastavení rozlišení obrazu), -ab (nastavení bitrate zvuku). Já především používám parametr -sameq (stejná velikost obrazu, bitrate i audio). Ukázka jednoduchého použití:
ffmpeg -sameq -i cesta/nazev-souboru.wmv cesta/nazev-noveho-souboru.avi
Můžeme si v rámci testu taky pohrát s velikostí obrazovky, kvalitou zvuku a bitrate, když už jsem to nakousnul:
ffmpeg -b 2000k -ab 128k -s 800x600 -i cesta/HD-video.mp4 cesta/obyc-video.avi
A v posledním příkladu vyměníme audio kodek s využitím 2 kanálů a zachováme video kodek. Využijeme přitom 2 vlákna procesoru:
ffmpeg -threads 2 -i cesta/HD-video.mp4 -vcodec copy -acodec libfaac -ab 160k -ac 2 -ar 44100 cesta/HD-video_nove.mp4
Za pár minut je hotovo a formát AVI už můj Media Player určitě přehaje. Zkoušel jsem i převod .mkv (Matroska video) -> AVI, .mp4 -> WMV, .flv -> AVI a funguje bez problémů.
UPDATE 2020
S překvapením jsem zjistil, že před 7 lety ffmpeg přišel o parametr -sameq, tak níže přikládám příkaz, který nyní používám (převod z h.265/HEVC do h.264):
ffmpeg -threads 2 -i "cesta/HD-video.mpg" "cesta/HD-video_nove.mp4" -qscale 0 -vcodec libx264 -acodec libfaac -ab 256k -ac 2 -ar 48000
Nejnovější komentáře