Ugrás a főmenüre.
Minden más 2008.07.30. Internets video

Az FFMPEG beállítása minőségi videóhoz

Mármint parancssorból paraméterezése, mert úgy kell. Kismillió paraméter van, de én csak a jó minőségű videók konvertálásához szükségeseket ismertetem, elsődleges fókusszal a webes videókra.

Az alap szintakszis a következő:

ffmpeg -y -i INPUTVIDEO -pass PASS -threads SZÁLAK -b VIDEOBITRÁTA -r FRAMERATE -s FELBONTÁS -g KULCSKOCKAGYAKORISÁG -acodec AUDIOCODEC -ar AUDIOHZ -ab AUDIOBITRÁTA -ac AUDIOCSATORNA -vcodec VIDEOCODEC CODECPARAMÉTEREK OUTPUTVIDEO

Magyarázat:

y: Felülírjük az OUTPUTFILE-t, ha esetleg létezne.

PASS: menet. Jó minőségű videóhoz mindig kétmenetben kódolunk. Még a szar minőségű forrást is ezzel érdemes, hogy ne rontsuk le még jobban. Az első menetben megvizsgálja az FFMPEG a forrásvideót, így felkészül a dologra. Jobbak lesznek a mozgások, kevésbé kockásodik be a videó egy hirtelen váltáskor. Az első menet eredménye egy log file (nem kell vele foglalkozni), a második menetben pedig megtörténik a tényleges konverzió. Kétmenetes ügyben tehát kétszer kell elindítani az FFMPEG-et, majd lejjebb írok erről.

SZÁLAK: a számítógéped esetleges párhuzamos feladatvégrehajtási képességeit ezzel lehet kihasználni, kétmagos processzornál állítsd 2-re, egyébként nem érdemes.

VIDEOBITRÁTA: meg lehet adni bitenként vagy kilobitenként is, pl. 512000 vagy 512k.

FRAMERATE: hány képkocka legyen másodpercenként. Én 25-öt szoktam mindig, kivéve, ha a forrásvideó framerate-je ennél kisebb. 25-nél több meg minek?

FELBONTÁS: hányszor hány pixeles legyen az eredmény, pl. 400x300. A tömörítőeljárások akkor működnek a legnagyobb hatásfokkal és az elkészült videó akkor lesz a lehető legtöbb eszközzel kompatibilis, ha mindkét szám 16-tal osztható. Éppen ezért kissé bosszús vagyok, ha a már említett 400x300-at látom úton-útfélen.

KULCSKOCKAGYAKORISÁG: hány képkockánként legyen egy kulcskocka (olyan képkocka, ami a teljes képet tartalmazza). Minél ritkábban van, annál jobb a tömörítés hatásfoka, de sok lejátszó csak kulcskockához tud tekerni. 1 percnél rövidebb webes videóknál legyen egyenlő a FRAMERATE-tel (azaz 1 másodpercenként lesz 1 kulcskocka), ennél hosszabbaknál lehet növelni, én 10 másodpercig is simán elmegyek, de ennél többre nem érdemes. Ezzel a paraméterrel úgy pluszmínusz 15%-kal változik a méret.

AUDIOCODEC: milyen audió kodeket használunk, pl. libfaac (H264 AAC) vagy libmp3lame (MP3).

AUDIOHZ: hány Hz-es mintavételezés, pl. 44100. Én mindig 44100-at használok, ez CD minőség. Ennél lejjebb hulladék a minőség, ennél följebb pedig csak a vájtfülűek veszik észre a változást.

AUDIOBITRÁTA: itt is meg lehet adni bitenként vagy kilobitenként is. Gyanítom mindenki keni-vágja, hogy MP3-nál milyen minőségre számíthat mondjuk 128k-nál. AAC-nál viszont ugyanahhoz a minőséghez "egy szinttel" lejjebb lehet menni, pl. 128-ról 96k-ra.

AUDIOCSATORNA: 1 (mono), 2 (sztereó).

VIDEOCODEC: melyik tömörítő kodeket, azaz tömörítő eljárást használjuk, pl. H264-hez ezt: libx264.

CODECPARAMÉTEREK: kismillió paraméter, ami a használt videótömörítő eljárás (pl. H264, VP6) finombeállításához kell és kodekenként eltér.

Kétmenetes kódolás

Kétmenetes kódolásnál eltérő paraméterekkel kell indítani az FFMPEG-et, mert az első menethez elég egy igénytelenebb beállítás is, hogy gyorsabban fusson le. Én az első menetben kikapcsolom a hangot és elhagyok egy csomó finombeállítást, azaz így néznek ki a dolgaim:

ffmpeg -y -i INPUTVIDEO -pass 1 -an -threads SZÁLAK -b VIDEOBITRÁTA -r FRAMERATE -s FELBONTÁS -g KULCSKOCKAGYAKORISÁG -vcodec VIDEOCODEC NAGYONKEVÉSCODECPARAMÉTER OUTPUTVIDEO

ffmpeg -y -i INPUTVIDEO -pass 2 -threads SZÁLAK -b VIDEOBITRÁTA -r FRAMERATE -s FELBONTÁS -g KULCSKOCKAGYAKORISÁG -acodec AUDIOCODEC -ar AUDIOHZ -ab AUDIOBITRÁTA -ac AUDIOCSATORNA -vcodec VIDEOCODEC SOKSOKCODECPARAMÉTER OUTPUTVIDEO

an: ezzel kapcsolom ki az audiót.

B-frames

iPod/iPhone és egyéb illusztris eszközök nem boldolgulnak ezzel a képkocka típussal, ezért érdemes bepasszintani mindkét menethez egy ilyet: -bf 0. A Flash player viszont tudja, oda ezt ajánlom: -bf 3.

Videó kodek paraméterek

A fentiekkel már elég jó eredményt lehet elérni, de egy kb. pluszmínusz 30%-os skálán még finomíthatunk a videó kodek paraméterekkel, melyek kodekenként különböznek. Maximalista lévén értelemszerűen bele szoktam ásni magam ebbe is, de ez már voodoo, keményen. Az asztali szoftverek többsége ki tudja milyen finombeállításokat használ, gyanítom nagy részük default értéken hagyja ezeket, így ezen a területen sufnituninggal mi jobbat tudunk!

Itt most picit geci leszek, mert nem rontom el ezt az amúgy is hosszú és fárasztó bejegyzést az ismertetésükkel. Például a H264 kodeknél annyit szoktam használni, hogy a már említett parancssoraim még négyszer hosszabbak. Másrészt legyen egy pici üzleti titkom, amiből előnyt kovácsolok. :-)

Egy-két hónapon belül úgyis kijön egy olyan termékem, amiből kipuskázhatod.

3 hozzászólás

  1. idézem 2008.10.06. 06:06
    Eltelt az 1-2 hónap, van termék? Lemaradtam valamiről?
  2. idézem 2008.10.06. 06:11
  3. idézem 2008.10.06. 06:20
    Oké, rájöttem magamtól is.
    http://szantog.imect.com/page/vigyazat_reklam_avencoder
Új hozzászólás
A sortörések automatikusak. Csak az üzenet kitöltése kötelező, a többi mező opcionális. A megadott e-mail címet nem tesszük közzé. Engedélyezett HTML tagek: p, a, strong, em, blockquote, ul, ol, li, dl, dt, dd.

Legutolsó hozzászólások

Veoh.com: szánalmas!: zola2000: Megtaláltam a legegyszerűbb megoldást veohra: használjatok operát, és kapcsoljátok be az opera turbot, ekkor az opera norvégiai jön be a...

Végre IKEA!: Ági: Heló bárkinek, aki idetéved! A weboldalunk domain-je - a kedvenc áruházunk ügyvédjének nyumására :) - megváltozott: Az új cím: is...

DJ PLAYER Blue Edition: Gábor: Ja, és természetesen megy iPad-en is, hiszen _minden_ iOS app megy iPad-en.

DJ PLAYER Blue Edition: Gábor: Bug report-okat itt fogadunk: http://djplayer.net/page/bug_report_fixes

DJ PLAYER Blue Edition: hohand: Hello!A dj player mukodik iPad-on is?Tegnap feltettem, wifi-n athuztam ra zeneket,de amikor ranyomtam egy zeneszamra,error-t dobott es valami is!...

iMect means internet, media and other cool things. We're a small company located in Hungary. There is a big footer on every page where you can discover what we do and what happens with us.

Az iMect jelentése: internet, média és egyéb király dolgok. Egy kis magyar cég vagyunk. Minden oldalon van egy nagy lábléc, ahol felfedezheted, hogy mivel foglalkozunk.