Bagaimana cara mengalirkan musik melalui jaringan ke beberapa komputer?

78

Hasil

Saya ingin bisa berjalan dari satu kamar ke kamar lain dan mendengar lagu yang sama diputar. Seperti yang Anda lakukan jika Anda mendengarkan radio di semua kamar.

Saya ingin efek itu tetapi saya ingin mendengarkan musik saya sendiri, dapatkah ini dilakukan?

Material

  • Laptop Ubuntu.
  • Komputer Mac.

Alternatif pertama

Alvar
sumber

Jawaban:

48

Ya, dengan pulseaudio ini dapat dengan mudah dilakukan. Anda perlu menginstal dan menjalankan papref Instal paprefs yang membuat perangkat suara Anda tersedia melalui jaringan.

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

Pengaturan ini memungkinkan sumber suara dan sink untuk dipublikasikan melalui jaringan, idealnya ke server pulseaudio lainnya.

Jika Anda memiliki pengaturan server tanpa desktop manager, Anda harus menginstal sound system terlebih dahulu (lihat pertanyaan ini ). Anda kemudian dapat mengedit /etc/pulse/default.patanda komentar pada baris-baris ini di bagian Akses jaringan :

load-module module-esound-protocol-tcp
load-module module-native-protocol-tcp
load-module module-zeroconf-publish

Jika Anda ingin menggunakan pengirim RTP batalkan komentar pada baris ini, bagian modul pengirim RTP :

load-module module-null-sink sink_name=rtp format=s16be channels=2 rate=44100 description="RTP Multicast Sink"
load-module module-rtp-send source=rtp.monitor

Server pulseaudio harus dimulai sebagai daemon dengan pulseaudio -Dseandainya itu belum berjalan. Untuk mengoptimalkan pengaturan kualitas suara di /etc/pulse/daemon.confdapat disesuaikan dengan kebutuhan pribadi.

Metode alternatif untuk mengalirkan audio di jaringan Anda adalah menyiapkan Server Icecast (lihat pertanyaan ini ).

Takkat
sumber
14
Dalam kasus klien tanpa kepala (katakanlah, Pi dengan speaker di lemari dapur saya) akan berguna untuk mengetahui cara mengatur ini sepenuhnya melalui file konfigurasi dan / atau perintah shell.
Raphael
Panduan ini cukup umum untuk mengikutinya di Ubuntu CLI. wiki.archlinux.org/index.php/PulseAudio/…
goetzc
11

Pilihan terbaik Anda disebut Music Player Daemon (mpd).

https://secure.wikimedia.org/wikipedia/en/wiki/Music_Player_Daemon

Ini adalah aplikasi server klien. Anda menyimpan musik Anda di server, kemudian terhubung dengan klien Anda (banyak orang dapat melakukannya sekaligus) dan mengontrol server.

Sudah ada di ubuntu, cukup install-get install mpd

Dan juga beberapa dokumentasi yang bagus: https://wiki.archlinux.org/index.php/Mpd

MPD dapat mengalirkan musik, sehingga Anda dapat memiliki banyak klien (atau pengeras suara jika Anda ingin memanggil mereka) untuk memutar musik.

Tapi jangan berharap kualitas yang bagus. Streaming rampasan terdengar buruk (tidak masalah jika Anda menggunakan mpd atau pulseaudio). Merupakan ide yang jauh lebih baik untuk menghubungkan speaker asli ke server dan menggunakan laptop hanya untuk mengendalikannya.

racun
sumber
2
Yah rumah saya terlalu besar untuk menggunakan kabel, itu sebabnya saya ingin mengalirkan suara.
Alvar
Anda dapat streaming, jangan khawatir tentang kualitas, itu tidak masalah, Mengingat koneksi nirkabel Anda cukup kuat
Rahul Prasad
Bagaimana streaming merusak kualitas suara? WiFi adalah media transfer digital. Apakah MPD melakukan kompresi lossless? Saya tidak berpikir itu diperlukan untuk jaringan WiFi saat ini.
nvd
Wow, jawaban yang sangat tua. Saya bahkan tidak ingat lagi, karena saya belum pernah menggunakan GKG sejak sekitar waktu itu.
loxs
11

Saya tidak perlu melakukan sesuatu yang luar biasa. Saya memiliki netbook kembar dengan PulseAudio dan tidak ada nama perangkat keras dari intel. Bagaimana saya mengaturnya pergi sedikit seperti ini.

jalankan paprefs di server dan klien Anda. Di server, pastikan Anda telah mengaktifkan pengaturan multicast, dan bit server dicentang. seperti itu masukkan deskripsi gambar di sini

dan bit multicast masukkan deskripsi gambar di sini

Pada klien, aktifkan sedikit tentang menemukan perangkat yang diaktifkan jaringan masukkan deskripsi gambar di sini dan atur perangkat output Anda ke perangkat jaringan virtual melalui pavucontrol masukkan deskripsi gambar di sini

Anda harus memiliki beberapa sihir sekarang

lazyPower
sumber
1
Kecuali bahwa ini tidak ada hubungannya dengan RTP.
kirelagin
Terima kasih untuk tutorial yang luar biasa ini. Saya memeriksa semua kotak, kecuali bahwa saya tidak dapat "mengatur perangkat output saya ke perangkat jaringan virtual melalui pavucontrol". Seperti yang saya mengerti, ini dilakukan melalui bit di mana di screenshot Anda ada tertulis "Internal Audio Analog Stereo on charmes @ nano". Tetapi pada sistem saya, tidak ada tombol seperti itu sama sekali. Apa yang saya lakukan salah?
user69748
Saya belum memeriksa petunjuk ini sejak 2011, jadi sangat mungkin pengaturan daemon audio pulsa telah berubah.
lazyPower
Apa yang sekarang saya miliki (setelah reboot) adalah saluran terpisah yang disebut "pulseaudio" yang tampaknya dialihkan ke klien saya. Namun, tidak ada audio yang mengalir melaluinya. Dan saluran Rhythmbox saya masih belum menyebutkan "user @ client".
user69748
1

Dengan solusi ini Anda dapat melakukan streaming audio sistem Anda di mana pun Anda inginkan ..
kuncinya di sini adalah kemampuan loopback ALSA. jadi pertama-tama Anda harus mengaktifkan perangkat loopback di ALSA, yang akan muncul di PulseAudio Volume Control sebagai perangkat input (dan juga perangkat output).

sudo modprobe snd_aloop

perangkat ini kemudian dapat ditambahkan ke server mpd:

mpc add alsa://hw:1,1

di mana hw: 1,1 adalah perangkat input loopback dapat dicantumkan dengan perintah aplay -l

maka Anda perlu mengkonfigurasi plugin keluaran http untuk mpd. contoh berikut akan terlihat seperti di/etc/mpd.conf

 audio_output {
    type            "httpd"
    name            "My HTTP Stream"
    encoder         "vorbis"          # optional, vorbis or lame
    port            "8000"
    bind_to_address "192.168.1.38"               # optional, IPv4 or IPv6
    quality         "5.0"                   # do not define if bitrate is d$
#   bitrate         "128"                   # do not define if quality is d$
    format          "44100:16:1"
    max_clients     "0"                     # optional 0=no limit
 }  

hanya itu saja. Pilih perangkat looback untuk sumber audio Anda di tab Volume Control Playback.
Terakhir, Anda dapat menggunakan VLC atau stream renderer lainnya di titik tujuan menggunakan alamat url httpd: http://192.168.1.38:8000
Jawaban ini juga tersedia di sini

laplasz
sumber
0

Saya tidak yakin apakah sesuatu seperti ini dapat dicapai dengan DLNA / UPnP karena saya sendiri tidak terbiasa dengan hal itu, tetapi melempar beberapa tautan di sini kalau-kalau ini membantu:

Meskipun hasil pencarian cepat akan menyarankan bahwa tidak mungkin untuk menyinkronkan ...

Ilari Kajaste
sumber
2
DLNA tidak disarankan, karena tidak dapat menyinkronkan pemutaran.
Sparhawk
0

Belum ada solusi yang baik. Ada AVB tetapi dukungannya untuk 802.11 terbatas pada sinkronisasi waktu.

themihai
sumber
-2

Jika Anda ingin melakukan streaming ke ponsel Android, Anda dapat menggunakan Foobar2000 di server dan BubbleUPnP (payware) pada klien.

  1. dapatkan Wine
  2. mendapatkan foobar_v1.2.5.exe
  3. $ wine foobar2000_v1.2.5.exe
  4. selanjutnya, selanjutnya, selanjutnya ... :)
  5. dapatkan foo_upnp
  6. ekstrak di folder komponen foobar2000 (yang mungkin ada di ~/.wine/drive_c/Program Files/)
  7. luncurkan foobar2000
  8. pergi ke Perpustakaan → Konfigurasi → Playback → Output → Perangkat dan pilih "Null output"
  9. pastikan ufwtidak memblokir lalu lintas yang relevan
  10. dalam BubbleUPnP:
    1. buka Perangkat → Perpustakaan dan pilih server foobar2000
    2. di "Library", pilih "Playback Stream Capture"

Pendekatan ini memiliki keuntungan bahwa jika Anda menjeda di Android, itu akan mengakumulasi buffer (karena server masih mengirim).

Diuji pada Ubuntu (versi Wine 1.5.28-0ubuntu1~ppa1) dan Windows.

Janus Troelsen
sumber