Apakah ada cara untuk mengalirkan output langsung dari kartu suara dari desktop amd64 LTS 12.04.1 kami ke perangkat eksternal yang mendukung DLNA di jaringan kami? Memilih konten media dalam direktori bersama menggunakan Rygel, miniDLNA, dan uShare selalu baik - tetapi sejauh ini kami sepenuhnya gagal mendapatkan streaming audio langsung ke klien melalui DLNA.
Pulseaudio mengklaim memiliki server media DLNA / UPnP yang bersama-sama dengan Rygel seharusnya melakukan hal ini. Tapi kami tidak bisa menjalankannya.
Kami mengikuti langkah-langkah yang dijelaskan dalam live.gnome.org , jawaban ini di sini, dan juga dalam panduan serupa lainnya .
Dalam 12,04 LTS kita dapat memilih perangkat audio lokal, atau aliran GST-Launch kami di klien DLNA tetapi Rygel menampilkan pesan berikut dan klien menyatakan itu mencapai akhir daftar putar:
(rygel:7380): Rygel-WARNING **: rygel-http-request.vala:97: Invalid seek request
Tidak ada cara untuk mendengarkan streaming audio langsung pada klien.
Hanya setelah peningkatan distribusi ke 14,04 LTS kami dapat memilih streaming langsung pada penyaji DLNA kami dari pengaturan yang dijabarkan dengan baik di bawah ini . Namun, kami perlu memilih aliran yang ditetapkan setelah kami mulai rygel dan tidak dapat mendorong aliran baru ke perangkat UPnP kami. Metadata audio tidak ditransmisikan.
Apakah ada alternatif lain untuk mengirim audio kartu suara kami sebagai siaran langsung ke klien DLNA?
Jawaban:
Pulseaudio-DLNA
Saya membuat server kecil yang menemukan semua penyaji upnp di jaringan Anda dan menambahkannya sebagai sink ke pulseaudio. Jadi, Anda dapat mengontrol setiap aplikasi melalui pavucontrol untuk bermain di perangkat upnp Anda.
Itulah jenis kenyamanan yang selalu saya inginkan ketika berhadapan dengan perangkat upnp di linux.
Aplikasi dapat diinstal dari sumber atau paket DEB yang dapat diunduh dari git , atau setelah kami menambahkan ppa resmi proyek : qos / pulseaudio-dlna ke sumber kami dengan:
Kami kemudian menjalankan pulseaudio-dlna dari baris perintah dengan opsi berikut:
Lihat juga pulseaudio-DLNA "Tentang" untuk lebih lanjut.
Ketika ada hadiah DLNA renderer, kita dapat memilihnya dari menu suara sebagai output sink:
sumber
python-requests
sebagai dependensi dan kami dapat memilih renderer dari kontrol audio default - tidak perlu menginstal pavucontrol.Pavucontrol adalah item yang hilang dalam puzzle ini! Saya juga mengatur semuanya dengan benar dan perangkat eksternal (LG TV) menunjukkan bahwa suara sedang diputar tetapi saya tidak mendengar suara apa pun. Hari ini saya menginstal pavucontrol dan ketika saya membukanya saya menemukan opsi untuk menyalurkan suara melalui server DLNA. Opsi DLNA hanya ditampilkan ketika ada output suara dari pemain ke pulseaudio.
sumber
Invalid seek request
dari Rygel. Direktori media ada di sana tetapi GST-stream saya selalu EOF.Maaf saya tidak bisa membantu Anda dengan Rygel sama sekali, tetapi mungkin ada alternatif yang mungkin cocok untuk Anda.
Prinsipnya adalah dapatkan program untuk merekam streaming ke audiofile, kemudian jalankan miniDLNA dengan konfigurasi khusus yang menunjuk ke direktori yang di dalamnya streaming.
Contoh: Katakanlah kita sedang bekerja di ~ / stream /. Buat ~ / stream / minidlna.conf
Kemudian simpan streaming ke audiofile di direktori itu. Googling untuk "audio kartu suara rekaman FFmpeg" menghasilkan perintah ini
tapi aku tidak beruntung dengan itu. Pilihan lain adalah vlc adalah Anda memiliki GUI yang tersedia dan ini tidak berfungsi.
Kemudian boot miniDLNA di jendela terminal lain:
Itu harus menemukan OutputStream.flac dan kemudian dapat diakses dari perangkat jaringan Anda.
Semoga jika Anda belum menyelesaikannya, itu memberi Anda beberapa ide.
sumber
Satu ide saya harus streaming "apa yang saya dengar" ke DLNA renderer (seperti WDTV) adalah ke server aliran dengan VLC sebagai aliran http dengan
pulse://alsa_output.xxx.monitor
sebagai input dan transcode ke MP3 atau FLAC. Lalu saya ingin menggunakan beberapa titik kontrol DLNA untuk membiarkan renderer bermain dengan stream. VLC memang melayani aliran transkode dengan benar, tetapi tidak memungkinkan untuk mengatur tipe mime, sehingga pemberi render menolak untuk memainkannya.Gagasan berikutnya adalah untuk menulis server http dengan python yang melayani aliran sebagai gantinya. Ini mendapatkan aliran audio dari pulsa dengan
parec
, menyandikannya denganflac
(ataulame
atau apa pun yang Anda inginkan) dan mengatur jenis mime dengan benar.Ini bekerja dengan skrip (sangat sederhana) berikut:
Sesuaikan parameter, jalankan, dan arahkan renderer DLNA ke mesin Anda. Ini bekerja untuk saya dengan WDTV sebagai penyaji dan ponsel Android dengan BubbleUPnP sebagai titik kontrol (Anda dapat mengetikkan URL aliran saat menambahkan item baru ke daftar putar secara manual). Tetapi itu harus bekerja dengan perangkat yang sesuai DLNA.
sumber
CATATAN: Solusi ini berfungsi, tetapi solusi yang lebih baru dan mungkin lebih baik telah diusulkan oleh Massimo.
Inilah jawaban untuk Ubuntu 14.04 (juga diuji dan berfungsi pada 15.04 ), untuk kelengkapan:
instal paket yang dibutuhkan:
sudo apt-get install rygel rygel-preferences rygel-gst-launch
buat file
~/.config/rygel.conf
yang berisi berikut ini:Jalankan perintah berikut dari commandline (ini bisa dimasukkan ke dalam skrip jika diinginkan):
Jalankan
paprefs
perintah, dan pastikan kedua opsi DLNA diaktifkan (dicentang) pada tab "Network Server".Mainkan beberapa audio di komputer Anda. Jalankan
pavucontrol
program, dan pada tab "Playback", ubah perangkat output menjadi "DLNA / UPnP Streaming".Pada titik ini, Anda harus dapat memutar stream MPEG dan FLAC dari klien DLNA (renderer / titik kontrol).
CATATAN: Anda mungkin perlu me-restart komputer Anda (atau me-restart pulsa) agar hal-hal mulai bekerja.
sumber
Skrip python dari Adam adalah apa yang saya butuhkan. Cemerlang. Rygel dengan peluncuran gst tidak berfungsi dengan salah satu penyaji saya, tetapi skrip ini berfungsi dengan baik. Dalam kasus saya, saya mengambil input stream audio dari squeezelite (untuk squeezebox) dan mengirim ke renderer. Script juga berfungsi dalam bentuk asli untuk mengambil input dari monitor pulseaudio jika itu yang diperlukan.
Mengetahui sedikit tentang semua ini, saya berhasil membuat beberapa tambahan pada skrip yang:
i) mengizinkannya dijalankan dari skrip shell dan diakhiri dengan SIGTERM / SIGKILL (pernyataan 'kecuali' sekarang termasuk 'systemexit')
ii) memungkinkan skrip untuk dihentikan dan dimulai kembali dan menggunakan kembali port yang sama (karena skrip yang direstart cenderung gagal mengatakan tidak dapat membuka port jika renderer masih membuka) - (allow_reuse_address = Pernyataan benar)
iii) membuat versi yang mengambil input dari stdin dan membuat sampel menggunakan sox untuk output dalam format wav (pada port 8082)
Jadi versi saya terlihat seperti:
sumber
Tidak yakin apakah ini akan berguna untuk Anda sekarang, tetapi saya menulis posting tentang cara agar ini berfungsi di Ubuntu 12.10:
http://dpc.ucore.info/blog/2012/11/07/dlna-streaming-in-ubuntu-12-dot-10/
sumber