Потоковая трансляция звука из Linux
Добрый день!
Возникла необходимость настроить потоковое вещание звука из Linux. Есть два компьютера в одной локальной сети. На одном стоит Ubuntu 19.10, на другом Windows 10. Мне нужно все звуки на компьютере с Ubuntu 19.10 выводить вместо его колонок в сеть. То есть я хотел бы запустив на компе с Windows 10 что-то типа VLC-плеера, указав в VLC-плеере IP-адрес компа с Ubuntu, слышать абсолютно все звуки компа с Ubuntu (и системные тоже) в VLC-плеере запущенном на компе с Windows 10.
Мне казалось, что эта задача на сегодня не такая уж сложная, но перерыл кучу инфы в Интернете и не нашёл решения. Есть инфа, как через PulseAudio что-то подобное реализовать, но там речь идёт о двух компьютерах с Linux и на обоих должна PulseAudio стоять и быть соответствующим образом настроена. Мне бы хотелось в идеале получить просто поток, чтобы с любого устройства для прослушивания потокового аудио его можно было услышать введя IP-адрес компа с Ubuntu.
Ещё нашёл инфу, как средствами VLC-плеера, который установлен на обоих компах, реализовать потоковое вещание:
Это решение мне бы подошло, но у VLC-плеера, который стоит у меня на компе с Ubuntu, у него нет «Режим захвата» – DirectShow и «Название аудиоустройства» — Line 1 (Virtual Audio Cable). По этому мне не удалось такое реализовать, как рассказано в статье по ссылке выше. Может кто знает, может там для Linux версий нужно какие то пакеты дополнительные ставить, или плагины какие для VLC?
Может кто подсказать что-либо по этому вопросу, как такое можно реализовать? Может есть программы под Linux какие либо для этого, помимо средств самой PulseAudio? Или может как-то VLC-плеер поднастроить и его средствами реализовать, как сказано в статье по ссылке выше?
Потоковая передача звука с телефона на компьютер
Добрый день Имеется телефон с установленным android 4.2.2. Требуется настроить потоковую передачу.
Трансляция звука в интернет
Стоит задача, транслировать звук в интернет. Обрадовался, когда нашёл ЭТУ статью, т.к там, то, что.
Трансляция звука на телефон
Здравствуйте, поломилось гнездо наушников на ноуте. Есть ли возможность транслировать звук на.
Трансляция видео и звука
Здравствуйте Вам! Необходимо реализовать трансляцию видео и звука с 1 машины на другую. Все это.
Решение
Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.
Linux mint: нет звука после обновления
Нет звука после обновления, как исправить ошибку.Слепых тут нет, пишите обычным шрифтом .
Драйвера звука для Asus Maximus III Formula под LinuX Ubunta 11.10
Не получается установить драйвер звука. Мать — Asus Maximus III Formula ОС — LinuX Ubunta.
Нет звука в kali linux — стоит на virtual box. Нужно драйвера ставить или что?
Нет звука в kali linux — стоит на virtual box. Нужно драйвера ставить или что?
Потоковая обработка
В общем есть 3 потока, в них идет выполнение проверки и вывода данных на экран (в Memo). В.
Трансляция звука с микрофона в сеть
Есть ли какие-то решения, позволяющие получить real-time звучание в топологии «один-ко-многим», без мультикаста. Я пробовал icecast2/darkice, ffmpeg/rtp, ffmpeg/ffserver. Но всё это меня не устроило. Какое-то глюкалово, в целом.
Кто решал, подскажите?
Тебя web интересует?
Я тут давеча обещался кому-то написать реалтайм стримилку после переезда на новое ПМЖ. Но я еще не переехал. Так что подписался на тред. Может оно уже есть. Хотя я так же не могу обещать ну прям ваще рилтайм — это зависит от минимальных размеров буфера и полупериода для конкретных частот дискретизаций при конкретном качестве сети (сопли, канал, хопы) и при конкретной звуковой карты. Т.е. поставить маленький буфер можно, но будет ловить хрюны (XRUN) по вот всем этим причинам.
Меня интересует любое решение, в котором клиенты смогут забирать потоки через vlc/ffplay и аналоги.
Ну меня устраивает mp3/8k, ffmpeg отлично умеет забирать данные с alsa/hw0,0 и кодировать их в этот формат. Но вот что с этим делать дальше 🙂
ffserver пробовал? А, вижу, пробовал. И чем не устроило?
Слушай, с ним вообще какая-то шляпа. Я так понял, что он фиды в виде файлов сохраняет и это нихрена не real-time, т.к. он их раздаёт потом по HTTP.
Именно. Только это не простой файл, а типа кольцевой буфер. И он гоняет по нему всех приконнекченых клиентов. И там такая трабла, что если у какого-то клиента сеть гавно, то буфер «растягивается» ради самого тормозного клиента. В противном случае, если клиента «подгонять» в позиции к самому быстрому клиенту, то этот медленный клиент будет получать сегментированные данные. В итоге будут хрюны, или вообще клиент не сможет распаковать мп3. Об этом я и писал в сообщении выше-выше.
А теперь еще добавь сюда проблему что тактовые генераторы на разных машинах имеют не идентичную частоту колебания.
Так это, чего делать-то?
Уменьшить размер файла-буфера. Но! Я вообще-то не в курсе можно ли так наконфижить ффсервер чтобы он клал на самого медленного клиента.
Там 16K минимально. Ну я ставил столько, всё-равно херня какая-то. Стриминг в фида отрубаешь, а клиент что-то получает потом ещё по кругу 🙂
Ну вот и приплыли. ПОтому что оно не реалтаймовое изначально.
Пошурши в пульсаудио. Народ говорил есть истории успеха.
Вот что пока получается:
1) Раздача микрофона
Задержка около 1.5 секунды.
Но есть одна проблема — клиент (или сервер) не понимает, что был обрыв вещания и соответственно при его восстановлении на клиенте звука уже нет.
В общем, кому интересно, обёртка для ffplay, позволяющая определять нештатные дисконнекты:
Сетевой аудиосервер на основе pulseaudio в ubuntu
Настройка клиента
Настройка клиента тривиальна. Ставим утилиту, которая сидит в трее и помогает быстро переключаться между серверами pulseaudio.
sudo apt-get install pulseaudio padevchooser
Далее запускаем её:
Меню — Sound & Video — PulseAudio Device Chooser
Добавим в автозапуск. Для этого щёлкаем на иконку в трее и выбираем пункт Preferences… Отмечаем флажок «Start applet on session login».
После настройки сервера его можно выбрать в меню.
Теперь любая программа, использующая pulseaudio для вывода звука, может воспроизводить звук через аудиокарту удалённого компьютера.
Настройка сервера
1. Ставим Avahi, если не стоит:
sudo apt-get install avahi-daemon
2. Нам необходим pulseaudio и модуль, автоматически размещающий данные о наличии аудиосервера в локальной сети через службу Avahi.
sudo apt-get install pulseaudio pulseaudio-module-zeroconf
3. Создадим группу audio, участники которой имеют право доступа к аудиоустройствам:
sudo groupadd audio
4. Добавим себя в эту группу:
sudo gpasswd -a user audio
5. Добавим себя ещё и в эту группу, для доступа к pulseaudio:
sudo gpasswd -a user pulse-access
6. Поставим alsa.
sudo apt-get install alsa libasound2-plugins
7. Убедимся, что вам доступны аудиоустройства. Эта комманда покажет список доступных устройств в системе.
aplay -l
8. Подправим конфиг pulseaudio:
sudo nano /etc/pulse/default.pa
У меня пропадал сигнал на alsa устройстве при одновременно включенных module-native-protocol-tcp и module-udev-detect (предположительно это баг или мои кривые руки), поэтому я убрал автоопределение звуковых карт через udev, удалив эту часть конфигурационного файла
### Automatically load driver modules depending on the hardware available
.ifexists module-udev-detect.so
load-module module-udev-detect
.else
### Alternatively use the static hardware detection module (for systems that
### lack udev support)
load-module module-detect
.endif
и раскомменторовав это
### Load audio drivers statically (it’s probably better to not load
### these drivers manually, but instead use module-hal-detect —
### see below — for doing this automatically)
load-module module-alsa-sink
Для доступа из сети к аудиосерверу раскомментируете это и добавьте параметры загрузки модуля module-native-protocol-tcp:
### Network access (may be configured with paprefs, so leave this commented
### here if you plan to use paprefs)
load-module module-esound-protocol-tcp auth-ip-acl=127.0.0.1;192.168.0.0/16
load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1;192.168.0.0/16
load-module module-zeroconf-publish
где 127.0.0.1;192.168.0.0/16 — это сети, в которых будет доступен наш сервер. Так же не забудьте открыть доступ к pulseaudio в iptables.
9. Теперь нужно перезагрузить сервер. Если все прошло успешно — то у наш сервер должен появится в PulseAudio Device Chooser у клиента
Запустить аудиосервер можно, запустив следующую комманду от имени пользователя:
pulseaudio -D
Остановить так:
pulseaudio -k
Звуковой сервер Pulseaudio — передаем по сети
Было бы очень удобно, если бы дома была распределенная звуковая система, одна пара колонок на всю квартиру, а всякие ПК и ноутбуки могли на нее отправлять свои звуковые потоки, так можно избавится от кучи проводов идущих от ПК, это добавило бы мобильности к ноутбуку, уже не пришлось носить по дому мобильные колонки для ноутбука, т.к зачастую ноутбуки оборудованы отвратительным звуком. А еще можно было бы усложнить и поместить по паре акустических систем в разных комнатах и при переходе между комнатами переключать звук между ними, но как этого достичь? Ответ лежит на поверхности — уже давно в Ubuntu и Debian и других дистрибутивах установлен звуковой сервер Pulseaudio, в его функции заложена такая замечательная возможность передачи звука через локальную сеть.
- ПК который будет выполнять роль звукового сервера
- Звуковые карты для каждой акустической системы
В качестве ПК прекрасно подойдет домашний сервер с утановленной ОС Debian.
По умолчанию пакет не идет в минимальной установке Debian, поэтому производим его установку:
Стоит отметить что Pulseaudio может работать как в служба пользователя так и как системная служба.
В первом режиме служба не запускается пока пользователь не зайдет в систему, во втором служба запущена всегда.
Pulseaudio — переводим в системный режим
Переходим в каталог
Там находится четыре файла
client.conf — настройки для клиентской части звукового сервера.
daemon.conf — настройки Pulseaudio в режиме службы
default.pa — настройка модулей в режиме пользователя
system.pa — настрока модулей в системном режиме
В звуковом сервере нас интересуют файлы daemon.conf и system.pa
Открыаем файл daemon.conf
#Включаем режим сервиса
В файл system.pa добавляем:
запускаем звуковой сервер Pulseaudio, напоминая что настройка ведется из под пользователя root:
Клиенты для Pulseaudio
Проверим проигрывание звука через клиент, в качестве клиента выступает ПК с установленной убунту 16.04
Устанавливаю на клиенте pavucontrol:
Запускаем pavucontrol из системного меню
В командной строке вводим команду на создание туннеля к звуковому серверу:
в списке устройств pavucontrol появится еще одно устройство которое соответствует нашему туннелю, если его выбрать, то должен звук пойти через него.
Для постоянного подключения добавляем строку
Для управления громкостью подключаемся к удаленному серверу
Тут же можно переключать звуковые карты для каждого звукового потока
Теперь нам необходимо создать сервис для pulseaudio
Создаем файл:
Открываем и добавляем строки:
nano / etc / systemd / system / pulseaudio.service
[ Unit ]Description =PulseAudio Daemon [ Install ]
WantedBy =multi-user.target [ Service ]
Type =simple
PrivateTmp = true
ExecStart = / usr / bin / pulseaudio —system
Перегружаем службы, добавляем в автозагрузку и запускаем:
service pulseaudio status
● pulseaudio.service — PulseAudio Daemon
Loaded: loaded ( / etc / systemd / system / pulseaudio.service; enabled; vendor preset: enabled )
Active: active ( running ) since Mon 2018 -03- 12 21 : 59 : 48 MSK; 2s ago
Main PID: 1807 ( pulseaudio )
Tasks: 4 ( limit: 4915 )
CGroup: / system.slice / pulseaudio.service
└─ 1807 / usr / bin / pulseaudio —system —realtime
мар 12 21 : 59 : 48 router pulseaudio [ 1807 ] : N: [ pulseaudio ] main.c: Running in system mode, forcibly disabling SHM mode.
мар 12 21 : 59 : 48 router pulseaudio [ 1807 ] : N: [ pulseaudio ] main.c: Running in system mode, forcibly disabling exit idle time.
мар 12 21 : 59 : 48 router pulseaudio [ 1807 ] : W: [ pulseaudio ] main.c: OK, so you are running PA in system mode. Please make sure that you actuall
мар 12 21 : 59 : 48 router pulseaudio [ 1807 ] : W: [ pulseaudio ] main.c: Please read http: // www.freedesktop.org / wiki / Software / PulseAudio / Documentati
При каждом перезапуске сервера туннель пропадает на клиенте, поэтому перезапускаем pulseaudio на клиенте, должен появиться туннель в списке устройств в pavucontrol
В процессе настройки столкнулся с особенностью — по умолчанию после перезагрузки звук отключен.
Проблема решилась установки пакета alsa-utils и сохранения настроек с помощью команды alsactl store
Управлять мастер-уровнем можно с помощью команды alsamixer
P.S. После каждой перезагрузки сервера необходимо перезапускать Pulseaudio на клиенте или просто отправлять его в перезагрузку.
Добавить комментарий Отменить ответ
Для отправки комментария вам необходимо авторизоваться.
Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.