Mint a linuxban, kapcsolja be a dv-kamerát egy webkamerába (cikkek - számítógép linux hogyan kell megállítani

Azonban, ahogy néhány fórumon azt mondták, nem találtak olyan eseteket, amikor a kamerát Linuxra csatlakoztatták WEB-kamera formájában az interneten. Ha USB-kamerával csatlakozik, akkor általában USB-eszközként definiálódik, és véget ér. A / dev / videoX eszközök nem hozhatók létre, mert a rendszermag meghajtóknak nincs támogatója a fényképezőgépnek, és nyilvánvalóan soha nem lesz.

De ne hazudj ugyanazon a kamerán tétlenül! Különösen azért, mert a távoli város nagymamája meglepődött, miért állíthat be Skype-ot a kamerával, hogy láthassuk őt és olyan fejlett számítógépes tudósokat, amilyet nem. Sértésnek éreztem magam, és úgy döntöttem, minden áron elindítom ezt a kamerát Linux alatt.

Így kiderült, hogy egyes kézművesek összekapcsolják a DV-kamerákat egy FireWire kábellel, majd a vloopback kernel modul használatával. hozza létre a / dev / video0 eszközt. Ez egy szokásos webkamera eszközfájl, olyan programokkal, mint a Kopete és a Skype. Ennek a folyamatnak a teljes leírása és a szükséges parancsok bárhol nem találtak, ezért kezdett megérteni, vagyis nulláról.

Az első dolog, ami kiderült, hogy a vloopback modul csak a 2.6.x rendszermagok számára létezik, és a 3.2.x-hez való implementálása nem jellegzetes. És van egy Debian Testing Squeezy rendszere a 3.2.0-4-686-péppel. A 3.2.x rendszermag forrásokból történő vloopback gyűjtéséhez azonban nem jelent meg, és a hivatalos verzióban a 3. verziójú kernelek támogatásáról.

A modul telepítéséhez kernel fejlécfájlokat kell telepíteni, amelyeket általában linux-headers * neveznek. Az én esetemben ez egy linux-fejléc-3.2.0-4-os csomag. Telepítettem, majd kicsomagoltam a v4l2loopback archívumot, és a telepítést végeztem:

  1. készítés (felhasználó szerint)
  2. telepítés (rue-ból)

Ennek eredményeképpen a modulot összeállították és telepítették a rendszerbe. Az Autostart modul sehol nincs installall-script írva, először kézzel indítható:

Ha a modul sikeresen elindult, a / dev / video0 fájl létrehozásra kerül a rendszeren. és a modulok listájában (az lsmod paranccsal nézheted meg) láthatod a sorokat:

v4l2loopback 22660 0
videodev 61658 1 v4l2loopback

Feltételezzük, hogy az ügy fele megtörtént.

Ezután ellenőrizni kell, hogy a Linux rendszer elfogadja-e a FireWire adatait. Pomjatuya, hogy mivel a Linux 2.6.x kernelének néhány verziója eltávolította a raw1394 modult. és kicserélte a firewire_ohci + firewire_core modulokkal. amellyel a szoftver fele nem működik, készen állok egy hosszú szedésre. De meglepő módon a szerkesztő program Kino vidáman megmutatta a képet a kamerából. Örültem, és megpróbáltam ellenőrizni, hogy a FireWire stream átvihető-e az mplayer / mencoder-re.

Kezdetben csak ellenőriztem a titkosítást egy fájlra a dvgrab konzolprogramon keresztül:

Ezután ellenőriztem, hogy az mplayer képes-e adatátvitel a fényképezőgépből. A dvgrab program átviheti a FireWire adatokat egy szabványos adatfolyamra. Ehhez tegyen egy "-" jelet a parancs végén. És a program mplayer képes adatokat fogadni a szabványos adatfolyamból. Ehhez a csapat végén egy "-" jelet is fel kell tenned.

Ennek eredményeképpen létrejött a következő parancs:

dvgrab -noavc - | mplayer -noconsolecontrols -

Láthatja a FireWire áramlását és a VLC-n keresztül:

dvgrab -noavc - | vlc -

De a VLC az MPlayerhez képest erőteljes késéssel jeleníti meg a képet.

Most a következőket kell tennie:

Az első három elemet a következő parancs hajtja végre:

dvgrab -noavc - | mencoder -ovc nyers -nosound -vf tfields = 0, detc, scale = 320: 340, formátum = yuy2 -o / dev / video0 -

Röviden fussunk a mencoder lehetőségekkel.

Nem sikerült csatlakozni a videóeszközhöz (/ dev / video0).

A kapcsolódás ellenőrzése.

Azt mondják, hogy ez a hiba azért fordul elő, mert a felhasználó nem szerepel a videocsoportban. Ellenőrizze - a felhasználót a csoportos videón. Akkor mi a baj?

Mint a linuxban, kapcsolja be a dv-kamerát egy webkamerába (cikkek - számítógép linux hogyan kell megállítani

A kép villogott, zöld és kék csíkok voltak, a szín hiányzik. Ó, és régóta megértettem miért. Végül nem értettem, de részben sikerült megoldani a problémát.

Miért a zöldes árnyék? Mert a README programban a teszt azt mondja:

mivel az összes pixelt "0" -ra állítja, zöld lesz.

Mindent köpöm, a forráskód tesztbe kerültem. a globális változó mellett a debug a globális pixel_byte változóval rendelkezik:

statikus int debug = 0;
__u8 pixel_byte = 128;

A kód a memóriatöltést a 0 állandóval találta meg:

memset (puffer, 0, frameize);
memset (check_buffer, 0, frameize);
(i = 0; check_buffer [i] = 0;
>

memset (puffer, pixel_byte, framesize);
memset (check_buffer, pixel_byte, framesize);
(i = 0; check_buffer [i] = pixel_byte;
>

Összevont, indított, és felvette az állandó pixel_byte = 128 értékét. Ő vele a kép szürke árnyalatú, nem zöld. A tesztprogram kiválasztásakor és újraindításakor váratlanul kiderült, hogy a tesztprogram három vagy öt kezdete után minden digitális zaj eltűnik, és a kép tiszta lesz, mindenféle tárgy nélkül:

Mint a linuxban, kapcsolja be a dv-kamerát egy webkamerába (cikkek - számítógép linux hogyan kell megállítani

Megkérdeztem tőle, hogy készítsen egy képernyőképet a képről, amelyet a Skype nyújt az oldalán. És ezt láttam:

Mint a linuxban, kapcsolja be a dv-kamerát egy webkamerába (cikkek - számítógép linux hogyan kell megállítani
A valós méret megtekintése

Egyrészt - undorító függőleges csíkok ismeretlen eredetűek. Másrészről van egy felbontása 720x360 (miért, csodálom? Mencoder kellett volna méretezni a patak 320x160

170). A sor elolvassa a számokat, és láthatja a milliméteres jelölést. Annak biztosítása érdekében, hogy a beszélgetőpartner el tudja képzelni, hogy kihez beszél, ez a "minőség" elég.

Általában véve úgy gondolom, hogy ez a kép sokkal jobb, mint a fogyasztói WEB-kamerák kiadása 700-800 rubelre. Csak fekete-fehér.