ใช้ Pi เพื่อสตรีมเอาท์พุทเสียงทั้งหมดจากพีซีไปยังสเตอริโอของฉัน


37

ปัญหาของฉันนั้นค่อนข้างง่าย แต่ฉันไม่สามารถหาวิธีการแก้ปัญหาที่น่าพอใจได้

โดยทั่วไปฉันต้องการให้ Raspberry Pi เชื่อมต่อกับสเตอริโอแล้วเล่นสัญญาณเสียงใด ๆ จากคอมพิวเตอร์ของฉันผ่าน wifi ไปยัง PI

มีวิธีใดที่จะทำสิ่งนี้ได้อย่างง่ายดายโดยไม่ต้องใช้ผู้เล่นพิเศษหรือไม่? Ie มีอยู่หรือยังสำหรับพีซีที่จะรับรู้ Pi เป็น "ลำโพง"?

ฉันต้องการจะได้ยินทุกเสียงบนพีซีของฉันบนระบบสเตอริโอเช่น เล่นเกม, เพลง, ระบบเสียง, การแจ้งเตือน, วิดีโอ youtube ฯลฯ

ขอบคุณมาก ๆ!

คำตอบ:


24

หากคุณใช้งาน Linux บนพีซีของคุณสิ่งนี้สามารถทำได้อย่างสมบูรณ์แบบตราบใดที่คุณติดตั้งและกำหนดค่า PulseAudio อย่างเหมาะสมทั้ง Raspberry Pi และ Linux PC ของคุณ

หากพีซีของคุณใช้ Windows ... ข้ามไปยังจุดสิ้นสุดของโพสต์ (ซึ่งฉันเพิ่งอัปเดต)

อีกตัวเลือกหนึ่งคือใช้ PulseAudio เป็นผู้รับ / ลูกค้า AirPlay แต่เท่าที่ฉันรู้นี่เป็นไปไม่ได้

แต่ถ้าคุณใช้ลีนุกซ์ก็สามารถอ่านได้ที่:

หมายเหตุ # 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

เพิ่มบรรทัดต่อไปนี้:

โมดูลโหลดโมดูล-native-protocol-tcp auth-ip-acl = 127.0.0.1; 192.168.1.0/24

โหลดโมดูล module-zeroconf-publish

4) รีบูต Raspberry Pi ของคุณ:

sudo reboot

5) ตอนนี้บน Linux เครื่องคอมพิวเตอร์ของคุณติดตั้งpaprefs หาก Linux distro ของคุณใช้ Debian (เช่น Ubuntu, Mint, ฯลฯ ... ) คุณสามารถใช้คำสั่งนี้:

sudo apt-get install paprefs

6) เรียกใช้ paprefs และภายใต้การเข้าถึงเครือข่ายเปิดใช้งานทำให้อุปกรณ์เสียงเครือข่าย PulseAudio ที่ค้นพบสามารถใช้ได้ในท้องถิ่น

7) ภายใต้เซิร์ฟเวอร์เครือข่ายเปิดใช้งานเปิดใช้งานการเข้าถึงเครือข่ายไปยังอุปกรณ์เสียงในระบบและทำเครื่องหมายที่ตัวเลือกทั้งสอง (อาจไม่จำเป็นเว้นแต่คุณจะต้องการใช้กล่อง Linux เป็นเซิร์ฟเวอร์ / อ่างล้างมือ)

8) ภายใต้Multicas / RTPเปิดใช้งานตัวเลือกทั้งสอง

9) ตรวจสอบอุปกรณ์เอาท์พุทของคุณ (ใช้ Linux distro Audio / Mixer Application) ราสเบอร์รี่ Pi ของคุณจะปรากฏในรายการ เลือกและทุกอย่างที่เล่นบนกล่อง Linux ของคุณจะถูกเปลี่ยนเส้นทางไปยัง Raspberry Pi

หาก Raspberry Pi ของคุณยังคงใช้งานไม่ได้ให้ลองรีสตาร์ท PC Linux


อัปเดต: การส่งเสียงทั้งหมดจาก Windows ไปที่ Raspberry Pi

คุณจะยังคงต้องทำตามคำแนะนำก่อนหน้าเพื่อติดตั้งและกำหนดค่า PulseAudio ใน Raspberry Pi ของคุณ

ตอนนี้นี่คือสิ่งที่คุณต้องทำสำหรับ Windows:

1) ดาวน์โหลดLineInCodeเวอร์ชันล่าสุด

2) แตกไฟล์ที่ดาวน์โหลดมา

2) ดาวน์โหลดPlinkของ PuTTY และวางไฟล์ plink.exe ในโฟลเดอร์เดียวกันกับที่คุณแตกไฟล์ LineInCode

3) เปิด Notepad และวางรหัสต่อไปนี้:

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

คุณใช้ระบบปฏิบัติการอะไรบน Pi ของคุณ? ฉันใช้ Raspbmc ติดตั้งใหม่และการทำตามคำแนะนำเหล่านี้ดูเหมือนจะทำให้อุปกรณ์เป็นอิฐ สิ่งที่ดีฟอร์แมตจึงเป็นเรื่องง่าย ...
gillonba

ฉันได้ลองทำตามคำแนะนำเหล่านี้ในหลาย ๆ รุ่นของ Raspbian แล้ว
xfx

สนใจที่จะทราบว่าที่อยู่ IP ใดที่เรากำลังป้อนในการโหลดโมดูล tcp เริ่มต้น ฉันประสบปัญหาการเล่นผ่านระบบไร้สายเล็กน้อย แต่ไร้ที่ติผ่านสายน่าสนใจเนื่องจากมีการใช้nethogsรายงานเพียง 13 KB / s
M1ke

4

ฉันเขียนบล็อกเล็ก ๆ น้อย ๆ เกี่ยวกับวิธีที่ฉันใช้งาน PulseAudio บนพีซีและ Raspbmc บน Raspberry Pi โดยใช้การสตรีม DLNA / UPnP มันนี่: http://westmarch.sjsoft.com/2014/04/streaming-audio-linux-to-raspbmc/ หวังว่าจะช่วย มีความล่าช้าเล็กน้อยในขณะที่บัฟเฟอร์ XBMC - ดังนั้นสิ่งนี้อาจจะไม่ดีสำหรับการเล่นเกมหรืออะไร แต่มันใช้งานได้ดีกับดนตรี

มันเป็นชุดคำสั่งที่ค่อนข้างยาว - ดังนั้นลิงค์ที่นี่ แต่นี่เป็นบทสรุปของตัวเลือกที่เหมาะกับฉันโดยใช้ DLNA / UPnP:

  • apt-get install rygel
  • เปิดการตั้งค่า PulseAudio และใต้เครื่องหมายเครือข่ายเซิร์ฟเวอร์ทำอุปกรณ์เสียงในตัวเครื่องให้เป็น DLNA / UPnP Media Serverและสร้างอุปกรณ์เสียงแยกต่างหากสำหรับการสตรีม DLNA / UPnP
  • แก้ไขการกำหนดค่าของ Rygel ใน/etc/rygel.confหรือ$HOME/.config/rygel.confและกำหนดค่าให้เผยแพร่โดยใช้GstLaunch(ดูการกำหนดค่าด้านล่าง)
  • ไปที่ XBMC File Manager ของคุณค้นหาแหล่งใหม่เลือกอุปกรณ์ 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

คุณสามารถรวมชุดคำสั่งที่ง่ายจากโพสต์บล็อกของคุณในกรณีที่มีบางอย่างเกิดขึ้นกับมันในอนาคตหรือไม่?
Fred

4

ต้องการทำสิ่งนี้ด้วยตนเองจาก Windows7 -> RaspberryPi (OpenElec) และสะดุดกับคำถามของคุณ หลังจากการวิจัยบางอย่างฉันยังไม่พบวิธีแก้ปัญหาที่น่าพึงพอใจสำหรับ OpenElec แต่มีข้อมูลเพียงพอที่จะเกิดขึ้นกับสิ่งที่เรียบง่ายและใช้งานได้จริงด้วยคุณภาพสูงและมีความล่าช้าประมาณ 1 วินาทีเท่านั้น!

คุณต้องการ:

  1. VLC Media Player (ฉันใช้ v2.1.3 Rincewind บน Win7 x64 ของฉัน)
  2. การ์ดเสียงที่ให้อุปกรณ์บันทึกเสียง "สเตอริโอมิกซ์" (ฉันโชคดีมากที่มีการ์ดออนบอร์ดหนึ่งตัว)
  3. A Raspberry Pi (ฉันใช้ OpenElec 4.0.5 แม้ว่ามันจะใช้ได้กับ XBMC โดยทั่วไป)

หมายเหตุ: หากคุณไม่มีการ์ดเสียงที่รองรับสิ่งนี้คุณสามารถลองใช้ VAC ( http://www.virtualaudiocable.net/ ) ได้แม้ว่าฉันจะบอกว่าคุณทำงานไม่ถูกต้องสำหรับฉันคุณภาพเสียงและบัฟเฟอร์ไม่ดี มีปัญหาตลอดทาง ... แต่อาจเป็นแค่ฉัน

ขั้นตอนที่ 1)

สร้างไฟล์แบตช์ที่เริ่มให้บริการสตรีมมิ่ง VLC http ในพื้นหลังและจับเสียงจากอุปกรณ์บันทึก "สเตอริโอมิกซ์":

@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. คุณอาจต้องเปลี่ยนอุปกรณ์บันทึกหากคุณมีชื่ออื่นฉันใช้ความกล้า ( http://audacity.sourceforge.net/ ) เพื่อตรวจสอบชื่ออุปกรณ์จับภาพของฉันเพราะฉันติดตั้งแล้ว
  2. ใช่เสียงบิตเรตนั้นสูงมาก (สูงสุดสำหรับ Vorbis) แต่ยิ่งบิตเรตมากขึ้นบัฟเฟอร์ก็ยิ่งเร็วขึ้นเท่านั้นดังนั้นจึงมีการหน่วงเวลาที่สั้นกว่า :-) (คุณไม่สามารถเปลี่ยนขนาดบัฟเฟอร์ที่ชัดเจนสำหรับเพลงบน XBMC ฉันใช้ 5MB บัฟเฟอร์ในเหมืองโดยทั่วไป)
  3. ฉันลอง FLAC, MP3 และแม้กระทั่ง WAV และนอกเหนือจากความจริงที่ว่ามีเพียง MP3 และ Vorbis เท่านั้นที่ทำงานกับ Pi ของฉันฉันมีเวลาโหลดที่เร็วที่สุดบน Pi (โดยทั่วไปทันที) และล่าช้าน้อยที่สุดด้วย Vorbis

ขั้นตอนที่ 2)

นำทางไปยัง

\\ rapsberrypi \ Userdata \ รายการเพลง \ เพลง

และสร้างไฟล์. strm ด้วยชื่อที่คุณเลือก (ฉันเรียกว่า mine VLC.strm) ซึ่งมีลิงค์ธรรมดาไปยังสตรีม VLC ของคุณ: (เปลี่ยน IP เป็น IP ของพีซีของคุณ: p)

http://192.168.0.1:8080/audiostream.ogg

ขั้นตอนที่ 3)

ตอนนี้คุณสามารถตั้งค่าอุปกรณ์เสียงที่ "จับเสียงสเตอริโอ" เป็นค่าเริ่มต้นในการตั้งค่าเสียงของ windows หรือเปิดเครื่องเล่นเช่น VLC และใช้อุปกรณ์ที่ไม่ใช่ค่าเริ่มต้นเพื่อเล่นเพลงบน RaspberryPi ของคุณ:

เปิด VLC ของคุณ (นอกเหนือจากที่ย่อเล็กสุดในถาดซึ่งกำลังสตรีม "สเตอริโอมิกซ์") แล้วทำตามขั้นตอนต่อไปนี้:

  1. เครื่องมือ -> ค่ากำหนด
  2. เสียง
  3. โมดูลเอาท์พุท: "สัญญาณเสียง WaveOut"
  4. อุปกรณ์: -อุปกรณ์(อะนาล็อก) ของคุณซึ่งถูกบันทึกโดยอุปกรณ์บันทึกเสียง "สเตอริโอมิกซ์" -
  5. บันทึก
  6. รีสตาร์ท VLC
  7. เล่นเพลง

ขั้นตอนที่ 4)

บน RaspberryPi ของคุณ:

  1. ใน XBMC ไปที่เพลง -> เพลย์ลิสต์
  2. เลือก VLC.strm (หรือสิ่งที่คุณเรียกว่า)
  3. สนุกกับเพลง!

การแก้ไขปัญหา

หากคุณมีปัญหาในการรับ "สเตอริโอมิกซ์" ของคุณให้ทำงานหรือจับภาพให้ลองเล่นใน Windows ก่อนเช่นบันทึกด้วยความกล้าและลองใช้คำแนะนำในฟอรัมเช่น:

อันนี้:

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" -Solution ที่อธิบายไว้ที่นี่ใช้งานได้ - แต่เสียงแย่มากผ่าน wifi VLC-Solution ที่ให้ไว้ข้างต้นใช้งานได้เช่นกัน - แต่ก็ต้องคลิกมาก ฉันรวมทั้งสองอย่างใน batch-file ซึ่งจะเริ่ม VLC เป็น streamer บนพีซีของฉันและ mpg123 เป็น "listner" บน PI มันใช้งานได้เหมือนเสน่ห์สำหรับฉัน คุณต้องมีPlikในโฟลเดอร์เดียวกัน (เราใช้มันเป็น ssh-client) ฉันใช้สคริปต์นี้ตั้งแต่วันนี้เพื่อฟัง mp3 บนแล็ปท็อปของฉันในขณะที่ soundoutput คือ 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

วิธีหนึ่งในการบรรลุเป้าหมายนี้คือการติดตั้ง Volumio OS บน Raspberry PI ( https://volumio.org ) ตามคำแนะนำที่ให้ไว้ การกระจายนี้รวมถึงตัวรับสัญญาณ ShairPort ซึ่งอนุญาตให้อุปกรณ์ Apple สตรีมเสียงไปยังมัน อีกทางหนึ่งฉันเดาว่าคุณสามารถติดตั้ง Shairport ลงในการกระจายตัวที่คุณเลือกได้

บนพีซี Windows ของคุณให้ติดตั้ง tuneblade ( http://tuneblade.com ) เวอร์ชั่นฟรีซึ่งให้คุณสตรีมเสียงของคอมพิวเตอร์ของคุณไปยัง ShairPort บนราสเบอร์รี่ pi ของคุณ มันยังทำงานได้ดีกับ vlc เพื่อกำจัดความล่าช้าของเสียงเมื่อดูวิดีโอ ฯลฯ

สิ่งนี้เหมาะกับฉัน - ฉันหวังว่ามันจะได้ผลกับคุณเช่นกัน


ยินดีต้อนรับสู่ Raspberry Pi Stack Exchange! ในขณะที่สิ่งนี้อาจตอบคำถามในทางทฤษฎีมันก็ควรที่จะรวมส่วนที่สำคัญของคำตอบที่นี่และให้ลิงค์สำหรับการอ้างอิง
RPiAwesomeness

Tuneblade ยังทำงานร่วมกับ Pi MusicBox
อินพุท

0

เท่าที่ฉันรู้ว่าไม่มีวิธีแก้ปัญหา (ยัง) มีมาตรฐาน / เทคโนโลยีชื่อAVBแต่การสนับสนุนที่วางแผนไว้สำหรับ 802.11 นั้น จำกัด อยู่ที่การซิงโครไนซ์เวลา


-1

คุณได้ลองสตรีมมิ่งเสียงบลูทู ธ อย่างง่าย ๆ โดยใช้อะแดปเตอร์ A2DP ที่เชื่อมต่อกับสเตอริโอหรือไม่? ใช้ Raspberry Pi เพื่อทำสิ่งที่ดูเหมือนเกินความจริงแม้ว่าฉันจะยอมรับในการสร้างอุปกรณ์สตรีมมิ่งเสียง A2DP บลูทู ธ กับ Raspberry Pi และอะแดปเตอร์บลูทู ธ USB ราคาถูก


เป็นเรื่องดีที่คุณได้สร้าง Raspi ที่สามารถสตรีม A2DP ได้ แต่คำตอบของคุณไม่ได้ช่วยฉันเหมือนกันดังนั้นคำตอบนี้ไม่ใช่คำตอบ
มาร์กบูธ

ไม่มีปี่ จับคู่พีซีของคุณกับตัวรับสัญญาณบลูทู ธ และส่งตรงจากพีซีไปยังสเตอรอล ตัวรับสัญญาณ Bluetooth ควรแสดงเอาต์พุตเสียง asa บนพีซีของคุณ
Christopher Biggs
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.