Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement a streaming option for in-browser listening #47

Open
unixpunk opened this issue Jan 29, 2019 · 9 comments
Open

Implement a streaming option for in-browser listening #47

unixpunk opened this issue Jan 29, 2019 · 9 comments
Assignees
Labels
enhancement New feature or request

Comments

@unixpunk
Copy link
Owner

This would mostly be for WBFM but could be used with anything that plays audio. WBFM is the biggest use-case since its not supported by OpenWebRx.

Current idea = Icecast + ices2
This would allow the output from rx_fm or rx_sdr to be piped into ices2 and then played via the web browser through Icecast.

Its a bit heavy-handed, but not finding any other real solutions to be able present an audio "file" to the browser for easy playback. (I say "file" because it can't be a real file, there's no space, it has to act solely as a stream when fetched.)

@unixpunk unixpunk self-assigned this Jan 29, 2019
@unixpunk unixpunk added the enhancement New feature or request label Jan 29, 2019
@unixpunk
Copy link
Owner Author

Figured out how to do WBFM in OpenWebRx but its not practical on the Pluto directly because you can only see the one station you're trying to listen to, it can't handle seeing much more of the spectrum than that. I will publish wbfm in OpenWebRx in a fork once I iron out the kinks, but that wouldn't be related to PlutoWeb.

@unixpunk
Copy link
Owner Author

I think rx_fm -> ices2 -> Icecast is best. Then we can have the web page do a scan of the FM band, show the PNG with an image map and allow point-and-click tuning to pass the freq value to rx_fm.

@unixpunk
Copy link
Owner Author

Its a bit the same as leantrx, but leantrx seems to use too much CPU to be useful in the FM band.

@unixpunk
Copy link
Owner Author

Added to a test build - needs more testing and tweaking of configs as well as new variable, etc for it.

@unixpunk
Copy link
Owner Author

unixpunk commented Apr 5, 2019

Example working WBFM command:
rx_sdr -F CF32 -s 3000000 -f 101100000 -g 22 - | csdr fir_decimate_cc 12 0.085 HAMMING | csdr fmdemod_quadri_cf | csdr fractional_decimator_ff 5 | csdr deemphasis_wfm_ff 48000 75e-6 | csdr convert_f_i16 | ices /etc/ices.xml

@iroks
Copy link

iroks commented Apr 6, 2019

that is pretty cool! Just few questions:

  1. Is it mono or stereo?
  2. Could you please provide some figures about the CPU utilisation on Pluto (e.g. htop or top)?
  3. Is it possible to integrate ffmpeg on Pluto (ffmpeg supports the streaming to icecast as well but more flexible as ices)?

@unixpunk
Copy link
Owner Author

  1. Mono, crappy quality as compared to using same hw+antenna in CubicSDR
  2. No, you can test and see on your own, minus ices, which takes like 1% cpu
  3. Yes, but I will only choose ffmpeg if it happens to be smaller than ogg/vorbis

@unixpunk
Copy link
Owner Author

That said, I've realized I was overlooking the easiest solution for this and that's using named pipes and an encoder of choice. That encoder will be either ffmpeg or ogg/vorbis, whichever is smaller. Icecast and Ices will not be implemented.

@unixpunk
Copy link
Owner Author

unixpunk commented May 3, 2019

Note to self...WTF, named pipes break when you try to access them through httpd...back to icecast+ices?...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants