# Использование

## Командная строка

MPlayer использует составное дерево проигрывания. Оно состоит из глобальных опций, идущих первыми, например

    mplayer -vfm 5

,

и опций, идущих после имени файла, которые применяются только к данному файлу/URL/и т.п., например:

    mplayer -vfm 5 movie1.avi movie2.avi -vfm 4

Вы можете группировать файлы/URL'ы вместе, используя `{` и `}`. Это полезно, например, с опцией `-loop`:

    mplayer { 1.avi -loop 2 2.avi } -loop 3

Эта команда проиграет файлы в таком порядке: 1, 1, 2, 1, 1, 2, 1, 1, 2.

Воспроизведение файла:

    mplayer [опции] [путь/]имя_файла

Воспроизведение множества фалов:

    mplayer [общие опции] [путь/]имя_файла1 [опции для имя_файла1] имя_файла2 [опции для имя_файла2] ...

Воспроизведение VCD:

    mplayer [опции] vcd://номер_дорожки [-cdrom-device /dev/cdrom]

Воспроизведение DVD:

    mplayer [опции] dvd://имя_ролика [-dvd-device /dev/dvd]

Воспроизведение из WWW:

    mplayer [опции] http://site.com/file.asf

(так же можно использовать и списки проигрывания (плейлист[playlist]) )

Воспроизведение по RTSP:

    mplayer [опции] rtsp://server.example.com/streamName

Примеры:

    mplayer -vo x11 /mnt/Films/Contact/contact2.mpg
    mplayer vcd://2 -cdrom-device /dev/hdc
    mplayer -afm 3 /mnt/DVDtrailers/alien4.vob
    mplayer dvd://1 -dvd-device /dev/hdc
    mplayer -abs 65536 -delay -0.4 -nobps ~/movies/test.avi

## Управление

MPlayer использует полностью конфигурируемый, основанный на понятии команды, уровень управления, позволяющий манипулировать MPlayer'ом с клавиатуры, мышью, джойстиком или с пульта дистанционного управления (используя LIRC). Полный список кнопок для управления с клавиатуры см. на man-странице.

### Конфигурация управления

MPlayer позволяет повесить любую MPlayer'овскую команду на любую кнопку, используя простой конфигурационный файл. Синтаксис файла состоит из имени кнопки, сопровождающегося командой. По умолчанию конфигурационный файл находится в `$HOME/.mplayer/input.conf`, но это можно изменить, указав опцию `-input conf` (относительный путь указывается относительно `$HOME/.mplayer`).

#### Простой файл конфигурации ввода

    ##
    ## MPlayer input control file
    ##

    RIGHT seek +10
    LEFT seek -10
    - audio_delay 0.100
    + audio_delay -0.100
    q quit
    > pt_step 1
    < pt_step -1
    ENTER pt_step 1 1

#### Названия кнопок

Вы можете получить полный список, запустив `mplayer -input keylist`.

##### Клавиатура

- Все печатные символы

- `SPACE`

- `ENTER`

- `TAB`

- `CTRL`

- `BS`

- `DEL`

- `INS`

- `HOME`

- `END`

- `PGUP`

- `PGDWN`

- `ESC`

- `RIGHT`

- `LEFT`

- `UP`

- `DOWN`

##### Мышь (поддерживается только под X'ами)

- `MOUSE_BTN0` (Левая кнопка)

- `MOUSE_BTN1` (Правая кнопка)

- `MOUSE_BTN2` (Средняя кнопка)

- `MOUSE_BTN3` (Колёсико)

- `MOUSE_BTN4` (Колёсико)

- ...

- `MOUSE_BTN9`

##### Джойстик (поддержка должна быть включена при компиляции)

- `JOY_RIGHT` или `JOY_AXIS0_PLUS`

- `JOY_LEFT` или `JOY_AXIS0_MINUS`

- `JOY_UP` или `JOY_AXIS1_MINUS`

- `JOY_DOWN` или `JOY_AXIS1_PLUS`

- `JOY_AXIS2_PLUS`

- `JOY_AXIS2_MINUS`

- ...

- `JOY_AXIS9_PLUS`

- `JOY_AXIS9_MINUS`

#### Команды

Вы можете получить полный список известных команд, запустив `mplayer -input cmdlist`.

- `seek` (int) val [(int) type=0]

  Переместиться в какое-то место фильма. Type `0` — это относительное перемещение на +/- величина секунд. Type `1` — это перемещение к val, выраженному в процентах от длины фильма.

- `audio_delay` (float) val

  Подстроить задержку звука на заданное количество секунд

- `quit`

  Выйти из MPlayer'а

- `pause`

  остановить/продолжить воспроизведение

- `grap_frames`

  Кто-нибудь знает ?

- `pt_step` (int) val [(int) force=0]

  Перейти к следующему/предыдущему элементу дерева. Знак val указывает направление. Если в этом направлении нет доступных элементов, то ничего не произойдёт, если force равно нулю.

- `pt_up_step` (int) val [(int) force=0]

  Почти как pt_step, но перемещается на следующий/предыдущий элемент в родительском списке. Полезно, чтобы выйти из внутреннего цикла в дереве.

- `alt_src_step` (int) val

  Если доступно более одного источника, выбирает следующий/предыдущий (поддерживается только в asx списках проигрывания).

- `sub_delay` (float) val [(int) abs=0]

  Подстройка задержки субтитров на +/- val секунд или установить в val секунд, если abs не ноль.

- `osd` [(int) level=-1]

  Переключить osd режим или установить его в level, если level > 0.

- `volume` (int) dir

  Увеличить/уменьшить громкость.

- `contrast` (int) val [(int) abs=0]

- `brightness` (int) val [(int) abs=0]

- `hue` (int) val [(int) abs=0]

- `saturation` (int) val [(int) abs=0]

  Установить/подстроить параметры видео. Val изменяется от -100 до 100.

- `frame_drop` [(int) type=-1]

  Изменить/установить режим пропуска кадров.

- `sub_visibility`

  Отрегулировать видимость субтитров.

- `sub_pos` (int) val

  Подстроить позицию субтитров.

- `vobsub_lang`

  Изменить язык VOBsub субтитров.

- `vo_fullscreen`

  Переключить полноэкранность режима.

- `vo_ontop`

  Переключает stay-on-top(оставаться на поверхности). Поддерживается всеми драйверами, использующими X11, кроме SDL, и directx, и gl2 под Windows.

- `tv_step_channel` (int) dir

  Выбрать следующий/предыдущий канал.

- `tv_step_norm`

  Изменить стандарт TV.

- `tv_step_chanlist`

  Изменить список каналов.

- `gui_loadfile`

- `gui_loadsubtitle`

- `gui_about`

- `gui_play`

- `gui_stop`

- `gui_playlist`

- `gui_preferences`

- `gui_skinbrowser`

  Действия с GUI

### Управление через LIRC

Linux Infrared Remote Control[Инфракрасное Удалённое Управление Linux'ом] — используйте легко собираемый в домашних условиях IR-приёмник, (почти) любой пульт управления и управляйте с их помощью Вашей Linux машиной. Подробности на www.lirc.org.

Если у Вас установлен ракет lirc, configure само его обнаружит. Если Всё прошло хорошо, MPlayer при старте напечатает сообщение, похожее на "`Setting up lirc support...`". Если произошла ошибка, он Вам сообщит. Если он не говорит ничего про LIRC, то поддержка LIRC не была скомпилирована. Вот так :-)

Имя приложения для MPlayer — угадайте — `mplayer`. Вы можете использовать все команды mplayer'а и даже можете использовать более одной команды, разделив их символами `\n`. Не забудьте включить флаг repeat[повтор] в `.lircrc`, когда это имеет смысл (перемещение, громкость и т.п.). Вот выдержка из моего `.lircrc`:

    begin
         button = VOLUME_PLUS
         prog = mplayer
         config = volume 1
         repeat = 1
    end

    begin
        button = VOLUME_MINUS
        prog = mplayer
        config = volume -1
        repeat = 1
    end

    begin
        button = CD_PLAY
        prog = mplayer
        config = pause
    end

    begin
        button = CD_STOP
        prog = mplayer
        config = seek 0 1\npause
    end

Если Вам не нравится стандартное место Вашего конфигурационного файла lirc (`~/.lircrc`), используйте опцию `-lircconf filename`, чтобы указать другой файл.

### Подчинённый ("рабский") режим

Наличие подчинённого режима позволяет Вам создавать простые приложения к MPlayer'у. Когда режим включён (опцией `-slave`), MPlayer читает со стандартного входа команды, разделяемые символом конца строки (\n).

## Сетевые потоки и каналы

MPlayer может проигрывать файлы по сети, используя HTTP, FTP, MMS или RTSP/RTP протокол.

Проигрывание включается добавлением URL'а в командную строку. Также, MPlayer учитывает переменную среды `http_proxy` и использует прокси[proxy], если это возможно. Также можно заставить использовать прокси:

    mplayer http_proxy://proxy.micorsops.com:3128/http://micorsops.com:80/stream.asf

MPlayer может считывать данные со стандартного входа (а не из поименованных каналов). Это может, например, использоваться при проигрывании файлов по FTP:

    wget ftp://micorsops.com/something.avi -O - | mplayer -

Мы рекомендуем включать `-cache` при проигрывании из сети:

    wget ftp://micorsops.com/something.avi -O - | mplayer -cache 8192 -

## Удалённые потоки

Удалённые потоки позволяют получить доступ к большинству поддерживаемых MPlayer'ом типам потоков с удалённой машины. Основное предназначение этой возможности — это прямой доступ к CD или DVD приводу другого компьютера по сети (предполагается, что пропускной способности сети будет достаточно). С другой стороны, некоторые типы потоков (в настоящий момент это TV и MF) не могут использоваться удалённо, поскольку они выполнены на уровне демуксера. Это печально для MF, а вот TV всё равно потребовал бы ужасной пропускной способности сети.

### Компиляция сервера

После компиляции MPlayer'а, перейдите в каталог `TOOLS/netstream` и выполните make, чтобы собрать сервер. Затем Вы можете скопировать файл netstream в нужное место Вашей системы (обычно это `/usr/local/bin` на Linux).

### Использование удалённых потоков

Сначала Вы должны запустить сервер на машине, к которой Вы хотите получить удалённый доступ. В настоящий момент сервер чрезвычайно прост и не использует никаких аргументов командной строки, поэтому просто запускайте `netstream`. Теперь, например, Вы можете проиграть вторую дорожку VCD'шника на сервере:

    mplayer -cache 5000 mpst://servername/vcd://2

Вы можете получить доступ к файлам на сервере:

    mplayer -cache 5000 mpst://servername//usr/local/movies/lol.avi

Обратите внимание, что пути не начинающиеся с / будут относительными к каталогу, в котором запущен сервер. Использование `-cache` не требуется, но это будет очень полезно.

Обратите внимание, что в настоящий момент сервер вообще не является безопасным. поэтому, не сообщайте о многочисленных эксплоитах[exploit], которые его используют. Лучше пришлите несколько (хороших) патчей, чтобы сделать его лучше, или начните писать свой сервер.

## Редактируемые списки решений [Edit Decision Lists] (EDL)

Система редактируемых списков решений [edit decision list] (EDL) позволяет Вам автоматически пропускать или заглушать части при воспроизведении, основываясь на специфичном для каждого фильма конфигурационном файле.

Это полезно для тех, кто может захотеть посмотреть фильм в "семейном" режиме. Вы можете исключить любые проявления насилия, ненормативной лексики, Jar-Jar Binks, и т. п. из фильмов, сообразуясь с Вашими личными предпочтениями. Помимо этого, существуют другие применения, например автоматический пропуск рекламы при просмотре фильмов.

Формат EDL файлов пока элементарен. Когда система EDL достигнет определённой степени завершённости, вероятно будет использоваться основанный на XML формат файлов (при этом сохранится совместимость с предыдущими форматами EDL).

В текущем исполнении, количество EDL записей ограниченно 1000. Если Вам понадобится больше, измените #define MAX_EDL_ENTRIES в файле `edl.h`.

### Использование EDL файлов

Включите опцию `-edl <имя_файла>`, когда Вы запускаете MPlayer, с именем EDL файла, который Вы хотите использовать с видео.

### Создание EDL файлов

Текущий формат файлов EDL:

    [начальная секунда] [конечная секунда] [действие]

Где секунды - это числа с плавающей точкой (вещественные числа), а действие - это или `0` для пропуска или `1` для заглушения звука. Пример:

    5.3   7.1    0
    15    16.7   1
    420   422    0

Это вызовет пропуск видео с 5.3 секунды до 7.1 секунды, затем заглушит звук на 15 секунде, включит обратно в 16.7 секунд и пропустит видео с 420 по 422 секунды. Эти действия будут происходить, когда таймер проигрывания достигнет указанных в файле значений.

Чтобы начать создать EDL файл, используйте опцию `-edlout <filename>`. При проигрывании, когда Вы хотите отметить предыдущие две секунды для пропуска, нажмите i. Соответствующая запись для этого времени будет добавлена в файл. Затем Вы можете вернуться и подстроить сгенерированный EDL файл.