1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
|
<?xml version="1.0" encoding="utf-8"?>
<!-- synced with r23536 -->
<!-- Opiekun: Cobra -->
<chapter id="tv">
<title>TV</title>
<sect1 id="tv-input" xreflabel="TV input">
<title>Wejście TV</title>
<para>
Sekcja ta opisuje jak <emphasis role="bold">oglądać/nagrywać obraz
za pomocą tunera TV kompatybilnego z V4L</emphasis>. Zajrzyj do strony man
by zobaczyć opis opcji TV i klawiszy sterujących.
</para>
<!-- ********** -->
<sect2 id="tv-compilation">
<title>Kompilacja</title>
<procedure>
<step><para>
Najpierw musisz przekompilować. <filename>./configure</filename> wykryje
automatycznie nagłówki jądra związane z V4L i obecność urządzeń
<filename>/dev/video*</filename>. Jeśli istnieją, obsługa TV zostanie
wbudowana (zobacz wynik działania <filename>./configure</filename>).
</para></step>
<step><para>
Upewnij się, że Twój tuner działa z innymi programami do obsługi TV pod
Linuksem, na przykład <application>XawTV</application>.
</para></step>
</procedure>
</sect2>
<!-- ********** -->
<sect2 id="tv-tips">
<title>Wskazówki użytkowania</title>
<para>
Kompletna lista opcji dostępna jest na stronie man.
Tu jest tylko kilka wskazówek:
<itemizedlist>
<listitem><para>
Używaj opcji <option>channels</option>. Przykład:
<screen>-tv channels=26-MTV1,23-TV2</screen>
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 "_".
</para></listitem>
<listitem><para>
Używaj rozsądnych rozmiarów obrazu. Rozmiary obrazu wynikowego powinny
być podzielne przez 16.
</para></listitem>
<listitem>
<para>
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.
</para>
<para>
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 <option>-vf pp=TYP_DEINT</option>.
Zwykle <option>pp=lb</option> spisuje się dobrze, ale to kwestia gustu.
Poczytaj o innych algorytmach usuwania przeplotu na stronie man i zacznij
eksperymentować.
</para>
</listitem>
<listitem><para>
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 <option>crop</option>
by wyciąć wszystkie "śmieci" na brzegach.
Oczywiście nie zapomnij o utrzymaniu prawidłowych wymiarów obrazu.
</para></listitem>
<listitem><para>
Uważaj na obciążenie CPU. Przez większość czasu Nie powinno ono przekroczyć
granicy 90%.
Jeśli masz duży bufor nagrywania, <application>MEncoder</application> 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.
</para></listitem>
<listitem><para>
Nie mieszaj z zegarem systemowym. <application>MEncoder</application>
korzysta z niego do synchronizacji A/V. Jeśli zmodyfikujesz zegar systemowy
(zwłaszcza wstecz), <application>MEncoder</application> 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.
</para></listitem>
<listitem><para>
Nie zmieniaj opcji <option>outfmt</option>, chyba, że wiesz co robisz lub
Twoja karta/sterownik naprawdę nie obsługuje ustawienia domyślnego
(przestrzeń kolorów YV12). W poprzednich wersjach
<application>MPlayera</application>/<application>MEncodera</application>
konieczne było podanie formatu wyjścia.
Ten problem powinien być rozwiązany w aktualnych wydaniach i opcja
<option>outfmt</option> nie jest już wymagana, a ustawienie domyślne powinno
pasować każdemu. Na przykład, jeśli nagrywasz do formatu DivX używając
<systemitem class="library">libavcodec</systemitem> i podasz opcję
<option>outfmt=RGB24</option> 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.
</para></listitem>
<listitem><para>
By użyć przestrzeni kolorów I420 (<option>outfmt=i420</option>), musisz dodać
opcję <option>-vc rawi420</option> z powodu konfliktu fourcc z kodekiem Intel
Indeo.
</para></listitem>
<listitem><para>
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
<emphasis role="bold">btaudio</emphasis>. Przeczytaj plik
<filename>linux/Documentation/sound/btaudio</filename> (w drzewie jądra,
a nie <application>MPlayera</application>) by dowiedzieć się jak korzystać
z tego sterownika.
</para></listitem>
<listitem><para>
Jeśli <application>MEncoder</application> 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.
</para></listitem>
</itemizedlist>
</para>
</sect2>
<!-- ********** -->
<sect2 id="tv-examples">
<title>Przykłady</title>
<informalexample><para>
Puste wyjście, do AAlib :)
<screen>
mplayer -tv driver=dummy:width=640:height=480 -vo aa tv://
</screen>
</para></informalexample>
<informalexample><para>
Wejście ze standardowego V4L:
<screen>
mplayer -tv driver=v4l:width=640:height=480:outfmt=i420 -vc rawi420 -vo xv tv://
</screen>
</para></informalexample>
<informalexample><para>
Bardziej skomplikowany przykład. Każe on <application>MEncoderowi</application>
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.
<screen>
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 <replaceable>wyjscie.avi</replaceable> tv://
</screen>
</para></informalexample>
<informalexample><para>
Ten przykład dodatkowo przeskaluje obraz do 384x288 i skompresuje video
z szybkością 350kbps w trybie wysokiej jakości. Opcja <option>vqmax</option>
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.
<screen>
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 <replaceable>wyjscie.avi</replaceable> \
-vf crop=720:540:24:18,pp=lb,scale=384:288 tv://
</screen>
Jest również możliwe podanie mniejszych wymiarów obrazu w opcji
<option>-tv</option> 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.
</para></informalexample>
</sect2>
</sect1>
</chapter>
|