decoration Tag "mplayer" decoration

decoration
decoration
16.02 2007
11:39

Framebuffer w Linuksie


Podkreśliłem tutaj specjalnie Linuksa, gdyż nie wiem jak sprawa się ma w innych systemach unix'owych, ale podejrzewam, że też mogą być wyposażone w urządzenia tego typu. W przypadku innych systemów niż Linux poniższa metoda nie zadziała, gdyż wymagana jest tutaj modyfikacja jądra Linuksa.


Do najpopularniejszych zastosowań framebuffer używany jest by zmienić rozdzielczość konsoli systemowej. Dzięki temu użytkownik otrzymuje większą wygodę w poruszaniu się po systemie właśnie poprzez konsolę. Framebuffer wykorzystywany również może być do przeglądania plików graficznych, pdf'ów, czy klipów wideo.

 

 

Wybór sterownika


Aby przygotować system do obsługi framebuffer należy odpowiednio skompilować jądro. Przedstawię tutaj sposób kompilacji jądra ze sterownikiem vesafb-tng.


W pierwszej kolejności należy pobrać patch'a do jądra, który umożliwi obsługę tego steronika. Vesafb-tng jest projektem rozwijanym przez polskiego dewelopera Gentoo Linux - Michała Januszewskiego. Dzięki temu sterownikowi można uzyskać w konsoli rozdzielczości niestandardowe (m.in. dla monitorów panoramicznych), których domyślny sterownik vesafb nie obsługuje.


Plik można pobrać ze strony: http://dev.gentoo.org/~spock/projects/vesafb-tng/ nazwa pliku: vesafb-tng-***.patch. Aby vesafb-tng działała poprawnie należy pobrać patch odpowiedni do wersji skompilowanego w systemie jądra.

 

Przygotowanie jądra


Po pobraniu pliku przechodzimy do miejsca przechowywania źródeł jądra i aktualizujemy je patchem wydając polecenie:

cat scieżka/do/vesafb-tng.patch | patch -p1

Aby w kompilować w jądro sterownik wpisujemy:

make menuconfig

i przechodzimy do Device Drivers > Graphics support. Jeśli nie mamy jeszcze w kompilowanego w jądro obsługi framebuffer zaznaczamy Support for frame buffer devices, a następnie VESA VGA graphics support i wybieramy sterownik vesafb-tng, zmieniając przy okazji rozdzielczość konsoli:

 


po czym wychodzimy i kompilujemy jądro poleceniem make. Skompilowanym jądrem zastępujemy aktualne i uruchamiamy ponownie komputer.


Poniżej przykład z obsługa framebuffer:

 

 

Pliki graficzne


Jednym z programów umożliwiających przeglądanie plików graficznych jest fbi. Znaleźć go można pod adresem: http://linux.bytesex.org/fbida/. Po skompilowaniu programu i wszystkich wymaganych bibliotek będzie można przeglądać grafiki m.in. w formatach jpg, gif, png. Do działania programu wymagana jest obsługa framebuffer, w przeciwnym wypadku nic z tego nie będzie. Poniżej przykładowe zdjęcie wyświetlane w konsoli systemowej.

 

 

 

Pliki wideo


Jeżeli można wyświetlić w konsoli pliki graficzne, to można również wyświetlić pliki wideo. Jednym z programów, który to umożliwia jest znany chyba wszystkim użytkownikom linuksa MPlayer. Aby była możliwość odtwarzania plików wideo w konsoli należy skompilować program z obsługą directfb. Uruchomienie pliku video odbywa sie standardowo: mplayer plik.avi Poniżej przykład jak działa obsługa wideo pod konsolą linuksa:

 


Na koniec dołączam jeszcze kilka stron, gdzie można znaleźć informacjie o obsłudze framebuffer:



19.05 2007
14:42

Linux - instalacja kamery internetowej

Przygotowanie jądra

Zanim zaczniemy odbierać obraz z naszej kamery należy odpowiednio przygotować jądro.
Od wersji 2.6.27 obsługę sterownika Gspca włączono bezpośrednio do jądra, dzięki czemu nie musimy pobierać dodatkowych modułów do kompilacji. Jeżeli jeszcze posiadamy jądro starsze niż wersja 2.6.27 najlepiej je zaktualizować, w przeciwnym wypadku konieczna będzie kompilacja dodatkowego modułu (patrz: starsze jądra).

 

cd /usr/src/linux
make menuconfig

 

Wszystkie konieczne do wprowadzenia modyfikacje znajdziemy w 'Device Drivers -> Multimedia Devices'. W pierwszej kolejności zaznaczamy 'Video For Linux'. Następnie przejdźmy do 'Video capture adapters', gdzie na samym dole znajdziemy 'V4L USB devices'. Następnie w nim zaznaczamy jako moduł 'GSPCA based webcams'.


Kernel

Konfiguracja jądra Linuksa


Teraz musimy wybrać odpowiedni sterownik. W tym celu podłączmy naszą kamerę i w konsoli wyświetlmy podłączone urządzenia USB – lsusb wywołujemy z konta roota. Przykładowy wpis wygląda następująco:

 

Bus 005 Device 003: ID 046d:08aa Logitech, Inc.

 

Ważne dla nas są te liczby koło nazwy urządzenia. Listę obsługiwanego sprzętu przez sterownik Gspca znajdziemy na stronie http://mxhaard.free.fr/spca5xx.html. Najlepiej wyszukać nasze urządzenie na podstawie ID zwróconego przez polecenie lsusb. Nazwę sterownika znajdziemy w kolumnie 'Bridge'.

Wróćmy teraz do konfiguracji jądra. Wchodzimy do 'GSPCA based webcams' i wyszukujemy potrzebny nam sterownik i oznaczamy jako moduł. W gruncie rzeczy możemy zaznaczyć wszystkie, ale czy to nam jest potrzebne?

Kernel - gspca

Gspca - wybór sterownika

 

Następnie kompilujemy jądro, instalujemy moduły, zastępujemy starszą wersje  i restartujemy komputer:

 

make  && make modules_install
cp arch/XXXX/boot/bzImage /boot/vmlinuz

 

Starsze jądra

W przypadku starszych wersji jądra niż 2.6.27 w konfiguracji jądra zaznaczamy tylko 'Video For Linux' – tak jak na pierwszym screenie. Następnie kompilujemy jądro, zastępujemy je i restartujemy komputer.
Po załadowaniu nowego jądra możemy przystąpić do instalacji sterownika Gspca. Sterownik  można pobrać tutaj: http://mxhaard.free.fr/download.html. Jeżeli używamy jądra starszego niż 2.6.11 to pobieramy sterownik o nazwie spca5xx-v4l1. Najprawdopodobniej jednak jądro jest w miarę aktualne, więc wybieramy plik o nazwie gspcav1.
Po rozpakowaniu wydajemy polecenia:

 

make 
make install

 
Ścieżka do plików źródłowych wykorzystywanego jądra powinna zostać automatycznie znaleziona. Jeżeli nie, należy się upewnić, czy jądro znajduje się w folderze /usr/src, oraz czy posiadamy źródła na pewno do bieżącej wersji jądra.

 

Test kamery

Jeżeli podczas kompilacji nie wystąpiły żadne trudności, to powinniśmy już mieć w systemie działające sterowniki dla naszej kamerki w postaci modułów. Do sprawdzenia, czy działa wszystko prawidłowo możemy użyć mplayera skompilowanego z opcja vl1/vl2. Następnie w konsoli wpisujemy:

 

mplayer tv:// -tv driver=v4l:width=640:height=480:device=/dev/video0

 

W efekcie tego polecenia otrzymamy okienko z aktualnym obrazem z naszej kamery internetowej.

Mplayer - test kamery

Obraz z kamery internetowej

 

Problem z obrazem

W niektórych przypadkach – szczególnie w tych serownikach dostarczonych z jądrem mogą się pojawić problemy z kodowaniem obrazu otrzymywanego z kamery.

 

Problem z kamerą gspca

Problem - błędnie wyświetlany obraz

 

Rozwiązać ten problem może kompilacja biblioteki libv4l. W tym celu pobieramy np. wersje libv4l-0.5.9.tar.gz:

 

wget http://people.atrpms.net/~hdegoede/libv4l-0.5.9.tar.gz
tar xvf libv4l-0.5.9.tar.gz
cd libv4l-0.5.9
make
make PREFIX=/usr install

 

Teraz przed uruchomieniem aplikacji używającej kamery internetowej będziemy musieli podać ścieżkę do tej biblioteki:

 

LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so mplayer tv:// -tv driver=v4l:width=640:height=480:device=/dev/video0

 

Jeżeli nie chcemy ciągle dodawać zmiennej LD_PRELOAD, możemy dopisać linijkę np. na koniec pliku /etc/profile

 

export LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so

 

Wykorzystanie kamery

Wykorzystanie kamery internetowej w Linuksie nie jest jeszcze tak powszechne jak wśród użytkowników Windowsa. Głównym problemem jest ciągle mała ilość aplikacji umożliwiających jej wykorzystanie, a w szczególności brak komunikatorów internetowych działających pod kontrolą tego systemu udostępniających taką możliwość. Najpopularniejszym jest Skype od wersji 2.0. Innym jest aMSN (http://amsn-project.net/) działający w sieci MSN.

 

Skype - webcam

Skype pozwala emitować obraz z kamery internetowej

 



Copyleft (C) tom000.info 2004-2010. Some rights reserved.