LINUX.ORG.RU

Альсы, пульсы и все все все

 , , ,


1

5

Альсы, пульсы, мпд, айскасты, неткаты...

Эээ, warl0ck и val-amart, впрочем, и все остальные тоже.

Опишите свои реальные кейсы, как задачи, чем и зачем слали звук в сеть, чем принимали и воспроизводили.

Вот, например, где-то в соседнем треде человеку надо чтобы шеф говорил в микрофон а подчиненные слышали. Или, вещать музло в сети магазинов. Или что-то нароутить дома...

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

Ожидаю примерно такой формат изложения:

Шеф дал задачу (или я сам себе придумал) сделать вот так и вот так. Я сначала выбрал это и это, начал ковырять но отвалилось в этом вот месте. Потом взял другое, а оно совсем не подходит. И тогда я нашел вот такую штуку и мне подошло, быстро настроил и все заработало.

UPD: Если вы думаете что я изучаю необходимость тех или иных фич — вы правильно думаете, так и есть. Ибо у меня есть поделка, которую я попиливаю вечерами. И, я чую, мне нужно оперделиться в какую сторону её сегментировать на отдельные утилиты, чтобы не получилось комбайна. А этот тред еще и даст мне понять какие вообще фичи я не учел.

★★★★★

Последнее исправление: cetjs2 (всего исправлений: 4)

Перенаправить звук на usb-наушники, не перезапуская все звуковые приложения. Шах и мат.

anonymous
()

Ну, э. У меня есть ноут (и не только ноут, и не только у меня). Посреди квартиры стоит большой и хороший ЦАП/усилок с большой и хорошей акустикой.

Задача: слушать музыку.

Решение: берём одноплатник (сначала одноплатник, теперь просто старый ноут) с S/PDIF, берём пульсу, втыкаем module-tunnel-source, на клиентских машинах втыкаем module-tunnel-sink server=server.local. Получаем дерьмо: звук обрывается каждые секунд десять. Выходит новая пульса, смотрим в чейнджлог, меняем module-tunnel-sink на module-tunnel-sink-new, радуемся.

P. S.: Потом воткнул туда ещё shairplay для гейфонов.

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 3)
Ответ на: комментарий от intelfx

Вот, годный, эталонный камент. Ждем других.

deep-purple ★★★★★
() автор топика

Оке, сейчас опишу. Юзкейс нумбер уан: был лаптоп с дефолтной ac97-совместимой карточкой на борту, десктоп с audigy2, если память не изменяет. Нужно было слать звук с лаптопа на десктоп. Решалось с помощью esd. Да, времена стародавние.

Юзкейс нумбер два: появилась pcmcia-карточка, нужно получить возможность перенаправлять звук на нее при вставке в слот.

Тыкался-тыкался с начинающим зарождаться пульсаудио и его ублюдочным pavucontrol, плюнул, написал пару скриптов и правила udev: на эвент при установке карты делается sed -i 's/hw:0.0/hw:1.0/' /etc/mpd.conf && /etc/init.d/mpd restart ну и наоборот при извлечении. Сейчас у mpd и вовсе появилась поддержка нескольких выводов, так что можно и не рестартить.

Теперь тоже иногда надо гнать звук с лаптопа на пк, делаю способом описанным в прошлом топике. Поттерингоподелие, перепердоливающее^W ресемплирующее звук когда надо и не надо не нужно. И, как было верно подмечено, mpd с ним работает совершенно непотребно.

warl0ck ★★
()
Ответ на: комментарий от warl0ck

Годно!

Дайте еще кейсов!

Если вы думаете что я изучаю необходимость тех или иных фич — вы правильно думаете, так и есть. Ибо у меня есть поделка, которую я попиливаю вечерами. И, я чую, мне нужно оперделиться в какую сторону её сегментировать на отдельные утилиты, чтобы не получилось комбайна. А этот тред еще и даст мне понять какие вообще фичи я не учел.

deep-purple ★★★★★
() автор топика

Перепись мсьей ИТТ :) «Было это встепях Херсонщины90-х в Архангельской тайге», сети не было, но пейсали будильник в общаге — прожка на asm для писискрипера, исполняющая «Вставай, вставай кудрявая...» по таймеру с зощитой от скачка напруги — прописана в нач. загрузке :) Алсо, классический ребут отверткой, привязанной к «подставке для кофе».

slackwarrior ★★★★★
()

Возникла у меня задача играть музыку по A2DP. С переключением А «изобрели» только bluez-alsa. Такой комбайн в asoundrc наворотил, userspace-демона для переключения написал — а тут пульса вышла.

t184256 ★★★★★
()
Ответ на: комментарий от deep-purple

чем и зачем слали звук в сеть

черт

<не сеть>

Мой вопрос гораздо шире.

уже, уже.

t184256 ★★★★★
()
Ответ на: комментарий от deep-purple

Если вы думаете что я изучаю необходимость тех или иных фич — вы правильно думаете, так и есть.

Крутотень! Очень неплохо бы не злоупотреблять ресемплингом, а слать pcm-поток как есть. А то с тем же пшшшшаудио получаем вместо 96KHz/24bit 44.1/16, хотя карта и альса это все поддерживают.

warl0ck ★★
()
Ответ на: комментарий от warl0ck

Слать рав пцм не в локалхост — можешь упереться в ширину канала. Поэтому, тут либо смириться с понижением качества, либо, если канал позволяет то слать как есть, либо жать (с потерями, в лося гзип), а потом раскрывать на конечной точке.

Плюс, может быть более одного источника одновременно, плюс, может быть более одного приемника одновременно.

Т.е. это можно назвать (не вдаваясь в подробности реализации) сетевой микшер. Все верно? А теперь скажи мне, не похоже ли это на ПА или часть ф-ционала ПА? ))

Ну и еще, кто скажет что там вообще в ПА с этим?

1) Реализовано ли сжатие при передаче потока?
2) Возможно ли более одного источника одновременно в один приемник?
3) Возможно ли более одного приемника на один источник?
4) Как насчет синхронизации всего этого (протокол, синк-метки)?

intelfx я так понял ты ковырял ПА достаточно, так что вопрос наверное к тебе.

deep-purple ★★★★★
() автор топика
Ответ на: комментарий от warl0ck

Ну а запилить простейшую поделку которая заберет с альсы, передаст по сетке куда надо, которая воткнет это в свою альсу — не сложно, да.

deep-purple ★★★★★
() автор топика
Ответ на: комментарий от deep-purple

если канал позволяет то слать как есть, либо жать (с потерями, в лося гзип), а потом раскрывать на конечной точке.

Можно попробовать слепить несколько транспортных модулей: лоззи/лозлесс с тем или иным алгоритмом сжатия. Если слать только сжатый и/или ресемплированный поток, то теряется вся суть затеи.

warl0ck ★★
()
Ответ на: комментарий от warl0ck

Суть затеи связать синхронно любое кол-во передатчиков с любым кол-вом приемников. Остальное по желанию и на выбор. Не хочешь жать, и не станешь, но если словишь «хрюнов» — это твои проблемы. Кто-то может захотеть отправить и 7:1 192 кгц 24 бита.

deep-purple ★★★★★
() автор топика
Ответ на: комментарий от warl0ck

если уверуешь в нужность блока топорной передачи — не спеши расчешлять netcat и пихать его в asoundrc; глянь в сторону gst-launch с кастомными контейнерами и чем-нибудь умным over UDP.

t184256 ★★★★★
()
Ответ на: комментарий от t184256

— не спеши расчешлять netcat и пихать его в asoundrc

Ну, можно в качестве канала использовать ssh, тут и сжатие какое-никакое (:

глянь в сторону gst-launch

Это вот погляжу, благодарствую. Хотя, с «чем-нибудь» умным вечно вылезает куча подводных камней и приходится попутно продираться через огород костылей.

warl0ck ★★
()
Ответ на: комментарий от deep-purple

Нет, я ковырял пульсу исключительно на уровне юзера, да и то херового юзера.

2 точно возможно (ради этого исходно пульса создавалась), 3 тоже должно быть возможно (можно запилить virtual sink, клонирующий поток на сколько угодно tunnel sink'ов), 1 и 4 хз.

intelfx ★★★★★
()
Ответ на: комментарий от warl0ck

ssh

фигня over TCP? а до задержек и устойчивости к потерям тебе дела нет? а как же мультикаст?

с «чем-нибудь» умным вечно вылезает куча подводных камней

и тут тебе пригодится хотя бы уверенность в инструменте.

t184256 ★★★★★
()
Последнее исправление: t184256 (всего исправлений: 1)
Ответ на: комментарий от deep-purple

1) Реализовано ли сжатие при передаче потока?

хз

2) Возможно ли более одного источника одновременно в один приемник?

да, стандартными средствами.

3) Возможно ли более одного приемника на один источник?

да, через module-combine-sink.

4) Как насчет синхронизации всего этого (протокол, синк-метки)?

хреново, особенно по сети. о подробностях спрашивай автора mpv, он сейчас с этим воюет. вроде как одна из проблем в том что нельзя отменить проигрывание уже отосланного фрагмента.

val-amart ★★★★★
()
Ответ на: комментарий от t184256

а до задержек и устойчивости к потерям тебе дела нет?

Под мои задачи не особо.

и тут тебе пригодится хотя бы уверенность в инструменте.

Покуда был жив esd, меня он полностью устраивал и я был в нем уверен. Alsa с плугинами, скажем так, конфигурируется не слишком просто, а пшшшшаудио - толстомясое перегруженное нечто.

warl0ck ★★
()
Ответ на: комментарий от warl0ck

а мне че-то казалось, что pulseaudio предоставляет чуть ли не superset возможностей esd через совместимые с ним же интерфейсы...

t184256 ★★★★★
()
Последнее исправление: t184256 (всего исправлений: 2)
Ответ на: комментарий от intelfx

Решение: берём одноплатник (сначала одноплатник, теперь просто старый ноут) с S/PDIF, берём пульсу, втыкаем module-tunnel-source, на клиентских машинах втыкаем module-tunnel-sink server=server.local. Получаем дерьмо: звук обрывается каждые секунд десять. Выходит новая пульса, смотрим в чейнджлог, меняем module-tunnel-sink на module-tunnel-sink-new, радуемся.

А до выхода новой версии что делать?

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)
Ответ на: комментарий от val-amart

нельзя отменить проигрывание уже отосланного фрагмента

Херасе там задержки, раз о таком вопрос возник ))

deep-purple ★★★★★
() автор топика

мммм... непонял или речь исключительно про работу с сетью, потому просто расскажу про свой сетап и задачи, хз или тебе это будет полезно.

итак, sources:
— мои рабочий и личный ноуты с линуксом
— виндовый игровой ноут брата, а также его рабочая виртуалка с линуксом на нем
— мак эйр мамы
— ps4 и wiiu, вывод в spdif и hdmi соответственно
— гипервизор на голом арче с кучей вмок, из релевантных для аудио-видео: роутер на openbsd, хранилище на opensolaris, винда для игорей, винда для софта от adobe, linux со спотифаем; openbsd с mpd, у каждого члена семьи свой. тут же VMка с арчем и пульсой, используется как AV receiver и управляет всеми этими медиапотоками

sinks:
— два телевизора и проектор, все через hdmi
— 2.1 с усилком для музыки, беспроводные наушники для музыки
— система 5.1 для фильмов/игр
— две пары гарнитур для voip, подключаются через внешние usb аудиокарты
— геймерская беспроводная гарнитура брата, а также его обычные проводные наушники.
— bluetooth стереогарнитура, обычно используются с мобильными девайсами но часто также с ноутами в дороге
— говноколонки на кухне, стерео в ванной
— беспроводные гарнитура и музыкальные наушники на работе, воткнуты в докстанцию

вроде ничего не забыл. проигрывать звук может что угодно куда угодно, причем зачастую одновременно:
— я работаю, слушаю свой mpd в ушах, пареллельно вывожу стрим с твича на телик который возле рабочего места. мама слушает на кухне спотифай, брат играет на большом телике и 5.1 в плойку.
— мы все вместе смотрим фильм на проекторе, каждый в своих любимых наушниках (квартира, а мы часто торчим до утра).
— брат нашел видос, включил его на телевизор и мне в наушники (а заодно и себе).
— слушал подкаст, пошел в душ — переключил звук туда.
это более экзотические варианты использования, а так постоянно переключается что куда, где кому что удобнее смотреть-слушать.

когда-то раньше в основном использовал esd для всего где он работал и перетыкивал все вручную, коммутируя в основном физически. периодически порывался наваять свои костыли, в том числе через arts, и даже банальный nc. когда уверился в нормальной работе пульсы, плюнул и консолидировал все, избавился от физического ресивера. доволен как слон просто, хотя и не все идеально работает, особенно сейчас (я в переезде/ремонте).

я в процессе постоянной доводки всего этого говна, как любой линуксоед наверное; периодически также пописываю простую ui вебстраничку для управления пульсой и xinerama/X geometry на AV receiver ВМке, чтобы даже мама могла через нее выбрать что и куда играть/показывать.

кроме этого, по работе один раз была такая задача, хз насколько это релевантно ну да ладно. делал ембеддед девайс который в том числе умел в dlna и транскодинг, для локального контента и из «клауда». дело было очень давно, dlna еще не был стандартом даже и софта никакого небыло, пришлось самому написать контроллер и стримилку через плагин к lighttpd, транскодинг делал частично на сервер-сайде, частично локально (там неплохой арм был) через ффмпег, с него собирал стрим через feng. веселые времена… еще заказчик хотел сделать из него av ресивер, приблизительно как то что я наваял дома теперь, но мы его отговорили, тогда это звучало нереально.

val-amart ★★★★★
()
Ответ на: комментарий от t184256

Ну и дальше-то что? Я описал, почему меня, в свое время, не устроил пшшшаудио. Он делает кучу всего, но делает это из рук вон плохо.

А миллионам никто не мешает жрать говно, я бы даже сказал, что это всячески поощряется.

warl0ck ★★
()
Ответ на: комментарий от t184256

Давай уже не будем упражняться в остроумии и подлавливать друг-друга на формулировках. Суть в том, что пшшаудио - монстроузный кусок говна. А ссуть оне, как известно, в таз.

warl0ck ★★
()

Чистый OSS мне понадобился, когда хрипела ALSA. И такое бывает. Чистая ALSA используется мной для всего. У меня есть сторонний регулятор громкости - там столько регуляторов! Так весело их все пошевелить, а потом попытаться вернуть всё обратно! Собственно, поэтому у меня алса и хрипела...

Pulse у меня используется на ноуте, где Intel HDA без вариантов. 99% времени алса, а пульса - для скринкастов. На десктопе-то Audigy, и можно записывать Output. На ноуте - только пульсой.

Звук передаю по сети с помощью VLC. Что там внутри - icecast или NAS - понятия не имею.

ZenitharChampion ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.