Sophie

Sophie

distrib > Mageia > 1 > i586 > by-pkgid > d358e2c90ba2fd90e64d20630dc870f4 > files > 738

mplayer-doc-1.0-1.rc4.0.r32713.5.2.mga1.i586.rpm

<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>4.18. MPEG декодеры</title><link rel="stylesheet" type="text/css" href="default.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1"><link rel="home" href="index.html" title="MPlayer - Медиа Проигрыватель"><link rel="up" href="video.html" title="Глава 4. Устройства вывода видео"><link rel="prev" href="dfbmga.html" title="4.17. DirectFB/Matrox (dfbmga)"><link rel="next" href="other.html" title="4.19. Другое оборудование вывода видео"><link rel="preface" href="howtoread.html" title="Как читать эту документацию"><link rel="chapter" href="intro.html" title="Глава 1. Введение"><link rel="chapter" href="install.html" title="Глава 2. Установка"><link rel="chapter" href="usage.html" title="Глава 3. Использование"><link rel="chapter" href="video.html" title="Глава 4. Устройства вывода видео"><link rel="chapter" href="ports.html" title="Глава 5. Портинг"><link rel="chapter" href="mencoder.html" title="Глава 6. Основы использования MEncoder"><link rel="chapter" href="encoding-guide.html" title="Глава 7. Кодирование с MEncoder"><link rel="chapter" href="faq.html" title="Глава 8. Часто Задаваемые вопросы"><link rel="appendix" href="bugreports.html" title="Приложение A. Как сообщать об ошибках"><link rel="appendix" href="skin.html" title="Приложение B. Формат скинов MPlayer"><link rel="subsection" href="mpeg_decoders.html#dvb" title="4.18.1. DVB ввод и вывод"><link rel="subsection" href="mpeg_decoders.html#dxr2" title="4.18.2. DXR2"><link rel="subsection" href="mpeg_decoders.html#dxr3" title="4.18.3. DXR3/Hollywood+"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">4.18. MPEG декодеры</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="dfbmga.html">Пред.</a> </td><th width="60%" align="center">Глава 4. Устройства вывода видео</th><td width="20%" align="right"> <a accesskey="n" href="other.html">След.</a></td></tr></table><hr></div><div class="sect1" title="4.18. MPEG декодеры"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="mpeg_decoders"></a>4.18. MPEG декодеры</h2></div></div></div><div class="sect2" title="4.18.1. DVB ввод и вывод"><div class="titlepage"><div><div><h3 class="title"><a name="dvb"></a>4.18.1. DVB ввод и вывод</h3></div></div></div><p>
<span class="application">MPlayer</span> поддерживает карты с чипсетом Siemens DVB и
таких производителей, как Siemens, Technotrend, Galaxis или Hauppauge.
Последние DVB драйверы доступны с <a class="ulink" href="http://www.linuxtv.org" target="_top">сайта Linux TV</a>.
Если вы собираетесь делать программное транскодирование, у вас должен быть как минимум 1ГГц CPU.
</p><p>
Скрипт configure должен определить вашу DVB карту. Если нет, принудительно укажите
определение с помошью
</p><pre class="screen">./configure --enable-dvb</pre><p>
Если заголовочные файлы ost находятся не в стандартных каталогах, укажите путь с
</p><pre class="screen">
./configure --extra-cflags=<em class="replaceable"><code>каталог исходников DVB</code></em>/ost/include
</pre><p>
Затем компилируйте и устанавливайте как обычно.
</p><p title="ИСПОЛЬЗОВАНИЕ"><b>ИСПОЛЬЗОВАНИЕ. </b>
Аппаратное декодирование потоков, содержащих MPEG-1/2 видео и/или MPEG аудио, может быть
выполнено следующей командой:
</p><pre class="screen">mplayer -ao mpegpes -vo mpegpes <em class="replaceable"><code>file.mpg|vob</code></em></pre><p title="ИСПОЛЬЗОВАНИЕ">
</p><p>
Декодирование любых других видео потоков требует транскодирования в MPEG-1,
поэтому оно медленно и, возможно, не стоит неприятностей, особенно если ваш
компьютер медленный.
Его можно добиться, используя команду:
</p><pre class="screen">
mplayer -ao mpegpes -vo mpegpes <em class="replaceable"><code>yourfile.ext</code></em>
mplayer -ao mpegpes -vo mpegpes -vf expand <em class="replaceable"><code>yourfile.ext</code></em>
</pre><p>
Имейте в виду, что DVB карты поддерживают высоту изображения только 288 и 576 для PAL и
240 и 480 для NTSC. Для других значений высоты вы <span class="bold"><strong>должны</strong></span>
отмасштабировать изображение, добавив <tt class="option">scale=ширина:высота</tt> к опции
<tt class="option">-vf</tt> с желаемыми значениями ширины и высоты.
DVB карты допускают различные значения ширины: 720, 704, 640, 512, 480, 352 и т.д. и
производят аппаратное масштабирование по горизонтали, так что в большинстве случаев
масштабировать по горизонтали не нужно. Для 512x384 (пропорции 4:3) MPEG-4 (DivX)
попробуйте:
</p><p>Если у вас есть широкоформатный фильм и вы не хотите растягивать его на
полную высоту, используйте плагин <tt class="option">expand=w:h</tt> для добавления черных
полос. Чтобы посмотреть 640x384 MPEG-4 (DivX), попробуйте:
</p><pre class="screen">
mplayer -ao mpegpes -vo mpegpes -vf expand=640:576 <em class="replaceable"><code>file.avi</code></em>
</pre><p>
</p><p>
Если ваш CPU слишком слаб для полноразмерного 720x576 MPEG-4 (DivX), попробуйте уменьшить
размер:
</p><pre class="screen">mplayer -ao mpegpes -vo mpegpes -vf scale=352:576 <em class="replaceable"><code>file.avi</code></em>
</pre><p>
</p><p>Если скорость не увеличилась, попробуйте уменьшить размер по вертикали тоже:
</p><pre class="screen">
mplayer -ao mpegpes -vo mpegpes -vf scale=352:288 <em class="replaceable"><code>file.avi</code></em>
</pre><p>
</p><p>
Для OSD и субтитров используйте возможности OSD плагина expand. Так, вместо
<tt class="option">expand=w:h</tt> или <tt class="option">expand=w:h:x:y</tt>, используйте
<tt class="option">expand=w:h:x:y:1</tt> (5-й параметр <tt class="option">:1</tt> в конце для
включения OSD рендеринга). Вы можете слегка подвинуть изображение вверх, чтобы получить
большую черную область для субтитров. Вы также можете переместить субтитры вверх, если
они выходят за пределы TV экрана, используйте для этого <tt class="option">-subpos &lt;0-100&gt;</tt>
(<tt class="option">-subpos 80</tt> - хороший выбор).
</p><p>
Чтобы воспроизвести не-25fps фильмы на PAL TV или на машине со слабым CPU, добавьте опцию

<tt class="option">-framedrop</tt>.
</p><p>
Для сохранения пропорций MPEG-4 (DivX) файлов и получения оптимальных параметров
масштабирования (аппаратное горизонтальное и программное вертикальное масштабирование с
сохранением пропорций), используйте плагин dvbscale:
</p><pre class="screen">
for a  4:3 TV: -vf dvbscale,scale=-1:0,expand=-1:576:-1:-1:1
for a 16:9 TV: -vf dvbscale=1024,scale=-1:0,expand=-1:576:-1:-1:1
</pre><p>
</p><p title="Цифровое TV (DVB драйвер ввода )"><b>Цифровое TV (DVB драйвер ввода ). </b>Вы можете использовать DVB карту для просмотра Цифрового TV.</p><p>
Вы должны иметь установленные программы <span class="command"><strong>scan</strong></span> и
<span class="command"><strong>szap/tzap/czap/azap</strong></span>; все они входят в пакет драйверов.
</p><p>
Проверьте, что ваши драйверы правильно работают с такими программами, как
<a class="ulink" href="http://sf.net/projects/dvbtools/" target="_top"><span class="command"><strong>dvbstream</strong></span></a>
(это основа DVB драйвера ввода).
</p><p>
Теперь вам следует создать файл <tt class="filename">~/.mplayer/channels.conf</tt>,
с понятным <span class="command"><strong>szap/tzap/czap/azap</strong></span> синтаксисом, или
позволить <span class="command"><strong>scan</strong></span> сделать это для вас.
</p><p>
Если у вас несколько разнотипных карт (например, для спутникового TV, наземного ,
кабельного и ATSC), можете сохранить файлы как
<tt class="filename">~/.mplayer/channels.conf.sat</tt>,
<tt class="filename">~/.mplayer/channels.conf.ter</tt>,
<tt class="filename">~/.mplayer/channels.conf.cbl</tt>,
и <tt class="filename">~/.mplayer/channels.conf.atsc</tt>,
соответственно, с тем, чтобы можно было явно указать <span class="application">MPlayer</span>
какой файл использовать вместо стандартного <tt class="filename">~/.mplayer/channels.conf</tt>,
и какую карту с ним использовать.
</p><p>
Убедитесь, что в <tt class="filename">channels.conf</tt> находятся каналы
!-- FIXME Free to Air --&gt;
<span class="emphasis"><em>только</em></span> для обычного телевидения[Free to Air], иначе
<span class="application">MPlayer</span> будет ожидать передачи незашифрованных данных.
</p><p>
В полях аудио и видео вы можете использовать расширенный синтаксис:
<tt class="option">...:pid[+pid]:...</tt> (в каждом максимум  6 pid'ов);
в этом случае <span class="application">MPlayer</span> включит в поток все указанные
pid плюс pid 0 (содержащий PAT). В каждую строку всегда следует включать
PMT и PCR pid'ы для соответствующего канала (если вы их знаете).
Также можно указать 8192, при этом будут выбраны все pid на этой частоте, и Вы сможете
потом переключаться между программами при помощи TAB.
Это может потребовать большей пропускной способности, однако дешевые карты
всегда пересылают все каналы как минимум до ядра, так что в этом случае разница
будет небольшой.
Другие возможные применения: телетекст pid, второая аудио дорожка, и т.д.
</p><p>
Если <span class="application">MPlayer</span> часто жалуется на
</p><pre class="screen">Too many video/audio packets in the buffer</pre><p> или
если вы заметили растущую рассинхронизацию между звуком и видео
проверьте наличие PCR pid'а в вашем потоке (требующегося для
соблюдения модели буферизации передатчика) и/или
попробуйте воспользоваться libavformat MPEG-TS декодером, добавив
<tt class="option">-demuxer lavf -lavfdopts probesize=128</tt> в
командную строку.
</p><p>
Для показа первого из доступных каналов, запустите
</p><pre class="screen">mplayer dvb://</pre><p>
</p><p>
Если вы хотите посмотреть определенный канал, например R1, запустите
</p><pre class="screen">mplayer dvb://R1</pre><p>
</p><p>
Если у вас больше одной карты, также надо указать номер той, с которой доступен канал:
</p><pre class="screen">mplayer dvb://2@R1</pre><p>
</p><p>
Для смены канала, нажимайте клавиши <span class="keycap"><b>h</b></span> (следующий) и
<span class="keycap"><b>k</b></span> (предыдущий), или используйте
<a class="link" href="fonts-osd.html#osdmenu" title="2.4.3. OSD меню">OSD меню</a>.
</p><p>
Для временного отключения аудио или видео потока скопируйте
следующие строки в <tt class="filename">~/.mplayer/input.conf</tt>:
</p><pre class="screen">
% set_property  switch_video -2
&amp; step_property switch_video
? set_property  switch_audio -2
^ step_property switch_audio
</pre><p>
(Заменяя горячие клавиши по своему усмотрению.) При нажатии на клавишу,
соответствующую switch_x -2, поток будет закрыт;
при нажатии на клавишу, соответствующую step_x, поток будет открыт снова.
Имейте в виду, что этот механизм переключения не будет работать как следует,
когда в мультиплексоре присутствует несколько аудио или видео потоков.
</p><p>
Во время воспроизведения (не во время записи) для предотвращения заикания
и таких ошибок, как 'Your system is too slow', имеет смысл добавить
</p><pre class="screen">
-mc 10 -speed 0.97 -af scaletempo
</pre><p>
к опциям командной строки, исправив параметры scaletempo по своему усмотрению.
</p><p>
Если ваш <tt class="filename">~/.mplayer/menu.conf</tt> содержит запись
<code class="literal">&lt;dvbsel&gt;</code>, как в файле с примерами
<tt class="filename">etc/dvb-menu.conf</tt> (можете использовать его чтобы
перезаписать <tt class="filename">~/.mplayer/menu.conf</tt>), главное меню
будет отображать подменю, позволяющее вам выбрать один из присутствующих
в <tt class="filename">channels.conf</tt> каналов, возможно, с предшествующим
ему подменю с DVB выбором карт, доступных <span class="application">MPlayer</span>.
</p><p>
Если хотите записать какую-то программу на диск, используйте
</p><pre class="screen">mplayer -dumpfile r1.ts -dumpstream dvb://R1</pre><p>
</p><p>
Если хотите вместо этого записать ее в другом формате (перекодировать), следует
использовать такую команду:
</p><pre class="screen">
mencoder -o <em class="replaceable"><code>r1.avi</code></em> -ovc xvid -xvidencopts bitrate=800 \
    -oac mp3lame -lameopts cbr:br=128 -pp=ci dvb://R1
</pre><p>
</p><p>
Полный список опций для DVB драйвера ввода можно найти на странице руководства man.
</p><p title="БУДУЩЕЕ"><b>БУДУЩЕЕ. </b>
Если у вас есть вопросы, или вы хотите получать сообщения о новых возможностях и
принять участие в дискуссиях на эту тему, подпишитесь на список рассылки
<a class="ulink" href="http://lists.mplayerhq.hu/mailman/listinfo/mplayer-dvb" target="_top">MPlayer-DVB</a>.
Помните, что язык рассылки - Английский.
</p><p>
В будущем вы можете рассчитывать на возможность отображения OSD и субтитров,
используя встроенные OSD возможности DVB карт.
</p></div><div class="sect2" title="4.18.2. DXR2"><div class="titlepage"><div><div><h3 class="title"><a name="dxr2"></a>4.18.2. DXR2</h3></div></div></div><p>
<span class="application">MPlayer</span> поддерживает аппаратное ускорение воспроизведения
с картами Creative DXR2.
</p><p>
Прежде всего вам потребуется правильно установленные DXR2 драйверы. Их и руководство по
установке можно найти на сайте <a class="ulink" href="http://dxr2.sf.net/" target="_top">Ресурсного Центра DXR2</a>.
</p><div class="variablelist" title="ИСПОЛЬЗОВАНИЕ"><p class="title"><b>ИСПОЛЬЗОВАНИЕ</b></p><dl><dt><span class="term"><tt class="option">-vo dxr2</tt></span></dt><dd><p>Включить TV выход.</p></dd><dt><span class="term"><tt class="option">-vo dxr2:x11</tt> or <tt class="option">-vo dxr2:xv</tt></span></dt><dd><p>Включить вывод через оверлей в X11.</p></dd><dt><span class="term"><tt class="option">-dxr2 &lt;option1:option2:...&gt;</tt></span></dt><dd><p>Эта опция используется для управления драйвером DXR2.</p></dd></dl></div><p>
Чипсет оверлея, использовавшийся на DXR2 довольно плохого качества, но
с настройками по-умолчанию будет работать у всех. OSD может работать
с оверлеем (не на TV), отрисовывая себя в ключевом цвете[colorkey].
С настройками ключевого цвета[colorkey] по-умолчанию, вы можете получить
разные результаты, скорее всего увидите ключевой цвет[colorkey] вокруг
символов или другие забавные эффекты. Но при правильных настройках,
можно получить вполне приемлемый результат.
</p><p>Смотрите страницу man руководства для списка доступных опций.</p></div><div class="sect2" title="4.18.3. DXR3/Hollywood+"><div class="titlepage"><div><div><h3 class="title"><a name="dxr3"></a>4.18.3. DXR3/Hollywood+</h3></div></div></div><p>
<span class="application">MPlayer</span> поддерживает аппаратно ускоренное воспроизведение
картами Creative DXR3 и Sigma Designs Hollywood Plus. Обе эти карты используют
MPEG декодер на чипе em8300 от Sigma Designs
</p><p>
Прежде всего вам потребуются правильно установленные драйвера DXR3/H+, версии
0.12.0 или выше. Драйверы и инструкции по установке могут быть найдены на
сайте <a class="ulink" href="http://dxr3.sf.net/" target="_top">DXR3 &amp; Hollywood Plus для Linux</a>
<tt class="filename">configure</tt> должен автоматически определить вашу карту,
компиляция должна пройти без проблем.
</p><div class="variablelist" title="ИСПОЛЬЗОВАНИЕ"><p class="title"><b>ИСПОЛЬЗОВАНИЕ</b></p><dl><dt><span class="term"><tt class="option">-vo dxr3:prebuf:sync:norm=x:<em class="replaceable"><code>device</code></em></tt></span></dt><dd><p>
Опция <tt class="option">overlay</tt> активирует оверлей вместо TV-out. Для корректной работы
она требует его правильной настройки. Самый простой способ правильно его
настроить - сначала запустить autocal, затем запустить mplayer с драйвером
dxr3 и выключенным оверлеем, потом запустить dxr3view. В dxr3view вы можете
менять настройки оверлея и видеть результат в реальном времени, может быть,
в будущем эта возможность будет поддерживаться в <span class="application">MPlayer</span>
GUI. После того как оверлей правильно настроен, надобность в dxr3view отпадает.
Опция <tt class="option">prebuf</tt> включает пребуферинг. Пребуферинг - это возможность
чипа em8300, позволяющая ему хранить более одного кадра видео в каждый момент времени.
Это значит, что при включенном пребуферинге <span class="application">MPlayer</span>
будет пытаться всегда держать буфер заполненным данными. Если у вас медленная машина,
то <span class="application">MPlayer</span> будет забирать практически 100% CPU.
Это особенно часто случается, если вы воспроизводите чистые MPEG потоки
(DVD, SVCD и т.д.), т.к., поскольку <span class="application">MPlayer</span> не должен
перекодировать их в MPEG, то он заполняет буфер очень быстро.
С пребуферингом воспроизведение видео <span class="bold"><strong>значительно</strong></span>
меньше зависит от остальных программ, прибирающих к рукам CPU, он не будет
терять кадры, кроме случая, когда приложения захватит CPU на довольно длительное
время. При запуске без пребуферинга, em8300 намного более чувствителен к
загрузке CPU, так что настоятельно рекомендуется включить <tt class="option">-framedrop</tt>
опцию <span class="application">MPlayer</span> для избежания потери синхронизации.
<tt class="option">sync</tt> включит алгоритм синхронизации. Пока что это еще
экспериментальная возможность. С включенной sync возможностью будут постоянно
проверяться встроенные часы em8300, и если начинается отклонение от
часов <span class="application">MPlayer</span> чип будет сброшен, что приведет к
пропуску всех запаздывающих кадров.
</p><p>
<tt class="option">norm=x</tt> установит TV стандарт DXR3 карты без необходимости
использования внешних утилит вроде em8300setup. Допустимые стандарты: 5 = NTSC, 4 = PAL-60,
3 = PAL. Специальные стандарты 2 (автонастройка, используя  PAL/PAL-60) и 1 (автонастройка
используя PAL/NTSC) решают какой стандарт использовать на основе частоты кадров.
because they decide which norm to use by looking at the frame
rate of the movie. norm = 0 (по-умолчанию) не изменяет текущий стандарт.
</p><p>
<tt class="option"><em class="replaceable"><code>device</code></em></tt> = номер устройства, если их у вас несколько
em8300 карт.
Любые из этих опций могут быть опущены.
</p><p>
<tt class="option">:prebuf:sync</tt>, похоже, отлично работает при воспроизведении фильмов MPEG-4 (DivX).
Пользователи сообщали о проблемах при использования prebuf опции при воспроизведении
файлов MPEG-1/2. Вы можете попробовать запустить программу сначала вообще без указания опций,
если же имеете проблемы с синхронизацией или с DVD субтитрами, попытайтесь с <tt class="option">:sync</tt>.
</p></dd><dt><span class="term"><tt class="option">-ao oss:/dev/em8300_ma-<em class="replaceable"><code>X</code></em></tt></span></dt><dd><p>
  Для вывода звука, где <em class="replaceable"><code>X</code></em> - номер устройства (0, если карта одна).
  </p></dd><dt><span class="term"><tt class="option">-af resample=<em class="replaceable"><code>xxxxx</code></em></tt></span></dt><dd><p>
  em8300 не может воспроизводить частоты дискретизации ниже 44100Hz. Если частота
  ниже 44100Hz, выберите либо 44100Hz, либо 48000Hz в зависимости от
  того, какая частота ближайшая. Т.е. если фильм использует 22050Hz укажите 44100Hz, т.к.
  44100 / 2 = 22050, если 24000Hz, используйте 48000Hz, т.к. 48000 / 2 = 24000 и т.д.
  Это не работает с цифровым выводом звука (<tt class="option">-ac hwac3</tt>).
  </p></dd><dt><span class="term"><tt class="option">-vf lavc</tt></span></dt><dd><p>
  Для просмотра не-MPEG контента на em8300 (напрмер MPEG-4 (DivX) или RealVideo)
  вы должны указать MPEG-1 видеоплагин, такой как
  <code class="systemitem">libavcodec</code> (lavc).
  Дополнительную информацию о <tt class="option">-vf lavc</tt> смотрите на странице
  руководства man. На данный момент неизвестно способа установить
  значение fps для em8300, что означает фиксированную величину, равную 30000/1001 fps,
  поэтому крайне рекомендуется использовать
  <tt class="option">-vf lavc=<em class="replaceable"><code>quality</code></em>:25</tt>, особенно, если
  используете пребуферинг. Почему 25, а не 30000/1001? Ну, причина в том, что при
  использовании 30000/1001 изображение начинает слегка дрожать. Причина нам неизвестна.
  Если вы ставите это значение где-то между 25 и 27 картинка стабилизируется.
  Пока что мы можем только принять это как факт
  </p></dd><dt><span class="term"><tt class="option">-vf expand=-1:-1:-1:-1:1</tt></span></dt><dd><p>
  Хотя драйвер DXR3 может помещать некоторый OSD в  MPEG-1/2/4 видео, он
  имеет намного более плохое качество, чем традиционный OSD
  <span class="application">MPlayer</span>, и имеет несколько проблем при обновлении к
  тому же. Команда, указанная выше, сначала отконвертирует входное видео в
  MPEG-4 (это обязательно, извините), затем применит плагин expand, который не будет
  ничего расширять (-1: по-умоляанию), но наложит нормальное OSD на картинку
  (это все, что делает "1" в конце строки).
  </p></dd><dt><span class="term"><tt class="option">-ac hwac3</tt></span></dt><dd><p>
  em8300 поддерживает воспроизведение звука AC-3 (окружающий звук) через
  цифровой аудио выход карты.Смотрите опцию <tt class="option">-ao oss</tt> выше,
  она должна использоваться для указания вывода через DXR3 вместо звуковой карты.
  </p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="dfbmga.html">Пред.</a> </td><td width="20%" align="center"><a accesskey="u" href="video.html">Наверх</a></td><td width="40%" align="right"> <a accesskey="n" href="other.html">След.</a></td></tr><tr><td width="40%" align="left" valign="top">4.17. DirectFB/Matrox (dfbmga) </td><td width="20%" align="center"><a accesskey="h" href="index.html">Начало</a></td><td width="40%" align="right" valign="top"> 4.19. Другое оборудование вывода видео</td></tr></table></div></body></html>