Использование Pi для потоковой передачи всего аудио с моего компьютера на стерео


37

Моя проблема довольно проста, но я не смог найти удовлетворительное решение.

По сути, я хочу, чтобы мой Raspberry Pi был подключен к моей стереосистеме, а затем воспроизводил любой аудиовыход с моего компьютера через Wi-Fi на PI.

Есть ли способ сделать это легко, без использования специальных игроков? Т.е. есть ли у ПК возможность просто распознать Pi как «динамики»?

Я хотел бы услышать каждый звук на моем компьютере на стерео, т.е. Игры, музыка, системные звуки, уведомления, видео на YouTube и т. Д.

Большое спасибо!

Ответы:


24

Если вы используете Linux на своем ПК, это вполне выполнимо, если вы устанавливаете и правильно настраиваете PulseAudio как на Raspberry Pi, так и на вашем ПК с Linux.

Если ваш компьютер работает под управлением Windows ... Пропустите до конца поста (который я только что обновил).

Другой вариант - использовать PulseAudio в качестве приемника / клиента AirPlay, но, насколько я знаю, это невозможно.

Но, если вы используете Linux, то читайте дальше:

Примечание № 1: PulseAudio через WiFi будет работать без ошибок на некоторых маршрутизаторах, но не будет работать на других.

Примечание № 2: Следующие инструкции взяты из разговора, который несколько пользователей Raspberry Pi (включая меня) провели на эту тему .

1) Установите PulseAudio на свой Raspberry Pi

sudo apt-get install pulseaudio pulseaudio-module-zeroconf avahi-daemon

2) Убедитесь, что PulseAudio запускается автоматически:

sudo nano /etc/default/pulseaudio

Найдите запись PULSEAUDIO_SYSTEM_START и измените ее на 1, чтобы она выглядела как PULSEAUDIO_SYSTEM_START = 1

3) Настройте PulseAudio для работы по сети:

sudo nano /etc/pulse/system.pa

Добавьте следующие строки:

load-module module-native-protocol-tcp auth-ip-acl = 127.0.0.1; 192.168.1.0/24

модуль загрузки zeroconf-publish

4) Перезагрузите Raspberry Pi:

sudo reboot

5) Теперь на вашем компьютере с Linux установите paprefs . Если ваш дистрибутив Linux основан на Debian (например, Ubuntu, Mint и т. Д.), Вы можете использовать эту команду:

sudo apt-get install paprefs

6) Запуск paprefs и под Network Access позволяет сделать звуковые устройства обнаруживаемого PulseAudio сетей доступны локально

7) В разделе « Сетевой сервер» включите « Включить сетевой доступ к локальным звуковым устройствам» и отметьте обе опции (возможно, в этом нет необходимости, если вы также не хотите использовать свой Linux-сервер в качестве сервера / приемника).

8) Под Multicas / RTP включите обе опции

9) Проверьте доступные устройства вывода (используйте ваше приложение Linux distro Audio / Mixer). Ваш Raspberry Pi появится (должен) в списке; выберите его, и все, что воспроизводится на вашем компьютере с Linux, будет перенаправлено на Raspberry Pi.

Если ваш Raspberry Pi по-прежнему недоступен, попробуйте перезагрузить компьютер с Linux.


ОБНОВЛЕНИЕ: Отправка всего аудио из Windows на Raspberry Pi

Вам все равно нужно будет следовать предыдущим инструкциям для установки и настройки PulseAudio на вашем Raspberry Pi.

Теперь это то, что вам нужно сделать для Windows:

1) Загрузите последнюю версию LineInCode

2) Распакуйте загруженный файл

2) Загрузите PuTTY's Plink и поместите файл plink.exe в ту же папку, где вы извлекли LineInCode

3) Откройте Блокнот и вставьте следующий код:

linco.exe -B 16 -C 2 -R 44100 | plink 192.168.1.104 -l pi -pw raspberry "cat - | pacat --server 127.0.0.1 --playback"

Конечно, измените IP-адрес ( 192.168.1.104 ), имя пользователя ( pi ) и пароль ( raspberry ) в соответствии с вашими настройками.

4) Сохраните файл как audio2rpi.bat в той же папке, где вы извлекли LineInCode

Теперь, когда вы хотите передавать потоковое аудио с ПК с Windows на Raspberry Pi, просто дважды щелкните файл audio2rpi.bat.


Обратите внимание на эти инструкции: http://ubuntuforums.org/showthread.php?t=1121603


Спасибо, я попробую! можно использовать pulseaudio для потоковой передачи со смартфона? Спасибо
Джером

@ Джером Это должен быть еще один вопрос, который вы задаете на этом сайте.
syb0rg

Какую ОС вы используете на своем Пи? Я запускаю свежую установку Raspbmc, и, следуя этим инструкциям, устройство, по-видимому, перебило устройство. Хорошо, что переформатировать так просто ...
Гиллонба

Я пробовал эти инструкции в нескольких выпусках Raspbian.
xfx

Интересно узнать, какой IP-адрес мы вводим при загрузке модуля конфигурации TCP по умолчанию. Я испытываю немного затруднительное воспроизведение по беспроводной связи, но безупречно по сравнению с проводной, что интересно, поскольку nethogsотчеты используются только со скоростью 13 КБ / с.
M1ke

4

Я написал небольшую запись в блоге о том, как я получил эту работу с PulseAudio на ПК и Raspbmc на Raspberry Pi - используя потоковую передачу DLNA / UPnP. Это здесь: http://westmarch.sjsoft.com/2014/04/streaming-audio-linux-to-raspbmc/ . Надеюсь, это поможет. Существует небольшая задержка при буферизации XBMC - так что, вероятно, это не будет хорошо для игр или чего-то еще, но это хорошо работает для музыки.

Это довольно длинный набор инструкций - отсюда ссылка здесь, но вот краткое описание опции, которая работала для меня с использованием DLNA / UPnP:

  • apt-get установить rygel
  • Open PulseAudio Preferences и под Network Server клеща сделать местные звуковые устройства доступны в качестве DLNA / UPnP Media Server и создать отдельное звуковое устройство для DLNA / UPnP потокового
  • Отредактируйте конфигурацию Rygel в /etc/rygel.confили $HOME/.config/rygel.confи настройте ее для публикации с использованием GstLaunch(см. Конфигурацию ниже)
  • Перейдите в диспетчер файлов XBMC, найдите новый источник, выберите « Устройства UPnP» , и вы должны увидеть Gst Launch в качестве опции.
  • Тогда вы сможете указать XBMC воспроизводить звук из этого потока.

Вот конфигурация для Rygel, чтобы использовать GstLaunch:

[GstLaunch]
enabled=true
launch-items=mypulseaudiosink
mypulseaudiosink-title=Audio on @HOSTNAME@
mypulseaudiosink-mime=audio/flac
mypulseaudiosink-launch=pulsesrc device=upnp.monitor ! flacenc

Не могли бы вы включить в свой блог упрощенный набор инструкций на случай, если с ним что-нибудь случится в будущем?
Фред

4

Хотел сделать это сам из Windows7 -> RaspberryPi (OpenElec) и наткнулся на ваш вопрос. После некоторых исследований я все еще не нашел удовлетворительного решения для OpenElec, но у меня было достаточно информации, чтобы найти очень простое и действительно работающее с высоким качеством и с задержкой всего ~ 1 сек!

Тебе нужно:

  1. VLC Media Player (я использовал v2.1.3 Rincewind на моей Win7 x64)
  2. Звуковая карта, которая обеспечивает записывающее устройство «Stereo Mix» (мне повезло иметь один на борту)
  3. Raspberry Pi (я использую OpenElec 4.0.5, хотя он должен работать для XBMC в целом)

Примечание. Если у вас нет звуковой карты, которая поддерживает это, вы можете попробовать использовать VAC ( http://www.virtualaudiocable.net/ ), хотя я вам и говорю, что он не работает должным образом для меня, плохое качество звука и буфер проблемы на всем пути ... но возможно это только я.

Шаг 1)

Создайте пакетный файл, который запускает потоковую службу VLC http в фоновом режиме и записывает звук с записывающего устройства «Stereo Mix»:

@echo off

set vlc="C:\Program Files (x86)\VideoLAN\VLC\vlc.exe"
start "" %vlc% --qt-start-minimized dshow:// :dshow-vdev=none :dshow-adev="Stereo Mix (Realtek High Defini" :live-caching=10 :sout=#transcode{vcodec=none,acodec=vorb,ab=500,channels=2,samplerate=44100}:http{dst=:8080/audiostream.ogg} :sout-keep

Заметки:

  1. Возможно, вам придется изменить записывающее устройство, если у вас другое имя, я использовал Audacity ( http://audacity.sourceforge.net/ ), чтобы проверить имена моих устройств захвата, так как у меня уже было установлено
  2. Да, битрейт аудио очень высокий (максимальный для Vorbis), но чем выше битрейт, тем быстрее заполняется буфер и, следовательно, короче задержка :-) (вы не можете изменить чистоту размера буфера для музыки на XBMC, я использую 5 МБ буфер по моему в общем)
  3. Я попробовал FLAC, MP3 и даже WAV, и, кроме того, что только MP3 и Vorbis работали вообще с моим Pi, у меня было самое быстрое время загрузки на Pi (в основном мгновенно) и наименьшая задержка с Vorbis

Шаг 2)

Перейдите к

\\ rapsberrypi \ Userdata \ плейлистам \ музыка

и создайте файл .strm с именем по вашему выбору (я назвал мой VLC.strm), который содержит простую ссылку на ваш поток VLC: (измените IP на IP вашего ПК: p)

http://192.168.0.1:8080/audiostream.ogg

Шаг 3)

Теперь вы можете либо установить аудиоустройство, которое захватывается «Stereo Mix», по умолчанию в настройках звука Windows, либо открыть проигрыватель, такой как VLC, и вручную использовать устройство не по умолчанию для воспроизведения музыки на вашем RaspberryPi:

Откройте ваш VLC (в дополнение к тому, который свернут в вашем трее, который передает ваш «Stereo Mix») и выполните следующие шаги:

  1. Сервис -> Настройки
  2. аудио
  3. Модуль вывода: «Выход аудио WaveOut»
  4. Устройство: - ваше (аналоговое) устройство, которое захватывается записывающим устройством "Stereo Mix" -
  5. Сохранить
  6. Перезапустите VLC
  7. Играть музыку

Шаг 4)

На вашем RaspberryPi:

  1. В XBMC перейдите в Музыка -> Плейлисты
  2. Выберите VLC.strm (или как вы его назвали)
  3. НАСЛАЖДАЙТЕСЬ МУЗЫКОЙ!

Поиск проблемы

Если у вас возникли проблемы с запуском или записью «Stereo Mix», сначала поиграйте в Windows, например, записав его с помощью Audacity и попробовав некоторые предложения на форуме, такие как

этот:

http://www.howtogeek.com/howto/39532/how-to-enable-stereo-mix-in-windows-7-to-record-audio/

или этот:

http://www.sevenforums.com/sound-audio/104497-stereo-mix-enabled-but-no-sound.html

Хорошо, хватит печатать на сегодня, надеюсь, это кому-нибудь пригодится!

BR, Deads


3

Описанное здесь решение "LineInCode" работает, но звук по Wi-Fi ужасный. VLC-решение, представленное выше, тоже работает, но требует много нажатий. Я объединил оба файла в пакетный файл, который запустил бы VLC как стример на моем ПК и mpg123 как «listner» на PI. Это работает как шарм для меня. Вам нужно иметь Plik в той же папке (мы используем его как ssh-клиент). С сегодняшнего дня я использую этот скрипт для прослушивания mp3-файлов на моем ноутбуке, в то время как вывод звука - это пи:

            REM This is fischteich's start_sound.bat v 0.3
            @echo off

            set vlc="C:\Program Files (x86)\VideoLAN\VLC\vlc.exe"
            set ssh-login=YOURLOGIN
            set ssh-pw=YOURPW
            set this-machine-ip=192.168.XXX.XXX
            set pi-ip=192.168.XXX.XXX
            set use-port=5001

            set start-string= --sout-keep --sout=#transcode{vcodec=none,acodec=mp3,ab=192,channels=2,samplerate=44100}:http{mux=mp3,dst=:%use-port%/}

            REM Start VLC ready for files to play
            @start "vlc" %vlc% %start-string%
            REM Start playback via mpg123 on the Pi!
            plink %pi-ip% -l %ssh-login% -pw %ssh-pw% "mpg123 http://%this-machine-ip%:%use-port%"

1

Одним из способов достижения этого является установка ОС Volumio на Raspberry PI ( https://volumio.org ), следуя приведенным там инструкциям. Этот дистрибутив включает в себя приемник ShairPort, который позволяет устройствам Apple передавать потоковое аудио на него. В качестве альтернативы, я думаю, вы можете просто установить Shairport в дистрибутив по вашему выбору.

На вашем ПК с Windows установите tuneblade ( http://tuneblade.com ), бесплатная версия которого позволяет вам транслировать аудио с вашего компьютера на ShairPort на вашем Raspberry Pi. Он также хорошо работает с VLC, чтобы устранить задержку звука при просмотре видео и т. Д.

Это работает для меня - я надеюсь, что это может работать и для вас.


Добро пожаловать в Raspberry Pi Stack Exchange! Хотя это может теоретически ответить на вопрос, было бы предпочтительным включить здесь основные части ответа и предоставить ссылку для справки.
RPiAwesomeness

Tuneblade также работает с Pi MusicBox
ввод

0

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


-1

Вы пробовали простую потоковую передачу звука через Bluetooth с помощью адаптера A2DP, подключенного к вашей стереосистеме? Использование Raspberry Pi для этого кажется излишним, хотя я допущу создание устройства потокового аудио Bluetooth A2DP с Raspberry Pi и дешевым адаптером Bluetooth Bluetooth.


Хорошо, что вы создали Raspi, который может передавать A2DP, но ваш ответ мне не поможет, поэтому этот ответ не является ответом.
Марк Бут

Пи не нужно. Соедините ваш ПК с приемником Bluetooth и отправьте soound прямо с вашего компьютера на стерол. Приемник Bluetooth должен отображаться как звук на вашем компьютере.
Кристофер Биггс
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.