Воспроизведение аудио в разные аудиокарты

Всем привет. Есть линуксовый комп, есть несколько аудиокарт, подключенных через USB. 3 аудиокарты, 6 колонок. (по 2 колонки на один стереовыход каждой аудиокарты).

Задача такая чтобы воспроизводить различные звуки/проигрыши на разных колонках. Например на нулевой карте в левый канал отдавать звук бьющегося стекла, а на первую карту в правый канал отдавать звуки природы. С возможностью одновременного вывода различных звуков на все каналы не зависимо друг от друга (полагаю, запуск 6 экземпляров аудиоплеера).

Я смотрел в сторону mpg123. Но задавая ему параметры -0 или -1 - имеется ввиду, что он от стереодорожки отсекает правый или левый канал и воспроизводит его в моно режиме сразу на две колонки.

Может быть есть что-то еще? Сейчас смотрю глубже в сторону консольного cvlc. Параллельно задав здесь вопрос - продолжаю поиски. Гугл ничего не подсказал мне, увы.

В идеале иметь возможность нечто вроде такого:

$ ./my_player --channel=left --audio_device=1 file.mp3

Буду рад советам. Спасибо!
man pulseaudio. Нужен звуковой сервер, чтобы разруливать потоки между картами.
Мне нужно одновременно воспроизводить разные звуки на разные карты... Я знаю что у него есть консольная утилита которой можно переключать поток вывода или же после старта плеера уже потом в пульсаудио переназначить ему куда выводить. Но это не очень удобно. И я не знаю как мне идентифицировать нужный звук чтобы направить его в нужную колонку если будет запущено сразу 6 одинаковых плееров...

Ну или направь меня в нужном направлении. Спасибо.

Пока начал копать в сторону mplayer, говорят он такое умеет... Но пока читаю ман
http://help.ubuntu.ru/wiki/pulseaudio

https://habrahabr.ru/post/106806/
Удалось порешать роутинг каналов (левый/правый) следующими параметрами:

$ mplayer 2.mp3 -af channels=2:2:0:0:1:0

первая двойка: это количество выходных каналов (их собственно и будет 2, так как мр3 двухканальная стерео, просто я их смещу в итоге в один канал)

вторая двойка: это количество перемещений которые надо сделать (количество пар следующих цифр что куда перемещать), то есть левый роутим в левый, правый роутим в правый

ну и дальше попарно перемещения: 0:0 - левый в левый 1:0 - правый в левый

Половина того что я хочу сделано. Осталось теперь разобраться с роутингом на разные звуковые карты, тут, пожалуй, копну глубже в PulseAudio.
ifree, направление для копания
mplayer -ao alsa:device=(устройство для вывода)
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874
nafanja
ifree, направление для копания
mplayer -ao alsa:device=(устройство для вывода)

да! Это оно!
$ mplayer -ao alsa:device=hw=0.0

А список всех alsa девайсов беру из команды:

$ aplay -l

где первая цифра для параметра hw это номер аудиокарты, а вторая цифра - device.номер.
Пока что остановлюсь на этом.

Правда моя аудиокарта ZOOM UAC-2 совсем не хочет через ALSA запускаться. Ей нужен только PulseAudio. И даже пока я не поставлю пульсаудио, она вообще не работает даже если я ее вручную выбираю в alsa-mixer. Ну да ладно, это проф аудиокарта, она специфическая, что оказалось под рукой - на том и пробовал.
Там где я собираю эту многоколоночную штуку - будут самые простейшие линукс-совместимые ЮЗБ аудиокарты.
Но сделал все через PulseAudio. Так гораздо удобней.
Значит командой:
$ pactl list cards short
смотрим все доступные устройства.

А далее роутим звук вот так:


$ mplayer -ao pulse::0 file.mp3

Соответственно цифра от нуля до бесконечности (сколько там у вас аудиокарт натыкано).
Проблема решена, тему можно закрывать.

Спасибо nafanja за наводку на параметр -ao
Спасибо rbh-17m за наводку на PulseAudio.
спам
 
Зарегистрироваться или войдите чтобы оставить сообщение.