Videodigitalizálás linux alatt vagy mégsem

Linux egyik bájos aspektusa, hogy míg szélesvásznon megy a marketing a mindenen, mindehol, mindenre használhatóságáról, addig a valóságban ez egy rendkívül keskeny ösvényt takar, amiről aztán, ha a user letéved nyakig merül a dágványba.
Folytatva a korábban megkezdett cikksorozatot[url=]szívássorozatot[/url], lássuk miképp lehetséges egy videokazetta tartalmát bevasalni digitális formátumba 2012-ben, Linux alatt.
Első lépés ugye a digitalizáló kártya, ami jelen esetünkben egy veretes 2000-es szériájú Leadtek Winfast kártya. Ez a kártya BT878-as chipre épül, kvázi referencia design (értsd: nincs semmi extra rajta). Anno 2001-ben vettem az elődjét, amit aztán egy többszöri 2.4-es kernel pánik és adatvesztés miatt, hirtelen felindulásból megtapostam és összetörtem (kis naivan azt hittem a kártya a szar). Aztán úgy hozta a sors, hogy egy talicskányi ugyanilyen kártyát kellett mindenféle rendszerekbe tákolnom. Amit jó tudni a kártyáról, hogy alapban két PCI eszközként jelenik meg a buszon, ugyanazon megszakításon és mivel nincs semmilyen komoly buffer mögötte, bizony igen alaposan megrángatja azt.
A kártyák XP alatt tökéletesen mennek, viszont Linux alatt, kernel verziótól függetlenül ordenáré fagyásokat és más vicces jelenségeket produkálnak. Az ok egyszerű és ismert, a kernel képtelen megküzdeni 3-4 konkurens PCI eszköztől jövő azonos megszakításon jövő kérésekkel. A problémában valamilyen szinten a BIOS gyártók keze is sáros, mert a kártyák által generált hibák erősen függenek az alaplapok BIOSától. Azoknál az alaplapoknál, ahol PCI slothoz lehet dedikálni kizárólagosan használt megszakításokat akár 4-5 ugyanilyen kártyával is stabilan működő rendszert összerakni, még régebbi (2.4-es) kernellel is.
Mi van azokkal a userekkel akik nem videodigitalizáló kártyához vesznek alaplapot? Nos nekik marad a szopás.
Egyik megoldás, hogy XPt bootol az ember, majd az Eszközkezelőben addig pöcögteti az eszköz által használt megszakítás, amíg az nem ütközik a másikkal. Ezután, ha nincs automatikus IRQ újrakiosztás engedélyezve a BIOSban, akkor a következő bootnál a kártya működni fog Linux alatt is. Hogy ugyanezt miért nem lehet megcsinálni Linux alatt? Lehet...csak...de...
Tömören összefoglalva, az ami két klikkelés windows alatt, az kernelparaméterezgetés, újraindítgatás, imádkozás és sok-sok kernelpánik. Egy kis olvasgatnivaló a témában: http://www.mjmwired.net/kernel/Documentation/x86/i386/IO-APIC.txt

A történet utoljára ott ér véget, hogy sikerült életre kelteni az Ubuntut. Vasárnapi kiájulás előtt még felment a Kdenlive, ffmpeg és a tvtime. Tvtime és a digitkártya ment, úgyhogy én is lementem sleep modeban.

Másnap este gép újraindít, kamera kártyára drótoz. Tvtime, nincs /dev/video0. Óh, hogy b#&!Ł$ meg! Molyolás, modultöltögetés, újraindítgatások, biospatkolás, kernelparaméterezgetés, stb. Az lspci hol nem látja, hol látja, hol csak az egyik eszközt látja a kettő közül, a bttv nem ismeri fel az eszközt. Elmondtam egy hálaimát Linus szűzanyja irányába, majd kitéptem a kártyát a gépből és elkezdtem átpakolni az asztali gépembe. Itt egyetlen bökkenő csak az volt, hogy az asztali gép egy Atomos MiniITX alaplap az ökoszerver projecthez és ennek megfelelően az egyetlen slotjában egy méretre vágott hálókártya figyelt és ennek megfelelően furatolt a ház is. Tehát a digitkártyáról leugrasztottam az összes kilógó sallangot és a furat pozíciója miatt hátulról feldugtam az RCA csatlakozó a bemenetre és összeforrasztottam a csatlakozóval.
Kártya beszerel, gép beizzít, "Aiiiiie!-PCI parity error!" scrollozik lefelé, aztán eltűnt, a bttv modul szépen betölt, megvan a kártya, /dev/vide0, öröm, boldogság, Xorg, belogint, TVtime... Hát, ilyen merev fagyást 2.4 óta nem láttam.
Reset, reboot, fsck. Ext3 teszi a kötelességét, szét is fosta a rendszerpartíció felét. Szerencsére a ménykű az /usr/share-t és a /var-t érintette elsődlegesen, minek hatására elvesztek a tvtime fontjai, /var/lib/dpkg/available (ne kérdezd miért), és kiscsillió xml file. Rendszer talpraáll, de kissé sántán. Available-oldból csinálok availablet, leszedem a tvtime-ot, újratelepítem. Úrjaindítok, gép megy, nincs parity error, Tvtime megy, és a tunerkártya is. Dmesg üres, nincs benne sikoltozás. WTF? Nem keresem az okát.
Jöhet a digitalizálás! Áh, rövid innuendó gyanánt éjfél előtt egy SCART be adapterból, SCART ki adapeterré történő átreszelés, mert a videómagnón nincs RCA, az egyetlen fellelhető SCART kábelen meg RCA apák vannak.
Sovány a gép, kell a PAL felbontás, próbálkozzunk az ffmpeg-el. Video4linuxra konfigurálva, "I/O error"-t dob. Sebaj, próbálkozzunk video4linux2-re konfigolva, ez meg "Unsupported resolution". FFFUUUUUUU! Duplán nyomom a shellben a felfelét, enter, erre video4linux konfiggal elindul digitalizálás. Igen, a két sor tök egyforma csak a v4l paraméterben tér el. No comment, nem akarom tudni, miért van így.
A digizés jó, hang nincs, kép nincs, pontosabban zöld szmötyi. Át kell váltani a bemenetet, ehhez jó a xawtv mellé adott v4lctl util. Tehát digizés indít a fenti módon, v4lctl-el bemeneti csatorna váltása egy másik terminálban. Digizés jó, hang nincs, kép van. Hurrá.
Kmix, az Intel HDA-nak két capture csatornája van, kapcsolóval választható, hogy melyik bemenetre melyik csatornára legye kötve. Választás után a kmix szépen elfekszik. Ok, ezt régen is így csinlálta. Akkor legyen cipő a cipőboltból, alsamixer. F4-et nyomni nem szabad, mert seg-faultol, F5, jobbra, jobbra, fel, fel, kilépés.
Újabb próba, kép van, hang van de csak monoban. Alvás.

Este van, este van, Hiéna nyugalomban. Legalábbis mert jógázom nehogy belebasszam a baltát a gépbe. Ok, ez félig PEBKACos, de csak azért is. Azzal indult a dolog, hogy a mono hang oka egy forrasztási hiba volt. Ezt orvosoltam, majd a forrasztás után elindítottam a digizést, van némi framdrop de ezt majd megoldja a konfigurálás. Visszajátszásnál kép van, hang nincs, holott digizésnél szólt az anyag a kimeneten. Próbálok csak hangot digizni semmi, visszajátszásnál. Bemeneti csatorna váltogatás semmi. Mixer, minden beállítva, maxra felhúzva, egyedül a front kimenet és a mikrofon némítva. Újabb próbák, semmi. cat /dev/dsp > valami jön befelé az anyag. cat valami >/dev/dsp kuss van. Gyanús. Youtube elindít, szól. Molyolás ffmpeg-el semmi. A terminál és az ffmpeg diszkrét bája, hogy az ember nem tudja monitorozni, a hang csatornán mi jön be valójában. Jó, akkor próbálkozzunk mással.
Kdenlive, ez gyakorlatilag egy ffmpeg GUI interface. Konfigot beállítom, record gomb, "Not connected". Ennyi. Se kép se hang. Ugorjunk.
Cinelerra. Settingsben beállítok mindent, File->Record. A hangbemenet monitorján van jel, de kép nincs, hiába változtatok a tunerkártya beállításain. Csinálok egy hangfelvételt mp3-ba, visszajátszatom, szól. Betöltöm a korábban cat-el létrehozott filet, az is szól. Ilyen nincs...
Megpróbálom a cinelerrával létrehozott filet lejátszani ffplay-el, semmi. Ugyanez mplayerrel. Akkor itt valami hangkártya beállítási gebasz lesz.
Alsamixer, kiveszem az egyetlen némítást (Front) és mit ad isten, szól a felvett anyag. Ugyanazon a kimeneten, ahol a cinelerra és a Youtube is szólt. Akkor hogy is van ez?

Összegezve. Igen, lehet videót digitalizálni, csak épp annyi, de annyi sebből vérzik, hogy az ember legszívesebben felkötné magát egy utp kábelre. Vicc, hogy a két legnagyobb nem lineáris vágóval nem lehet felvenni. Vicc, hogy egy eszköz hol működik, hol nem, annak függvényében, hogy milyen volt az utolsó hozzáférési kísérlet.

Hozzászólások

Lehet megerne lassan venni egy rendes gepet & Windowst :>

Windows alatt nem kell az IRQ-al baszakodni, mert ott megy rendesen. Windows alatt azért kell baszakodni, hogy utána Linux alatt is menjen.
Amúgy a történet arról is szól, hogy nehogy gombhoz kelljen már kabátot venni.
--
"Maradt még 2 kB-om. Teszek bele egy TCP-IP stacket és egy bootlogót. "

Fél éve én is kitaláltam, hogy egy TV tuneres Ubuntus PC-n átveszem a családi VHS-eket, meg valami téma szerint összevagdosom. 1 hétnyi szopás után a vége az lett, hogy kölcsönkértem ismerős kínai VHS-DVD kombóját meg egy borotválkozótükrös Power Mac G4-et, Final Cut Proval kb egy délután kész lettem vele.

Szerencsés lennék?

Nekem működik, egy közel 8 éves gépen. A Pinnacle kártyáról xdtv-vel, mencoderrel tudtam digitalizálni. Most egy ASUS kártyám van, bár nem digitalizáltam még vele, de a TV tökéletesen működik. A hanggal volt gondom, de hamar megtaláltam a megoldást, VLC-vel pedig simán megy. Igaz, hogy nem egy kattintással, nem egy programmal történt a digitalizálás és a szerkesztés (eddig egyetértek), de meg lehet oldani és nem éreztem közben, hogy valami hiányt szenvednék, vagy komplikált lenne az eljárás.

Minden bántó szándék nélkül mondom, válts más OS-re, a bejegyzéseid alapján úgy érzem frusztrálttá tesz a Linux.

Ezek az ext fájlrendszerek valahogy mindig bemutatnak neked. Pedig nem volt még észlelhető adatveszteség nálam, pedig régóta használok ext4-et. Volt már példa szabálytalan leállásra. Pl most is az áramszünetek miatt.

Nekem egyszer 60 egyszer pedig 300 G adatvesztesem volt, mert az ext3 azt gondolta, hogy a "pakoljunk mindent a lost+found ala" az egy teljesen valid helyreallitasi modszer. Szoval igen, tobb sebbol verzik a dolog.
--

Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal 

Valamikor a kilencvenes évek vége felé pont a TV kártyák miatt lett az itthoni oprendszerem véglegesen Linux.
A W98, XP, 2K még TV nézésre is teljesen alkalmatlan volt, úgy dobálták a kékhalált, mint artista a buzogányt, vagy csak szimplán csonttá fagytak. A felvétel gyakorlatilag esélytelen volt. Volt (van) vagy 6 TV kártyám, PCMCIA-USB-PCI, volt amelyikhez olyan szoftvert adtak, ami nem működött XP-n (pedig XP-re írták) de már a telepítésbe is belehalt, de szinte egyik sem működött hiba nélkül. Kipróbáltam szinte minden lehetséges free cuccot, volt amelyiknél az USB hang kakasáldozósan működött, úgy, hogy egy másik gyártó driverét kellett felrakni hozzá. Nem mondom, hogy linuxon is mindig minden ment flottul, de az mplayer-mencoder szinte mindig elég volt, pedig digiztem VHS-ről néha. Tény, hogy el kell vele molyolni.
A W7-W8 ott döbbentett meg, hogy vlc-vel (dshow) már tudnék (ha akarnék) TV-t nézni (ha van driver a kártyához), de a felvételt inkább nem próbáltam, jobb a békesség!

"ALSA is like the emperors new clothes. It never works, but people say it’s because you’re a noob."

--------------------------------------
Unix isn't dead. It just smells funny.

..azért te is kéred az ostort néha :)

Jó pár stream szervert pakoltam össze linux alatt, a lényeg kb. ugyanez, hogy capture kártya, ffmpeg. Kizárólag olyankor volt szívásom, amikor nem volt hw mpeg kártyám, de ott is kb. csak az ffmpeg paraméterezésében szoptam (mert olyankor a hangkártyáról jön a hang, s az mpeg kódolást is kézzel kellett behákolni). Normális kártyával mindig ment a cucc szépen. Valami nálad nem kerek akkor a hw környékén.