summaryrefslogtreecommitdiffstats
path: root/DOCS/xml/ru/tvinput.xml
blob: 394a65ee7d2487e3f4fee1eb17894e39041fc9d4 (plain)
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
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
<?xml version="1.0" encoding="utf-8"?>
<!-- synced with r24604 -->
<chapter id="tv">
<title>TV</title>

<sect1 id="tv-input" xreflabel="TV вход">
<title>TV вход</title>

<para>
В этой секции описывается, как включить <emphasis role="bold">просмотр/захват
с V4L-совместимого TV тюнера</emphasis>. См. man страницу, для описания TV опций
и кнопок управления.
</para>

<!-- ********** -->

<sect2 id="tv-compilation">
<title>Компиляция</title>

<procedure>
<step><para>
  Во-первых, Вам нужно перекомпилировать <application>MPlayer</application>,
  <filename>./configure</filename> автоматически обнаружит заголовки ядра,
  относящиеся к v4l, и наличие <filename>/dev/video*</filename> устройств.
  Если они существуют, будет собрана поддержка TV (см. вывод
  <filename>./configure</filename>).
</para></step>
<step><para>
  Убедитесь, что Ваш тюнер работает с другими TV приложениями под Linux,
  например <application>XawTV</application>.
</para></step>
</procedure>
</sect2>

<!-- ********** -->

<sect2 id="tv-tips">
<title>Советы по использованию</title>
<para>
Полный список опций доступен на страницах руководства (man).
Вот всего несколько советов:

<itemizedlist>
<listitem><para>
  Используйте опцию <option>channels</option>. Пример:
  <screen>-tv channels=26-MTV1,23-TV2</screen>
  Объяснение: При использовании такой опции, будут использоваться только каналы 26
  и 23, и, кроме того, будет приятный OSD текст при переключении между каналами,
  отображающий название канала. Пробелы в названиях каналов должны быть заменены
  символом "_".
</para></listitem>
<listitem><para>
  Выберите разумные размеры изображения. Размеры полученного
  изображения должны делиться на 16.
</para></listitem>
<listitem>
  <para>
  Если Вы захватываете видео с вертикальным разрешением выше половины полного
  разрешения (т.е. 288 для PAL или 240 для NTSC), то получаемые вами 'кадры' 
  на самом деле будут чередующимися[interleaved] парами полей. В зависимости от того,
  что вы собираетесь делать с видео, можно оставить их в таком виде,
  произвести разрушающую (с возможной потерей качества) построчную развёртку,
  либо разделить пары обратно в отдельные поля.
  </para>

  <para>
  Иначе Вы получите фильм с сильными искажениями в
  сценах с быстрыми движениями, и управление битпотоком, скорее всего, будет даже не
  в состоянии поддерживать необходимый уровень битпотока, поскольку артефакты
  чересстрочной развёртки создают огромное количество мелких деталей и поэтому
  отнимают большую часть полосы пропускания. Вы можете включить преобразование в 
  построчную развёртку,
  используя <option>-vf pp=DEINT_TYPE</option>. Обычно <option>pp=lb</option>
  работает хорошо, но это уже субъективное мнение. Другие алгоритмы
  преобразования в построчную развёртку см. на man-странице и попробуйте их.
  </para>
</listitem>
<listitem><para>
  Обрежьте пустое пространство. Когда вы захватываете видео, зоны по краям, как правило,
  черны или содержат просто шум. Это опять съедает часть битпотока.
  Точнее, это не сами чёрные зоны, а контрастный переход от чёрного к более
  светлому видео, но это сейчас не важно. Прежде чем Вы начнёте захватывать,
  подстройте аргументы опции <option>crop</option>, чтобы обрезать весь мусор по
  краям. Ещё раз, не забудьте сохранить получившиеся размеры изображения
  разумными.
</para></listitem>
<listitem><para>
  Отслеживайте загрузку CPU. Она не должна пересекать 90% границу большую часть
  времени. Если у Вас большой размер буфера захвата,
  <application>MEncoder</application> переживёт
  перегрузку в течение нескольких секунд, но не более того. Лучше отключить 3D
  OpenGL, хранители экрана и другую подобную гадость.
</para></listitem>
<listitem><para>
  Не меняйте системные часы. <application>MEncoder</application> использует
  системные часы для A/V синхронизации. Если Вы переведёте системные часы
  (особенно назад), <application>MEncoder</application> запутается,
  и Вы начнёте терять кадры. Это особенно
  важный вопрос, если Вы подключены к сети и используете какие-нибудь программы
  синхронизации времени, в духе NTP. Вы должны отключить NTP во время захвата,
  если Вы действительно хотите сделать хорошую запись.
</para></listitem>
<listitem><para>
  Изменяйте значение <option>outfmt</option> только если Вы знаете, что Вы
  делаете, или Ваши карта/драйвер не поддерживают значение по умолчанию 
  (пространство цветов YV12). В старых версиях <application>MPlayer</application>/
  <application>MEncoder</application> было необходимо выставлять нужное значение
  формата вывода.
  Эта проблема должна быть решена в текущих версиях и опция <option>outfmt</option>
  больше не требуется, поскольку значение по умолчанию подходит в
  большинстве случаев. Например если Вы будете захватывать в DivX, используя
  <systemitem class="library">libavcodec</systemitem> и укажете
  <option>outfmt=RGB24</option> для улучшения качества
  полученного изображения, то Вы увидите, что в действительности, изображение все
  равно будет перекодировано в YV12, поэтому все что Вы получите, это огромная
  загрузка CPU.
</para></listitem>
<listitem><para>
  Чтобы использовать пространство цветов I420 (<option>outfmt=i420</option>), Вы
  должны указать опцию <option>-vc rawi420</option> в связи с конфликтом fourcc с
  видео кодеком Intel Indeo.
</para></listitem>
<listitem><para>
  Есть несколько путей захвата аудио. Вы можете получить звук, либо используя Вашу
  звуковую карту и внешний кабель, соединяющий видео карту и линейный вход[line-in],
  либо используя встроенный АЦП на чипе bt878. В этом случае, Вы должны
  загрузить драйвер <emphasis role="bold">btaudio</emphasis>. Читайте файл
  <filename>linux/Documentation/sound/btaudio</filename> (в дереве ядра, не
  <application>MPlayer</application>'а) с некоторыми инструкциями по 
  использованию этого драйвера.
</para></listitem>
<listitem><para>
  Если <application>MEncoder</application> не может открыть аудио устройство,
  убедитесь, что оно действительно доступно. Возможны некоторые трудности со
  звуковыми серверами, например arts (KDE) и esd (GNOME). Если у Вас
  полнодуплексная звуковая карта (почти все современные карты это поддерживают),
  и Вы используете KDE, попробуйте отметить галочку "full duplex" в меню настроек
  звукового сервера.
</para></listitem>
</itemizedlist>
</para>
</sect2>

<!-- ********** -->

<sect2 id="tv-examples">
<title>Примеры</title>

<informalexample><para>
Фиктивный вывод, AAlib :)
<screen>mplayer -tv driver=dummy:width=640:height=480 -vo aatv://</screen>
</para></informalexample>

<informalexample><para>
Ввод со стандартного V4L:
<screen>
mplayer -tv driver=v4l:width=640:height=480:outfmt=i420 -vc rawi420 -vo xv tv://
</screen>
</para></informalexample>

<informalexample><para>
Более изощрённый пример. Это заставляет <application>MEncoder</application> захватывать 
полное PAL изображение, обрезать края и изменить развёртку картинки на построчную, 
используя алгоритм линейного смешивания. Аудио сжимается до постоянного
битпотока 64 кБ/с, используя LAME кодек. Эти установки подходят для захвата фильмов.
<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>output.avi</replaceable> tv://
</screen>
</para></informalexample>

<informalexample><para>
Здесь, изображение будет дополнительно масштабировано до 384x288 и сжато с
битпотоком 350 кБ/с в режиме высокого качества. Опция vqmax даёт волю
квантайзеру и позволяет компрессору видео действительно достичь столь
низкого битпотока, правда ценой качества. Это может быть полезно для захвата
длинных TV серий, где качество не особенно важно.
<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>output.avi</replaceable> \
    -vf crop=720:540:24:18,pp=lb,scale=384:288 tv://
</screen>
Также возможно указать меньшие размеры изображения в опции <option>-tv</option>
и пропустить программное масштабирование, но приведённый подход использует
максимальное доступное количество информации и чуть более устойчив к шуму.
Чипы bt8x8 из-за аппаратных ограничений могут усреднять пиксели только по
горизонтали.
</para></informalexample>
</sect2>
</sect1>


<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->


<sect1 id="tv-teletext">
<title>Телетекст</title>

<para>
На данный момент телетекст доступен только в MPlayer для v4l и v4l2 драйверов.
</para>

<sect2 id="tv-teletext-implementation-notes">
<title>Замечания реализации</title>

<para>
<application>MPlayer</application> поддерживает обычный текст, псевдографику и
навигационные ссылки.
К сожалению, цветные страницы поддерживаются пока не полностью - все страницы
отображаются оттенками серого.
Страницы с субтитрами (еще известные как Closed Captions) тоже поддерживаются.
</para>

<para>
<application>MPlayer</application> начинает кешировать все страницы телетекста
с момента начала просмотра TV, так что вам не потребуется ожидать загрузки
интересующий страницы.
</para>

<para>
Замечание: Использование телетекста с <option>-vo xv</option> приводит к появлению странных цветов.
</para>
</sect2>

<sect2 id="tv-teletext-usage">
<title>Использование телетекста</title>

<para>
Чтобы включить декодирование телетекста, вы должны указать VBI устройство, из которого
следует читать данные (обычно <filename>/dev/vbi0</filename> в Linux).
Это можно сделать, указав <option>tdevice</option> в вашем файле конфигурации:
<screen>tv=tdevice=/dev/vbi0</screen>
</para>

<para>
Вам может потребоваться указать код языка телетекста для вашей страны.
Чтобы получить список всех доступных языковых кодов, используйте
<screen>tv=tdevice=/dev/vbi0:tlang=<replaceable>-1</replaceable></screen>
Вот пример для Русского:
<screen>tv=tdevice=/dev/vbi0:tlang=<replaceable>33</replaceable></screen>
</para>

<para>
</para>
</sect2>

<sect2 id="tv-teletext-hotkeys">
<title>Горячие клавиши телетекста</title>

<informaltable frame="all">
<tgroup cols="2">
<thead>
<row>
  <entry>Клавиша</entry>
  <entry>Описание</entry>
</row>
</thead>
<tbody>
<row>
  <entry>X</entry>
  <entry>Включает/выключает отображение телетекста</entry>
</row>
<row>
  <entry>C</entry>
  <entry>Циклически переключает режими отрисовки (непрозрачный, прозрачный, инфертированный непрозрачный,
  инвертированный прозрачный</entry>
</row>
<row>
  <entry>Left/Right</entry>
  <entry>Переходит к предыдущей/следующей странице телетекста</entry>
</row>
<row>
  <entry>PageUp/PageDown</entry>
  <entry>Перходит к следующей/предыдущей дополнительной странице телетекста</entry>
</row>
<row>
  <entry>Цифры</entry>
  <entry>Вводят номер страницы для перехода к ней</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</sect2>
</sect1>
</chapter>