5.1. Wejście TV, linux

[ Pobierz całość w formacie PDF ]
5.1. Wejście TV
5.1. Wejście TV
Poprzedni
Rozdział 5. TV
Następny
5.1. Wejście TV
Sekcja ta opisuje jak
oglądać/nagrywać obraz za pomocą tunera TV kompatybilnego z V4L
. Zajrzyj do
strony man by zobaczyć opis opcji TV i klawiszy sterujących.
5.1.1. Kompilacja
1.
Najpierw musisz przekompilować.
./configure
wykryje automatycznie nagłówki jądra związane z V4L i
obecność urządzeń
/dev/video*
. Jeśli istnieją, obsługa TV zostanie wbudowana (zobacz wynik
działania
./configure
).
2.
Upewnij się, że Twój tuner działa z innymi programami do obsługi TV pod Linuksem, na przykład XawTV.
5.1.2. Wskazówki użytkowania
Kompletna lista opcji dostępna jest na stronie man. Tu jest tylko kilka wskazówek:
Używaj opcji
channels
. Przykład:
-tv channels=26-MTV1,23-TV2
Wyjaśnienie: Jeśli użyjesz tej opcji, dostępne będą tylko kanały 23 i 26 oraz przy zmianie kanału pojawi
się ładny napis na OSD, wyświetlający jego nazwę. Odstępy w nazwie kanału muszą zostać zastąpione
znakiem "_".
Używaj rozsądnych rozmiarów obrazu. Rozmiary obrazu wynikowego powinny być podzielne przez 16.
Jeśli nagrywasz obraz video o pionowej rozdzielczości większej niż połowa rozdzielczości pełnej (np. 288
dla PAL lub 240 dla NTSC), wtedy 'ramki' które otrzymasz będą tak naprawdę parami poprzeplatanych
(interleaved) pól. W zależności od tego, co chcesz zrobić ze strumieniem video, możesz go zostawić w
takiej formie, użyć destrukcyjnego usuwania przeplotu (deinterlacing), albo rozdzielić pary na pojedyncze
pola.
W przeciwnym wypadku dostaniesz film, który jest zniekształcony w trakcie scen o dużej dynamice, a
wskazana szybkość transmisji (bitrate) prawdopodobnie nie będzie nawet mogła być utrzymana przez
kontroler szybkości (bitrate controller), ponieważ artefakty przeplotu tworzą duże ilości szczegółów, a co
za tym idzie, potrzebują dużej przepustowości. Możesz włączyć usuwanie przeplotu za pomocą opcji
-vf pp=TYP_DEINT
. Zwykle
pp=lb
spisuje się dobrze, ale to kwestia gustu. Poczytaj o innych
algorytmach usuwania przeplotu na stronie man i zacznij eksperymentować.
Usuwaj "martwe miejsca". Kiedy nagrywasz video, są pewnie miejsca przy brzegach, które są zazwyczaj
czarne lub zawierają szum. Jak się łatwo domyślić, niepotrzebnie zużywają sporo przepustowości
(dokładniej, to nie same czarne miejsca, lecz ostre przejścia pomiędzy czarnym kolorem i jaśniejszym
obrazem video, ale nie jest to akurat takie ważne). Zanim zaczniesz nagrywać, ustaw argumenty opcji
crop
by wyciąć wszystkie "śmieci" na brzegach. Oczywiście nie zapomnij o utrzymaniu prawidłowych
wymiarów obrazu.
Uważaj na obciążenie CPU. Przez większość czasu Nie powinno ono przekroczyć granicy 90%. Jeśli
masz duży bufor nagrywania, MEncoder może przetrwać przeciążenie przez najwyżej kilka sekund i nic
więcej. Lepiej więc wyłączyć wszystkie trójwymiarowe wygaszacze OpenGL i inne tego typu bajery.
Nie mieszaj z zegarem systemowym. MEncoder korzysta z niego do synchronizacji A/V. Jeśli
zmodyfikujesz zegar systemowy (zwłaszcza wstecz), MEncoder się pogubi i utraci klatki. Jest to bardzo
ważna sprawa jeśli jesteś podpięty do sieci i używasz do synchronizacji czasu różnych programów typu
NTP. Musisz wyłączyć NTP w trakcie nagrywania, jeśli chcesz, by było ono przeprowadzone niezawodnie.
Nie zmieniaj opcji
outfmt
, chyba, że wiesz co robisz lub Twoja karta/sterownik naprawdę nie obsługuje
1 z 2
2010-05-06 18:41
5.1. Wejście TV
ustawienia domyślnego (przestrzeń kolorów YV12). W poprzednich wersjach MPlayera/MEncodera
konieczne było podanie formatu wyjścia. Ten problem powinien być rozwiązany w aktualnych wydaniach i
opcja
outfmt
nie jest już wymagana, a ustawienie domyślne powinno pasować każdemu. Na przykład,
jeśli nagrywasz do formatu DivX używając
libavcodec
i podasz opcję
outfmt=RGB24
aby zwiększyć
jakość nagrywanego obrazu, zostanie on i tak później z powrotem przekonwertowany do YV12, więc
jedyne, co osiągniesz, to ogromna strata mocy obliczeniowej.
By użyć przestrzeni kolorów I420 (
outfmt=i420
), musisz dodać opcję
-vc rawi420
z powodu
konfliktu fourcc z kodekiem Intel Indeo.
Jest kilka sposobów na nagrywanie audio. Możesz nagrywać dźwięk za pomocą Twojej karty dźwiękowej
korzystając z zewnętrznego kabla pomiędzy kartą video i wejściem liniowym lub korzystając z
wbudowanego w układ bt878 przetwornika ADC. W tym drugim przypadku musisz załadować sterownik
btaudio
. Przeczytaj plik
linux/Documentation/sound/btaudio
(w drzewie jądra, a nie MPlayera)
by dowiedzieć się jak korzystać z tego sterownika.
Jeśli MEncoder nie może otworzyć urządzenia dźwiękowego, upewnij się, że jest ono rzeczywiście
dostępne. Zdarzają się problemy z serwerami dźwięku typu aRts (KDE) lub ESD (GNOME). Jeśli masz
kartę full-duplex (prawie wszystkie przyzwoite karty dostępne obecnie obsługują tę funkcję) i korzystasz z
KDE, spróbuj zaznaczyć opcję "Działanie w pełni dupleksowe" ("full duplex") w konfiguracji serwera
dźwięku.
5.1.3. Przykłady
Puste wyjście, do AAlib :)
mplayer -tv driver=dummy:width=640:height=480 -vo aa tv://
Wejście ze standardowego V4L:
mplayer -tv driver=v4l:width=640:height=480:outfmt=i420 -vc rawi420 -vo xv tv://
Bardziej skomplikowany przykład. Każe on MEncoderowi nagrać pełen obraz PAL, wykadrować go i usunąć
przeplot korzystając z algorytmu liniowego zlewania (linear blend). Audio jest kompresowane ze stałą szybkością
równą 64kbps, przy użyciu kodeka LAME. To ustawienie jest dobre do nagrywania filmów.
mencoder -tv driver=v4l:width=768:height=576 -oac mp3lame -lameopts cbr:br=64 \
-ovc lavc -lavcopts vcodec=mpeg4:vbitrate=900 \
-vf crop=720:544:24:16,pp=lb -o
wyjscie.avi
tv://
Ten przykład dodatkowo przeskaluje obraz do 384x288 i skompresuje video z szybkością 350kbps w trybie
wysokiej jakości. Opcja
vqmax
uwalnia kwantyzator i pozwala kompresorowi video na osiągnięcie tak niskiej
szybkości nawet kosztem jakości obrazu. Może być to używane do nagrywania długich seriali TV, kiedy jakość
obrazu nie jest tak ważna.
mencoder -tv driver=v4l:width=768:height=576 \
-ovc lavc -lavcopts vcodec=mpeg4:vbitrate=350:vhq:vqmax=31:keyint=300 \
-oac mp3lame -lameopts cbr:br=48 -sws 1 -o
wyjscie.avi
\
-vf crop=720:540:24:18,pp=lb,scale=384:288 tv://
Jest również możliwe podanie mniejszych wymiarów obrazu w opcji
-tv
i pominięcie programowego
skalowania, ale to podejście wykorzystuje maksymalną ilość dostępnych informacji i jest trochę bardziej
odporne na szum. Układy bt878, ze względu na ograniczenia sprzętowe, mogą stosować uśrednianie pikseli
jedynie w kierunku poziomym.
Poprzedni
Początek rozdziału
Następny
Rozdział 5. TV
Spis treści
Rozdział 6. Radio
2 z 2
2010-05-06 18:41
[ Pobierz całość w formacie PDF ]

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • styleman.xlx.pl