История

По свежим следам - на днях я таки решил завернуть звук с одного компа на другой.

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

И есть другой комп - на нём крутится виртуалка с рабочим окружением и игрушки. Ну и виртуалка с программизмами, когда мне надо попрограммировать конкретно под линуксом. Например, по причине того, что разработка перлового барахла на линуксе происходит с бОльшим комфортом, чем под вендой.

Итак, что такого во втором компе?

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

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

Можно купить KVM-свич и лёгким манием руки переключаться между компами. Это тоже вариант. Но у меня уже был свич, опыт от этого не то чтобы приятный. Особенно, если на одном компе у тебя висят 2 монитора, а на другом - всего один.

Есть ещё один вариант - подключиться по rdp к другому компу и работать через так. У меня это не получилось сделать по той причине, что RDP почему-то пытался сделать что-то странное - то есть он идеально работает, если учётная запись майкрософтовская, но если она локальная, то ошибка авторизации. У меня локальная учётка, я старомоден.

VNC в принципе работает, но понятное дело, что оно работает медленно. Во всяком случае по сравнению с rdp-то уж точно. А звук vnc не захватывает - он для другого.

Мне нужен звук, видео не столь принципиально.

Как его передать на другой комп? По сети, конечно. Интернеты подсказали такую программу как butt - broadcast using this tool. Спонсируется одним из сервисом по предоставлению radiostation as a service.

Помимо захвата аудио с микрофона эта штука умеет хватать и устройства воспроизведения. Нам это и нужно. Программа хватает звук с выходного устройства и отправляет его на icecast-сервер. К этому серверу мы цепляемся через какой-нибудь vlc и получаем звук на удалённой тачке. То что нам надо было.

В моём сетапе butt запущен на тачке с видюшкой, а icecast и vlc на рабочей лошадке.

В чём подвох?

Да, он есть. Звук отстаёт примерно на 3 секунды. Мне удалось сократить это отставание. Во-первых, сокращением размера буфера в vlc (100мс для воспроизведения "блым-с" от очередной icq или от телеги вполне терпимо, по сути - это в основном и есть цель всех этих совокуплений). Во-вторых, отключением burst-а в сервере icecast, кроме того, и размер буфера в нём тоже имеет смысл подрезать. От размера буфера зависит задержка, напрямую.

В итоге я остановился на задержке примерно в одну секунду.

Epilogue

Не сказать, что такой сетап меня полностью устраивает, но он вроде как работает. В дополнении наверно имеет смысл отметить, что я таки пользую vnc для управления первым компом, когда работает второй комп. Но я его запускаю "на 5 минут", а звук мне нужен постоянно, так что идея с бродкаст сервером имеет право на жизнь.

Как альтернативный вариант - loop-кабель из любого выхода на втором компе во вход на первом. Задержки при этом должны сократиться в разы. Но пока что у меня такого кабеля нету, поэтому у нас butt.

Наверняка, сетап со временем поменяется.

Next Post