3.9. Расширенные возможности аудио

3.9.1. Окружающее/Многоканальное[Surround/Multichannel] воспроизведение

3.9.1.1. DVD'шники

Большинство DVD и многие другие файлы содержат окружающий звук. MPlayer поддерживает воспроизведение такого звука, но не задействует его по-умолчанию, поскольку стерео оборудование более распространено. Для воспроизведения файла с более чем двумя каналами звука, используйте опцию -channels. Например, для воспроизведения DVD со звуком 5.1:

mplayer dvd://1 -channels 6

Имейте ввиду, что несмотря на название "5.1" на самом деле присутствует шесть независимых каналов. Если у вас есть соответствующее оборудование, вы спокойно можете добавить опцию channels в конфигурационный файл ~/.mplayer/config MPlayer'а. Например, для установки по умолчанию квадрофонического[quadraphonic] воспроизведения, добавьте такую строку:

channels=4

MPlayer будет выводить четырехканальный звук, если все четыре есть в проигрываемом файле.

3.9.1.2. Воспроизведение стерео звука на четырех колонках

По-умолчанию, MPlayer не дублирует никакие каналы, как и большинство звуковых драйверов. Если вы хотите, сделайте это самостоятельно:

mplayer filename -af channels=2:2:0:1:0:0

Объяснения ищите в разделе копирование каналов.

3.9.1.3. Передача AC-3/DTS

DVD, как правило, имеют окружающий звук, кодированный в AC-3 (Dolby Digital) или DTS (Digital Theater System[система цифрового кинотеатра]) формате. Некоторое современное аудио оборудование способно самостоятельно декодировать эти форматы. MPlayer может быть сконфигурирован, чтобы передавать данные без их декодирования. Это работает только для наличие в вашей звуковой карте разъема S/PDIF (Sony/Philips Digital Interface[цифровой интерфейс Sony/Philips]).

Если ваше оборудование может декодировать и AC-3, и DTS, выможете спокойно задействовать передачу для обоих форматов. В противном случае включайте передачу только того формата, который поддерживается оборудованием.

Чтобы включить передачу из командной строки:

  • только для AC-3, используйте -ac hwac3

  • только для DTS, используйте -ac hwdts

  • для AC-3 и DTS, используйте -afm hwac3

Чтобы включить передачу в файле настроек MPlayer:

  • только для AC-3: ac=hwac3,

  • только для DTS: ac=hwdts,

  • для AC-3 и DTS: afm=hwac3

Заметьте, что в конце ac=hwac3, и ac=hwdts, присутствует запятая (","). В этом случае MPlayer вернется к кодеку, который он обычно использует, при воспроизведении файла, не содержащего звука AC-3 или DTS. afm=hwac3 запятой не требует; Когда указано семейство аудио, MPlayer вернется к нужному кодеку так или иначе.

3.9.1.4. Передача MPEG аудио

Передатчики цифрового ТВ (такие как DVB и ATSC) и некоторые DVD, обычно имеют аудио потоки MPEG (в частности MP2). Некоторые аппаратные MPEG декодеры, такие как полнофункциональные DVB карты и DXR2 адаптеры имеют встроенную возможность декодирования этого формата. MPlayer может быть настроен для передачи аудио данных без из декодирования.

Для использования этого кодека:

 mplayer -ac hwmpa 

3.9.1.5. Matrix-кодированное[matrix-encoded] аудио

***TODO***

Этот раздел пока не написан, и не может быть завершен, пока кто-нибудь не предоставить нам образцы файлов для тестирования. Если у вас есть matrix-кодированные файлы, знаете где их можно достать или имеете информацию, которая может быть полезна, отошлите сообщение в рассылку MPlayer-DOCS. Укажите в теме письма [matrix-encoded audio].

Если не появятся файлы или какая-нибудь информация, этот раздел будет удален.

Полезные ссылки:

3.9.1.6. Эмуляция окружающего звука в наушниках

MPlayer содержит плагин HRTF (Head Related Transfer Function), основанный на проекте MIT откуда взяты измерения от микрофонов, вмонтированных в макет человеческой головы.

Хотя точная имитация системы окружающего звука[surround system] невозможна, MPlayer'овский плагин HRTF производит более пространственный окружающий звук на 2-х канальных наушниках. Обычное сведение, просто объединяет канали в два; кроме объединения каналов, hrtf создает хитрое эхо, слегка увеличивает разделение стерео, и меняет громкость некоторых частот. Лучше ли звучит HRTF, зависеть от исходного звука, и является делом личного вкуса, но его определенного стоит попробовать.

Для воспроизведения DVD с HRTF:

mplayer dvd://1 -channels 6 -af hrtf

hrtf работает хорошо тоько с 5-ю или 6-ю каналами. Также, hrtf тербуется 48 kHz звук. DVD аудио уже kHz, но если у вас есть файл, который вы хотите воспроизвести при помощи hrtf , с другой частотой сэмплирования, необходимо его ресэмплировать[resample]:

mplayer filename -channels 6 -af resample=48000,hrtf

3.9.1.7. Решение проблем

Если вы ничего не слышите при использовании окружающего звука, проверьте настройки вашего микшера при помощи такой как alsamixer программы; очень часто по-умолчанию выходной звук выключен или его уровень установлен в ноль.

3.9.2. Манипуляции с каналами

3.9.2.1. Общая информация

К сожалению, нет стандарта, описывающего порядок следования каналов. Порядки, указанные ниже, таковые из AC-3 и довольно типичны; попробуйте их и увидите совпадают ли они с вашим источником. Каналы нумеруются с нуля.

mono[моно]

  1. center[центральный]

stereo[стерео]

  1. left[левый]

  2. right[правый]

quadraphonic[квадрофонический]

  1. left front[левый передний]

  2. right front[правый передний]

  3. left rear[левый задний]

  4. right rear[правый задний]

surround 4.0[окружение 4.0]

  1. left front[левый передний]

  2. right front[правый передний]

  3. center rear[центральный задний]

  4. center front[центральный передний]

surround 5.0[]окружение 5.0

  1. left front[левый передний]

  2. right front[правый передний]

  3. left rear[левый задний]

  4. right rear[правый задний]

  5. center front[центральный передний]

surround 5.1[окружение 5.1]

  1. left front[левый передний]

  2. right front[правый передний]

  3. left rear[левый задний]

  4. right rear[правый задний]

  5. center front[центральный передний]

  6. subwoofer[сабвуфер]

Опция -channels используется для запроса количества каналов у аудио декодера. Некоторые аудио кодеки используют указанное количество каналов для определения необходимо ли сведение каналов. Заметьте, что это не всегда отражается на количестве выходных каналов. Например, используя -channels 4 для проигрывания стерео MP3 файла будет по-прежнему выводить звук на два канала, поскольку MP3 кодек не создает дополнительных каналов.

Аудио плагин channels может использоваться для создания или удаления каналов, и полезен для управления количеством каналов, отсылаемых на звуковую карту. Смотрите следующие разделы для получения информации о манипуляции каналами.

3.9.2.2. Воспроизведение моно на двух колонках

Моно звук намного лучше звучит, при воспроизведении на двух колонках - особенно при использовании наушников. Аудиофайлы, реально имеющие один канал, автоматически проигрываются через две колонки; к сожалению, множество файлов с моно звуком кодированы как стерео с тишиной в одном из каналов. Простейший и безопасный способ воспроизведения одинакового звука на обеих колонках состоит в использовании плагина extrastereo:

mplayer filename -af extrastereo=0

Он усредняет оба канала, делая каждый в два раза тише изначального. В следующих разделах приводятся другие способы сделать то же самое без уменьшения громкости, но они сложнее и требуют указания различных опций в зависимости от того, какой канал остается. Если вам действительно требуется управлять громкостью, бутет проще поэкспериментировать с плагином volume и определить верное значение. Например:

mplayer filename -af extrastereo=0,volume=5

3.9.2.3. Копирование/перемещение каналов

Плагин channels может переместить любой или все каналы. Установка всех подопций плагина channels не так проста и требует определенной аккуратности.

  1. Определитесь, сколько выходных каналов вам необходимо. Это первая подопция.

  2. Посчитайте количество перемещаемых каналов. Это вторая подопция.Каждый канал может быть перемещен в несколько отличных каналов одновременно, но учтите, что исходный канал (даже при перемещении в одно место) будет пуст, пока в него не переместится какой-либо другой. Для копирования канала, оставляя исходный неизменным, просто переместите канал одновременно в требуемый и исходный. Например:

    канал 2 --> канал 3
    канал 2 --> канал 2

  3. Запишите копии каналов в виде пары подопций. Заметьте, что первый канал - это 0, второй - 1 и т.д. Порядок следования значений не имеет, пока они правильно сгруппированы в пары исходный:результирующий.

Пример: один канал на две колонки

Это пример другого способа воспроизвести один канал на обе колонки. В нем предполагается, что левый канал должен воспроизводиться, а правый надо отбросить. Выполняем шаги, описанные выше:

  1. Для создания по каналу на каждую из колонок, первая подопция должна быть 2.

  2. Левый канал надо переместить на правый и на себя, чтобы он не оставался пуст. Всего два перемещения, делаем вторую подопцию тоже равной "2".

  3. Для перемещения левого канала (канал 0) в правый (канал 1) пара подопций имеет вид "0:1", "0:0" перемещает левый канал на себя.

Собираем все вместе:

mplayer filename -af channels=2:2:0:1:0:0

Преимущество этого примере перед extrastereo состоит в том, что громкость каждого канала такая же как у исходного. Недостаток заключается в необходимости изменить подопции на "2:2:1:0:1:1", если желаемый канал - правый. К тому же его труднее запомнить и набрать.

Пример: левый канал на две колонки (сокращение)

На самом деле есть более простой способ использования плагина channels для воспроизведения левого канала на обеих колонках:

mplayer filename -af channels=1

Второй канал отбрасывается и, при отсутствии других подопций, остается единственным. Драйвер звуковой карты автоматически воспроизводит одноканальный звук на обеих колонках. Но это сработает только если желаемый канал - левый.

Пример: дублирование передних каналов на задние

Другая обычная операция - это дублирование передних каналов и воспроизведение их на задних колонках при квадрофонической настройке.

  1. Выходных каналов должно быть четыре. Первая подопция равна "4".

  2. Каждый из передних каналов надо переместить на соответствующий задний и на себя. Это четыре перемещения, так что вторая подопция равна "4".

  3. Левый передний (канал 0) надо переместить на левый задний (канал 2): "0:2". Левый передний также надо переместить на себя: "0:0". правый передний (канал 1) перемещается на правый задний (канал 3): "1:3", и на себя: "1:1".

Собираем все и получаем:

mplayer filename -af channels=4:4:0:2:0:0:1:3:1:1

3.9.2.4. Микширование каналов

Плагин pan пожет микшировать каналы в указанных пользователем пропорциях. Он может делать все, что channels, и даже больше. К сожалению, подопции намного сложнее.

  1. Определите со скольки каналами будете работать. Вам необходимо указать это при помощи -channels и/или -af channels. Дальнейшие примеры покажут когда какую использовать.

  2. Решите, сколько каналов скормить pan (дополнительные декодированные каналы отбрасываются). Это первая подопция, она также определяет сколько каналов готовится к выводу).

  3. Оставшиеся подопции указывают какая часть каждого входного канала микшируется в в каждый выходной. Это самая сложная часть. Для решения задачи, разделите подопции на несколько наборов, по одному на каждый выходной канал. Каждая подопция в наборе относится к входному каналу.

    pan принимает значения от 0 до 512, давая от 0% до 51200% громкости исходного канала. Будьте осторожны, используя значения больше 1, если вы превысить диапазон сэмплинга вашей звуковой карты, вы услышите противный треск и скрежет. Если хотите, можете вслед за pan указать ,volume для задействования обрезки, но лучше держать значения pan достаточно низкими, чтобы не требовалось обрезание.

Пример: один канал на две колонки

Это еще один пример воспроизведения левого канала на двух колонках. Следуя инструкциям выше:

  1. pan должен выдать два канала, т.о. первая подопция равна "2".

  2. Поскольку входных каналов два, будет два набора подопций. Так как выходных каналов тоже два, то будет по две подопции в каждом наборе. Левый канал из файла должен перейти с полной громкостью в новые левый и правый. Таким образом, первый набор подопций будет "1:1". правый канал должен быть отброшен, поэтому второй набор равен "0:0". Любые значения 0 в конце могут быть опущены, но для более легкого понимания мы их оставим.

Соединение опций дает:

mplayer filename -af pan=2:1:1:0:0

Если вместо правого канала нужен левый, подопции для pan будут "2:0:0:1:1".

Пример: левый канал на две колонки (сокращение)

Как и с channels, существует сокращенный вариант, который работает только для левого канала:

mplayer filename -af pan=1:1

Поскольку pan имеет только один входной канал (остальные отбрасываются), будет только одна подопция, указывающая, что единственный канал получает 100% собственной громкости.

Пример: сведение 6-канального PCM

Декодер MPlayer'а для 6-канального PCM не способен сводить каналы. Здесь описан способ сведения PCM, используя pan:

  1. Количество выходных каналов равно 2, значит первая подопция равна "2".

  2. С шестью входными каналами будем иметь шесть наборов подопций. К счастью, поскольку мы беспокоимся о выводе только первых двух, достаточно создать два набора; оставшиеся можно опустить. Имейте ввиду, что не все многоканальные имеют одинаковый порядок каналов. пример показывает как свести файл с порядком как у AC-3 5.1:

    0 - передний левый
    1 - передний правый
    2 - задний левый
    3 - задний правый
    4 - центральный передний
    5 - сабвуфер

    В первом наборе указаны проценты от исходной громкости, в соответствующем порядке, которую каждый выходной канал получит от переднего левого канала: "1:0". Правый передний должен перейти в правый: "0:1". То же для задних: "1:0" и "0:1" Центральный должен попасть в оба с половинной громкостью: "0.5:0.5", и сабвуфер переходит в оба канала с полной громкостью: "1:1".

Все вместе:

mplayer 6-channel.wav -af pan=2:1:0:0:1:1:0:0:1:0.5:0.5:1:1

Проценты, указанные выше всего лишь пример. подстраивайте их как вам удобно.

Пример: Воспроизведение звука 5.1 на больших колонках без сабвуфера

Если у вас есть пара огромных передних колонок, нет надобности тратиться на сабвуфер для полноценной системы 5.1. Если использовать -channels 5 для запроса к liba52 на декодирование 5.1 аудио в 5.0, канал сабвуфера просто отбрасывается. Если вы сотите самостоятельно распределить канал сабвуфера, то потребуется ручное сведение при помощи pan:

  1. Поскольку pan надо анализировать все шесть каналов, укажите -channels 6, чтобы liba52 декодировал их все.

  2. pan выводит только пять каналов, первая подопция равна 5.

  3. Шесть входных каналов означает шесть наборов по пять подопций в каждом.

    • Левый передний дублируется только на себя: "1:0:0:0:0"

    • То же для правого переднего: "0:1:0:0:0"

    • То же для левого заднего: "0:0:1:0:0"

    • И то же для правого заднего: "0:0:0:1:0"

    • Центральный передний, тоже: "0:0:0:0:1"

    • И, наконец, мы должны решить что же делать с сабвуфером, например, половина на передний правый и половина на передний левый: "0.5:0.5:0:0:0"

Собирая все подопции месте, получаем:

mplayer dvd://1 -channels 6 -af pan=5:1:0:0:0:0:0:1:0:0:0:0:0:1:0:0:0:0:0:1:0:0:0:0:0:1:0.5:0.5:0:0:0

3.9.3. Программная подстройка звука

Некоторые звуковые дорожки без усиления слишком тихие для комфортного прослушивания. Это становится проблемой, если звуковое оборудование не способно усиливать сигнал. Опция -softvol указывает MPlayer'у использовать встроенный микшер. После этого вы можете использовать клавиши подстройки громкости (по-умолчанию 9 и 0) чтобы достичь значительно более громкого звучания. Заметьте, что это не исключает использования микшера вашей карты; MPlayer всего лишь усиливает сигнал перед отправкой его на звуковую карту. Следующим пример может являться неплохим началом:

mplayer quiet-file -softvol -softvol-max 300

Опция -softvol-max указывает максимально допустимый уровень звука в процентах от исходного. Например, -softvol-max 200 позволит увеличивать громкость вдвое по сравнению с оригинальным звуком. Использование больших значений с-softvol-max; высокий уровень громкости не будет достигнуть без использования клавиш регулирования громкости. Единственный минус больших значений заключается в том, что, поскольку MPlayer регулирует громкость в процентах от максимума, вы не будете иметь той же точности при использовании клавиш регулирования громкости. Используйте меньшее значение -softvol-max и/или укажите -volstep 1 если нужна повышенная точность.

Опция -softvol работает, управляя аудио плагином volume. Если вам надо воспроизвести файл с определенной громкостью от начальной, можете указать volume вручную:

mplayer quiet-file -af volume=10

Будет воспроизведен файл в усилением в 10 децибел. Будьте осторожны, используя плагин volume - вы можете легко повредить ваши уши слишком громким звуком. Начните с маленьких значений и постепенно увеличивайте, пока не почувствуете, что достаточно. Также, если указать черезчур высокие значения, volume может потребоваться обрезать звук, чтобы избежать отправления на карту данных, превышающих допустимые значение; это приведет к искажению звука.