dvd - mplayer - mencoderÚjra egy példa arra, hogy a megoldások további igényeket szülnek.
DVD-t másolni nem szoktam, és különösen nem igénylem halivúdi film-opuszok egy-az-egyben eltulajdonítását. Zenei felvételekkel, koncert-filmekkel, operákkal kapcsolatban viszont már többször felmerült, hogy egy sávot, esetleg csak néhány részletet meg tudjak osztani a kollégákkal. Hasznos lehet, ha konzíliumot tudunk tartani fölötte, de tanításhoz demonstrációs eszközként is nagyon jól jöhet egy-egy jelenet.
Amikor Eugen Jochum egy felvételéről írtam recenziót, többen is szóltak, hogy a Bruckner szimfónia előadását szívesen összevetnék tapasztalataikkal. Egy egész DVD-t lemásolni nem illik, de ebben az esetben nem is praktikus. Valami ok miatt sok DVD, ha kevéssel is, de több tárhelyet igényel, mint 4.3 Gigabájt. A double layer írható DVD nem olcsó, ráadásul ha csak azért kellene, hogy a kiadó más filmjeinek a reklámja is ráférjen...
Ekkor döntöttem úgy, hogy egy kicsit mégiscsak foglalkozom kell a linuxos videózás lehetőségeivel.
Nem használom, de azért ideírom. Körülbelül így kellene egy komplett DVD-t átmásolni:
Mentés fájlba
vobcopy -m
mkisofs -dvd-video -o isofile.iso könyvtár
Aztán maga az írás
growisofs -dvd-compat -Z /dev/dvd=isofile.iso
A bevezetőben említett esetben csak a második sávra volt szükségem. (Az elsőn csak a forgalmazó logója van, és persze a figyelmeztetés! :-)
Ennek a leszedésére azt a 'mencoder' parancsot használhatjuk, amihez az 'mplayer' lefordításával és telepítésével jutottunk. A kétmenetes tömörítésre konkrét példát is találunk a (magyar nyelvű) dokumentációban. A filmet sikerült is ezzel leszedni, de kisérő-hang helyett csak sistergést kaptam. Mivel koncert-videóról van szó, nekem a hang szinte fontosabb a képnél. Szerencsére elég volt a 'copy' helyett pontosan megadni a kimeneti hang-kódolás módját (pcm), és ezután már nem volt semmi gondom.
mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 -oac pcm -o /dev/null
Ez a parancs a videó kimenetet létre sem hozza, (pontosabban a /dev/null névre hallgató fekete lyukba irányítja). A művelet eredménye mindössze egy naplófájl, ami pontos jegyzőkönyvet tartalmaz a divx számára. Ezekután a következő lépésben történő "valódi" beolvasáskor az enkóder már minden egyes képkockáról előre fogja tudni, hogy milyen változásokra kell felkészülnie. Ezzel a kétlépéses módszerrel igen jó képminőséget lehet elérni. (TV-n lejátszva nem nagyon látok különbséget az eredeti és a tömörített változat között.)
mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell:vpass=2 -oac pcm -o kimenet.avi
Erősebb kompresszálásra nem volt szükségem. A koncert teljes anyaga három fájl, így tömörítetlen hangsávval is csak 1,6 Gigabájt helyet foglal. Ezt már könnyen fel tudom írni - pedig az eredeti csak double-layer DVD-re fért volna el.
Egy windows-on szocializálódott felhasználónak esetleg ijesztő, hogy valamit csak ilyen bonyolult módon - parancssorban - lehet megoldani. Valójában lehetne másképp is, de az egyes funkciók tisztázása után a parancssor fantasztikus rugalmasságot biztosít. Meghatározom, hogy honnan jöjjenek az adatok, majd hová menjenek, és a különböző kapcsolókkal leírhatom, hogy a kettő között mi történjék velük. Mi van például, ha a filmet nem DVD-ről akarom rögzíteni?
Semmi! Jöjjenek például a tv-tuner kártyáról!
mencoder tv://1 -tv driver=v4l2:device=/dev/video0:audiorate=44100:alsa -oac lavc -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=600:acodec=mp3:abitrate=128 -o test.avi -vf pp=fd
folytatása következik...(2006.04.10.)
Méghozzá máris!
Természetesen a tv felvételnél nincs mód két menetes kódolásra. A fix 600-as bitráta viszont elég gyatra képet eredményez. Így percenként körülbelül 6 MB lesz a kész anyag, míg 1200 esetén kb 10, de sokkal jobb minőségben. Szóval lehet kalkulálni...
És ha egyáltalán nem tömörítek? Mondjuk egy operafelvételt szeretnék képileg-hangilag maradéktalanul megőrizni.
Az alábbi paranccsal próbálkoztam:
mencoder tv://96 -tv driver=v4l2:device=/dev/video0 -ovc copy -oac pcm -o test2.avi -vf pp=fd -endpos 60
(Az -endpos 60 másodpercnél leállítja a felvételt.) Sajnos a lejátszáskor akad egy-egy dropout. Úgy tűnik a merevlemez nem győzte nyelni a bájtokat. Ezen viszonylag egyszerű segíteni, ugyanez a felvétel SATA merevlemezre írva hibátlan. De az egy perces fájl 670 MB! Egy rövidebb opera lenne mondjuk 50 Giga. Igaz, hogy ezen a fájlon már lehetne "ráérős" optimalizált tömörítést alkalmazni, de még kérdéses, hogy a rengeteg macera megéri-e?
Az 1200-as bitrátával tömörített kép (mp3 hanggal) észrevehetően fakóbb, de ha nem rögtön a tömörítetlen után nézem meg, nem fáj nagyon. És az említett rövidebb opera elfér egyetlen CD-n.
Ugyanez 600-zal már nem jelent akkora megtakarítást, a kép pedig kockákra esik. Fontos felvételt nem szabad ilyen beállítással csinálni - de talán kevésbé fontosat sem.
Nem hagyom abba a kisérletezést...
Itt van rögtön még egy tapasztalat. Egy fájlba-kódolást magára hagytam éjszaka. (Míg Ön alszik, a gép dolgozik.)
A mintegy kétórás film mpeg4-be írva készen várt reggel, viszont a sérült lezárás miatt az mplayer nem volt képes előre-hátra léptetni, keresni a fájlban. Az "index" hiánya lejátszásnál könnyen orvosolható:
mplayer -idx sérült.avi
De ettől a fájl még úgy marad. A végleges megoldás nagyon egyszerű, és pár perc alatt készen is van!
mencoder serult.avi -o javitott.avi -forceidx -ovc copy -oac copy
Ha videót akarsz beszúrni - például blogba - akkor erre is gyakran szükség lehet:
mencoder {eredeti.avi} -of lavf -oac mp3lame -lameopts abr:br=56 -srate 22050 -ovc lavc -lavcopts vcodec=flv:vbitrate=500:mbd=2:mv0:trell:v4mv:cbp:last_pred=3 -o {flashvideo.flv} |