<?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>
