Sử dụng Pi để truyền phát tất cả đầu ra âm thanh từ máy tính sang âm thanh nổi của tôi


37

Vấn đề của tôi khá đơn giản nhưng tôi đã không thể tìm ra giải pháp thỏa mãn.

Về cơ bản, tôi muốn Raspberry Pi của tôi được kết nối với âm thanh nổi của tôi và sau đó phát bất kỳ đầu ra âm thanh nào từ máy tính của tôi qua wifi đến PI.

Có cách nào để làm điều này dễ dàng, mà không phải sử dụng người chơi đặc biệt? Tức là có PC nào chỉ nhận ra Pi là "loa" không? '

Tôi muốn nghe mọi âm thanh trên PC của tôi trên âm thanh nổi, tức là. Chơi game, âm nhạc, âm thanh hệ thống, thông báo, video youtube, vv

Cảm ơn rất nhiều!

Câu trả lời:


24

Nếu bạn đang chạy Linux trên PC thì điều này hoàn toàn có thể thực hiện được, miễn là bạn cài đặt và định cấu hình đúng PulseAudio trên cả hai, Raspberry Pi và PC Linux của bạn.

Nếu PC của bạn đang chạy Windows ... Bỏ qua đến cuối bài (mà tôi vừa cập nhật).

Một lựa chọn khác là sử dụng PulseAudio làm máy thu / máy khách AirPlay, nhưng theo tôi biết, điều này là không thể.

Nhưng, nếu bạn đang sử dụng Linux, hãy đọc tiếp:

Lưu ý # 1: PulseAudio qua WiFi sẽ hoạt động hoàn hảo trên một số bộ định tuyến nhưng sẽ thất bại trên các bộ định tuyến khác.

Lưu ý # 2: Các hướng dẫn sau đây là từ một cuộc trò chuyện mà một số người dùng Raspberry Pi (bao gồm cả tôi) đã có về chủ đề này .

1) Cài đặt PulseAudio trên Raspberry Pi của bạn

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

2) Đảm bảo PulseAudio tự động khởi động:

sudo nano /etc/default/pulseaudio

Hãy tìm mục nhập PULSEAUDIO_SYIUS_START và thay đổi mục nhập thành 1 để trông giống như PULSEAUDIO_SYSTEM_START = 1

3) Định cấu hình PulseAudio để hoạt động qua mạng:

sudo nano /etc/pulse/system.pa

Thêm các dòng sau:

tải mô-đun mô-đun-giao thức-tcp auth-ip-acl = 127.0.0.1; 192.168.1.0/24

tải mô-đun mô-đun-zeroconf-xuất bản

4) Khởi động lại Raspberry Pi của bạn:

sudo reboot

5) Bây giờ, trên PC Linux của bạn, hãy cài đặt paprefs . Nếu bản phân phối Linux của bạn dựa trên Debian (chẳng hạn như Ubuntu, Mint, v.v.), bạn có thể sử dụng lệnh này:

sudo apt-get install paprefs

6) Chạy paprefs và trong Truy cập mạng cho phép Tạo các thiết bị âm thanh mạng PulseAudio có thể phát hiện được tại địa phương

7) Trong Máy chủ Mạng, bật Cho phép truy cập mạng vào các thiết bị âm thanh cục bộ và đánh dấu cả hai tùy chọn (Điều này có thể không cần thiết, trừ khi bạn cũng muốn sử dụng hộp Linux của mình làm máy chủ / chìm)

8) Trong Multicas / RTP cho phép cả hai tùy chọn

9) Kiểm tra các thiết bị đầu ra khả dụng của bạn (sử dụng Ứng dụng phân phối âm thanh / trộn Linux của bạn). Raspberry Pi của bạn sẽ (nên) xuất hiện được liệt kê; chọn nó và mọi thứ được phát trên hộp Linux của bạn sẽ được chuyển hướng đến Raspberry Pi.

Nếu Raspberry Pi của bạn vẫn không khả dụng, hãy thử khởi động lại PC Linux của bạn.


CẬP NHẬT: Gửi tất cả âm thanh từ Windows đến Raspberry Pi

Bạn vẫn sẽ cần phải làm theo các hướng dẫn trước để cài đặt và định cấu hình PulseAudio trên Raspberry Pi.

Bây giờ, đây là những gì bạn sẽ cần phải làm cho Windows:

1) Tải xuống phiên bản mới nhất của LineInCode

2) Giải nén tệp đã tải xuống

2) Tải xuống Plink của PuTTY và đặt tệp plink.exe vào cùng thư mục nơi bạn đã trích xuất LineInCode

3) Mở Notepad và dán đoạn mã sau:

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"

Tất nhiên, thay đổi địa chỉ IP ( 192.168.1.104 ), tên người dùng ( pi ) và mật khẩu ( mâm xôi ) để phù hợp với thiết lập của bạn.

4) Lưu tệp dưới dạng audio2rpi.bat trong cùng thư mục mà bạn đã trích xuất LineInCode

Bây giờ, bất cứ khi nào bạn muốn truyền phát âm thanh PC của Windows sang Raspberry Pi, chỉ cần nhấp đúp chuột vào tệp audio2rpi.bat.


Tín dụng cho các hướng dẫn này: http://ubuntuforums.org/showthread.php?t=1121603


Cảm ơn- tôi sẽ cho đi! Tôi có thể sử dụng pulseaudio để truyền phát từ điện thoại thông minh không? Cảm ơn
Jerome

@Jerome Đó phải là một câu hỏi khác mà bạn hỏi trên trang web này.
syb0rg

Hệ điều hành nào bạn đang chạy trên Pi của bạn? Tôi đang chạy một bản cài đặt mới của Raspbmc và làm theo các hướng dẫn này dường như đã làm hỏng thiết bị. Thật tốt là một định dạng lại rất dễ dàng ...
gillonba

Tôi đã thử các hướng dẫn này trên một số bản phát hành Raspbian.
xfx

Quan tâm để biết địa chỉ IP nào chúng tôi đang nhập trong quá trình tải mô-đun tcp cấu hình mặc định. Tôi đang trải nghiệm phát lại hơi trục trặc qua mạng không dây nhưng hoàn hảo qua mạng có dây, thú vị vì nethogscác báo cáo chỉ được sử dụng 13 KB / giây.
M1ke

4

Tôi đã viết một mục blog nhỏ về cách tôi làm việc này với PulseAudio trên PC và Raspbmc trên Raspberry Pi - sử dụng phát trực tuyến DLNA / UPnP. Nó ở đây: http://westmarch.sjsoft.com/2014/04/streaming-audio-linux-to-raspbmc/ . Mong rằng sẽ giúp. Có một chút độ trễ trong khi bộ đệm XBMC - vì vậy điều này có thể sẽ không tuyệt vời để chơi game hay bất cứ thứ gì, nhưng nó hoạt động độc đáo cho âm nhạc.

Đó là một bộ hướng dẫn khá dài - do đó liên kết ở đây, nhưng đây là tóm tắt về tùy chọn phù hợp với tôi, sử dụng DLNA / UPnP:

  • apt-get cài đặt rygel
  • Mở Tùy chọn PulseAudio và bên dưới Máy chủ Mạng tick Tạo các thiết bị âm thanh cục bộ khả dụng dưới dạng DLNA / UPnP Media ServerTạo thiết bị âm thanh riêng để truyền phát DLNA / UPnP
  • Chỉnh sửa cấu hình của Rygel trong /etc/rygel.confhoặc $HOME/.config/rygel.confvà định cấu hình để xuất bản bằng cách sử dụng GstLaunch(xem cấu hình bên dưới)
  • Chuyển đến Trình quản lý tệp XBMC của bạn, duyệt tìm nguồn mới, chọn Thiết bị UPnP và bạn sẽ thấy Gst Launch dưới dạng tùy chọn
  • Sau đó, bạn có thể yêu cầu XBMC phát âm thanh từ luồng đó

Đây là cấu hình để Rygel sử dụng GstLaunch:

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

Bạn có thể bao gồm một bộ hướng dẫn đơn giản hóa từ bài đăng trên blog của bạn trong trường hợp điều gì đó xảy ra với nó trong tương lai?
Fred

4

Muốn tự mình làm điều này từ Windows7 -> RaspberryPi (OpenElec) và vấp phải câu hỏi của bạn. Sau một số nghiên cứu, tôi vẫn không tìm thấy giải pháp thỏa mãn cho OpenElec nhưng có đủ thông tin để đưa ra một giải pháp rất đơn giản và thực sự hoạt động với chất lượng cao và chỉ chậm khoảng 1 giây!

Bạn cần:

  1. VLC Media Player (Tôi đã sử dụng v2.1.3 Rincewind trên Win7 x64 của tôi)
  2. Một soundcard cung cấp thiết bị ghi âm "Stereo Mix" (Tôi đã may mắn có một thiết bị trên máy bay)
  3. Một Raspberry Pi (Tôi sử dụng OpenElec 4.0.5, mặc dù nó nên hoạt động cho XBMC nói chung)

Lưu ý: Nếu bạn không có soundcard hỗ trợ điều này, bạn có thể thử sử dụng VAC ( http://www.virtualaudiocable.net/ ), mặc dù tôi nói với bạn rằng nó không hoạt động đúng với tôi, chất lượng âm thanh và bộ đệm kém vấn đề tất cả các cách ... nhưng có lẽ đó chỉ là tôi.

Bước 1)

Tạo một tệp bó bắt đầu dịch vụ truyền phát http VLC ở chế độ nền và thu âm thanh từ thiết bị ghi âm "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

Ghi chú:

  1. Bạn có thể phải thay đổi thiết bị ghi nếu thiết bị của bạn có tên khác, tôi đã sử dụng Audacity ( http://audacity.sourceforge.net/ ) để kiểm tra tên của thiết bị chụp của tôi vì tôi đã cài đặt nó
  2. Có, tốc độ bit âm thanh rất cao (tối đa đối với Vorbis), nhưng tốc độ bit càng cao thì bộ đệm càng được lấp đầy và do đó độ trễ càng ngắn :-) (bạn không thể thay đổi độ phân giải kích thước bộ đệm cho nhạc trên XBMC, tôi sử dụng 5MB đệm trên mỏ nói chung)
  3. Tôi đã thử FLAC, MP3 và thậm chí WAV và ngoài thực tế là chỉ có MP3 và Vorbis hoạt động với Pi của tôi, tôi có thời gian tải nhanh nhất trên Pi (về cơ bản ngay lập tức) và độ trễ ít nhất với Vorbis

Bước 2)

Hướng đến

\\ rapsberrypi \ Userdata \ playlists \ nhạc

và tạo một tệp .strm với tên bạn chọn ở đó (tôi gọi là VLC.strm của tôi) có chứa liên kết đơn giản đến luồng VLC của bạn: (đổi IP thành IP của PC của bạn: p)

http://192.168.0.1:8080/audiostream.ogg

Bước 3)

Giờ đây, bạn có thể đặt thiết bị âm thanh được thu bởi "Kết hợp âm thanh nổi" thành mặc định trong cài đặt âm thanh của cửa sổ hoặc mở trình phát như VLC và sử dụng thủ công thiết bị không mặc định này để phát nhạc trên RaspberryPi của bạn:

Mở VLC của bạn (ngoài cái được thu nhỏ trong khay đang phát trực tuyến "Âm thanh nổi") và thực hiện các bước sau:

  1. Công cụ -> Tùy chọn
  2. Âm thanh
  3. Mô-đun đầu ra: "Đầu ra âm thanh WaveOut"
  4. Thiết bị: - thiết bị (tương tự) của bạn được thiết bị ghi âm "Kết hợp âm thanh nổi" -
  5. Tiết kiệm
  6. Khởi động lại VLC
  7. Chơi nhạc

Bước 4)

Trên RaspberryPi của bạn:

  1. Trong XBMC điều hướng đến Âm nhạc -> Danh sách phát
  2. Chọn VLC.strm (hoặc bất cứ điều gì bạn gọi nó)
  3. THƯỞNG THỨC ÂM NHẠC!

Xử lý sự cố

Nếu bạn gặp khó khăn khi "Stereo Mix" hoạt động hoặc thu âm, trước tiên hãy chơi xung quanh trong Windows bằng cách ghi lại bằng Audacity và thử một số đề xuất trên diễn đàn như:

cái này:

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

hoặc cái này:

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

Phải, gõ đủ cho ngày hôm nay, hy vọng điều này hữu ích cho ai đó!

BR, dẫn


3

"LineInCode" -Solution được mô tả ở đây hoạt động - nhưng âm thanh rất tệ qua wifi. Giải pháp VLC được cung cấp ở trên cũng hoạt động - nhưng nó cần rất nhiều nhấp chuột. Tôi đã kết hợp cả hai trong một tệp bó sẽ khởi động VLC với tư cách là một bộ truyền phát trên PC và mpg123 với tư cách là "người nghe" trên PI. Nó hoạt động như một cơ duyên đối với tôi. Bạn cần phải có Plik trong cùng một thư mục (chúng tôi sử dụng nó như ssh-client). Tôi sử dụng tập lệnh này từ hôm nay để nghe mp3 trên máy tính xách tay của mình, trong khi âm thanh phát ra là pi:

            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

Một cách để đạt được điều này là cài đặt hệ điều hành Volumio trên Raspberry PI ( https://volumio.org ) theo hướng dẫn được đưa ra ở đó. Phân phối này bao gồm một bộ thu ShairPort cho phép các thiết bị của Apple truyền âm thanh đến nó. Ngoài ra, tôi đoán bạn chỉ có thể cài đặt Shairport trên bản phân phối mà bạn chọn.

Trên PC Windows của bạn cài đặt tuneblade ( http://tuneblade.com ) phiên bản miễn phí cho phép bạn truyền phát âm thanh của máy tính đến ShairPort trên pi mâm xôi của bạn. Nó cũng hoạt động tốt với vlc để loại bỏ độ trễ âm thanh khi xem video, v.v.

Điều này làm việc cho tôi - tôi hy vọng nó cũng có thể làm việc cho bạn.


Chào mừng bạn đến với Raspberry Pi Stack Exchange! Trong khi về mặt lý thuyết có thể trả lời câu hỏi, tốt hơn là nên bao gồm các phần thiết yếu của câu trả lời ở đây và cung cấp liên kết để tham khảo.
RPiAwessomeness

Tuneblade cũng hoạt động với Pi MusicBox
nhập

0

Theo tôi biết không có giải pháp (chưa). Có một tiêu chuẩn / công nghệ có tên AVB nhưng sự hỗ trợ của nó được lên kế hoạch cho 802.11 bị giới hạn trong việc đồng bộ hóa thời gian.


-1

Bạn đã thử phát trực tiếp âm thanh bluetooth đơn giản bằng bộ chuyển đổi A2DP được kết nối với âm thanh nổi chưa? Sử dụng Raspberry Pi để làm điều đó có vẻ quá mức, mặc dù tôi sẽ thừa nhận xây dựng một thiết bị phát trực tiếp âm thanh bluetooth A2DP với Raspberry Pi và bộ chuyển đổi bluetooth USB giá rẻ.


Thật tuyệt khi bạn đã xây dựng một Raspi có thể truyền phát A2DP, nhưng câu trả lời của bạn không giúp tôi như vậy, vì vậy câu trả lời này không phải là một câu trả lời.
Đánh dấu gian hàng

Không có pi. Ghép nối PC của bạn với một bộ thu Bluetooth và gửi trực tiếp từ PC đến sterol của bạn. Bộ thu Bluetooth sẽ hiển thị đầu ra âm thanh asa trên máy tính của bạn.
Christopher Bigss
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.