3

I have a classroom set of RPi (4, running Raspbian Buster) that students will access via VNC through their Chromebooks. Eventually the school will allow that access from off campus as well. The problem is that VNC doesn't support sending audio and I need to find a way to do that. Except for the fact that half of them will be sharing RPis and won't therefore be able to have access to individual audio (that I'm aware of) even through headphones, they could just plug in while in the classroom. Not very convenient to have 10 ethernet cable and power adapter devices floating around the room.

Things I have tried:

  • UV4L streaming server - I cannot figure out how to send audio to/through it when I do connect http://aurellem.org/stream/html/how-to-stream.html - a lot of steps that didn't amount to success
  • Chrome Remote Desktop - on the RPi end, it sticks on the "Installing" or "Downloading" screen without ever resolving anything, in Chromium.
  • VLC - Trying to stream the desktop w/audio or even the camera throws back an "unable to open the MRL" for each attempt. Even streaming a local audio file appears to "work", but I've yet to get the sound to play remotely. I've also attempted to do this from the command prompt, following various directions from the Videolan wiki and other sites. Even this ridiculously simple task as presented here: https://www.softwarert.com/stream-music-movies-local-network-vlc-player/ is dumbfounding me trying to receive the stream via local VLC.
  • A few pulseaudio specific guides, including this page https://wiki.archlinux.org/index.php/PulseAudio/Examples#PulseAudio_over_network
  • And a few other sets of directions from other sites. I've been searching and attempting ideas for 2 months on this and am running out of time to make it matter for this class.

To make matters even more difficult, I'm sure, I'd like to be able to have each user be able to stream their own local sound. We'll be doing SonicPi creations. Assumptions I have include that pulseaudio can convert software audio output to just a data stream without requiring hardware sound devices. If that's incorrect, the RPi has both analog and hdmi audio, so I'm wondering if users can be assigned one that would be used to stream their output, once the problems above are solved.

I'm not one for asking for help, but I'm running out of ideas. thanks.

1

Personally I've had some success with NetJACK to combine the audio from two computers and send it to amplified speakers.

It seems a bit intimidating to configure but it's not so bad really, and once it's up and running it seems to be pretty reliable.

The catch is it will only work if you can get your audio application to send its audio via JACK rather than ALSA, Pulseaudio, etc. Many applications have good support for JACK and I believe there are shims and other workarounds for those applications that don't.

| improve this answer | |
  • Thanks for the suggestion. I checked it out. I'm not sure it will work. I have a strong feeling the district IT team will not open up or unblock ports for this. Most of the chromebooks they are using are also of the variety that doesn't support installing linux software, so if anything like that is needed (like making sure it has jack2) it wouldn't get me anywhere. It also appears to want/expect 100mbps network, which will not serve them if they connect from off campus. – Chris Moran Feb 14 at 13:31
  • This will be a less helpful suggestion, but are there any remote desktop cloud providers (like LogMeIn etc.) that support screen sharing on a Raspberry Pi? Have you also considered trying PulseAudio over TCP but using SSH port forwarding, so that you don't have to get your IT admins to open PulseAudio-specific ports? (Although the students would need to be able to connect to the Pi via SSH so there's a need for one open port at least). – Malvineous Feb 14 at 13:43
  • The PulseAudio via SSH was what I figured should be the easier task, but I think I don't understand how to make it work. I can already connect via SSH (at least while on campus, but for now, I'm happy with that). It's been a while since I've done so many networking related tasks that I'm rusty, at best. I'm now guessing that my trouble with sending pulse streams was a port issue. – Chris Moran Feb 14 at 14:03
  • You'll probably want an SSH parameter like -L1234:localhost:5678 which will allow clients (the one running the SSH command) to connect to localhost on port 1234, and the connection will appear on the Pi as if someone is connecting to localhost on port 5678. Looking at the info on the Arch Linux wiki it looks like it should be doable across SSH, bearing in mind everything will look like it's coming from and going to localhost. – Malvineous Feb 14 at 14:11
  • I'm looking at askubuntu.com/questions/371687/how-to-carry-audio-over-ssh which seems similar to your suggestion, but I'm not sure how to receive the audio from the remote location. How to I test it's working? – Chris Moran Feb 14 at 18:33

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.