- Трансляция звука с микрофона в сеть
- Транслировать поток с микрофона в сеть
- AVReg 5: захват и запись звука с микрофонов и USB-камер.
- Преамбула.
- Суть решения
- Записывающие ALSA-устройства.
- Захват аудио и трансляция по сети.
- Настройки аудио-трансляции (передача)
- Gstreamer
- netcat
- Сетевой аудиосервер на основе pulseaudio в ubuntu
- Настройка клиента
- Настройка сервера
- Потоковая трансляция звука из Linux
- Решение
Трансляция звука с микрофона в сеть
Есть ли какие-то решения, позволяющие получить 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) Раздача микрофона
2) Серверная часть
Задержка около 1.5 секунды.
Но есть одна проблема — клиент (или сервер) не понимает, что был обрыв вещания и соответственно при его восстановлении на клиенте звука уже нет.
В общем, кому интересно, обёртка для ffplay, позволяющая определять нештатные дисконнекты:
Источник
Транслировать поток с микрофона в сеть
Имеется: веб-камера с микрофоном, роутер D-Link DIR-320 с прошивкой OpenWRT. В прошивке имеются драйверы на звук, когда подключаю вебку к роутеру, появляются нужные устройства, в частности /dev/dsp, и судя по всему корректно работают: если набрать cat /dev/dsp в консоль сыпется шум.
Вопрос: каким образом можно транслировать звук с микрофона по сети? Всякие icecast, ffserver и vlc не подходят, т.к. слишком тяжелые, и в прошивку не влезут. Нужно тупо гнать поток с устройства в сеть, без перекодировки.
Подскажите, чем это можно сделать. Возможно есть какой-то легковесный софт, или еще как.
подключи флешку и сделай её корнем, и тогда сможешь ставить всё что влезет
Возможно есть какой-то легковесный софт, или еще как.
Флешку подключить не вариант, т.к. единственный порт на роутере уже занят веб-камерой, а хаба под рукой нет.
А вот вариант с nc интересен, попробую, спасибо.
Для подобных вещей есть PulseAudio. Но в твоём случае лучше транслировать через nc, хотя не сказал бы, что это эффективно.
Решил ради интереса вкомпилить в прошивку PulseAudio, и на мое удивление размер прошивки получился приемлемым, т.е. у меня получилось засунуть в роутер PulseAudio!
Теперь вопрос — что с ним дальше делать, чтобы оно передавало звук с микрофона в сеть? 🙂
Если вопрос глупый, прошу не бить, а ткнуть носом в мануал.
> Теперь вопрос — что с ним дальше делать, чтобы оно передавало звук с микрофона в сеть? 🙂
> Ээ. сконфигурить?
Ну это понятно. В сети есть мануалы, как заставить передавать звук с компа на pulse-сервер, т.е. чтобы воспроизводить звук через роутер. Мне же нужно наоборот снимать звук с микрофона и передавать во вне.
ну а так в чём разница?
роутер — тот же комп, передавай с него звук куда хочешь и там уже транслируй через vlc, например
Источник
AVReg 5: захват и запись звука с микрофонов и USB-камер.
Преамбула.
Ниже описывается решение, позволяющее обеспечить захват и запись аналогового аудио:
Несмотря на то что это решение по сути „костыль”, оно достаточно надёжное и очень гибкое, т.к. позволяет записывать аудио с микрофона физически подключенного не только к локальному, но и к любому компьютеру или Wi-Fi роутеру в сети, а также программно обрабатывать звук (громкость, нормализация и т.п.).
Суть решения
AVReg 5 (демон avregd_5.x) не умеет напрямую работать с локальными аудио-устройствами (= ALSA-устройствами, в linux), но он может принимать по http/tcp аудиопотоки в форматах pcm, g.726 и AAC(rtp внутри http).
Поэтому, нужно просто найти набор програм, которые обеспечат захват аудио с ALSA-аудиоустройств и трансляцию аудиопотока в понятном avregd формату по протоколу tcp.
Записывающие ALSA-устройства.
Первая ваша задача — определить alsa-имя для ссылки на микрофон или линейный вход, которое (имя) представляет собой строку «hw:
Универсальных советов не бывает, поэтому приведём конкретный пример, чтобы была понятна логика действий.
Для этого мы будем использовать информацию из /proc/asound/ , как наиболее достоверную, т.к. она формируется непосредственно alsa-драйверами.
Отсюда ясно что можно подставлять в значение
Теперь осталось определится с
Абсолютно ясно стало только с USB-камерой, т.к. у неё только один микрофон, и alsa-имя однозначно получается как « hw:1,0 ».
Со встроенной ALC1200 сложнее, у неё аз 3 порта ввода (записи): 2,1 и 0 (вторая колонка цифр внутри квадратных скобок).
Анализируем вторую колонку цифр. Сразу отбросим порт 01 т.к. он цифровой «ALC1200 Digital» (к нему микрофон не прицепишь), а нам нужен аналоговый вход. Остались 02 ( hw:0,2 ) и 00 ( hw:0,0 ). Соответствие физическим разъёмам и наименованием регулятором громкости в alsamixer мы определили уже опытным путём.
Проверяем, сначала записываем а затем проигрываем звук с USB-камеры:
, а теперь с микрофона, подключенного к звуковой плате:
Настраивайте громкость тем чем привыкли или alsamixer (запускать в терминале).
Захват аудио и трансляция по сети.
Настройки аудио-трансляции (передача)
Gstreamer
Если у вас установлена графическая оболочка с Гномом (и видеопроигрывателем Totem), скорее всего все необходимые gstreamer компоненты уже установлены, если нет — выполните в терминале:
На компьютере, куда подключен микрофон (к звуковой плате и/или плате видеозахвата, поддерживаемая alsa) или установлена USB-камера:
netcat
Ниже приводим 2 рецепта с netcat-ом, т.к. пакетов мультимедийного фреймворка Gstreamer может и не быть для маршрутизаторов на OpenWRT/DD-WRT/etc.
установка классического (не openbsd!) netcat
Эта командой (см. ниже) будет запущен tcp сервер на интерфейсе с адресом АДРЕС на tcp-порту ПОРТ и который будет отдавать подключившемуся клиенту stdout-вывод команды КОМАНДА.
Источник
Сетевой аудиосервер на основе 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
Источник
Потоковая трансляция звука из 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). В.
Источник