0

I'm trying to help this open radio station guys: radioqk.org. However I'm quite new about the topic of streaming and radio servers. I'm quite surprised that all what I found is about a desktop software clients (eg. Sam broadcaster, Butt, Radittcast, DarkSnow...). However they are confusing to configure. So we are trying to embed it on their website to make it easier to stream from any part of the World to any stream server (eg. giss.tv, caster.fm, listen2myradio.com...)

I have read that it's not possible at the moment, because there is no way to make a streaming HTTP PUT request.

However, if I have understood well, it is possible with liquidsoap.fm because its server support the webcast.js protocol, using the following code: https://github.com/webcast/webcaster


On the other hand, I have search php code able to record from microphone to store it on the server. Or maybe it's about HTML5 and its new function getUserMedia()? It seems it was difficult a few months ago, but now it is possible so:

  1. Is there any live-streaming service with the client integrated so it can record from the user's computer microphone / sound card? I mean, is there a similar service like giss.tv able to record from the user's computer microphone / sound card?
  2. If I'm right, IceCast is the most common opensource implementation of radio streaming. Is there any implementation of IceCast able to record from the user's computer microphone / sound card?

By the way, the idea is integrating it in a WordPress server. That's why I have based the search on PHP (I have not found a WordPress plugin able to solve this problem). However it could be done in another language / server to embed it into WordPress afterwards.


Finally, a workaround could be the following article that talk about including on the website a hyperlink to a Java-coded VNC viewer to take a desktop application to the web in 15 Minutes. In the VNC server side would be any of the desktop software available we have talk about above.

Any light about this topic? I'm quite confused about what path I should take...

Community
  • 1
  • 1
chelder
  • 3,819
  • 6
  • 56
  • 90

1 Answers1

1

I have read that it's not possible at the moment, because there is no way to make a streaming HTTP PUT request.

That's correct. In the very near future we'll have Streams support in the Fetch API, which gets around this issue. In the mean time, it isn't possible directly.

As I mentioned in the post you linked to, you can use a binary websocket connection. That's what the Liquidsoap webcast.js uses... a binary web socket, and a server that supports it. Liquidsoap supports their own protocol, so you can use this to then stream to a server like Icecast.

Is there any live-streaming service with the client integrated so it can record from the user's computer microphone / sound card?

I run the AudioPump Web Encoder, which acts as a go-between for web based clients and your servers. The web-based client can be configured in the URL, so the users don't need to do anything. This might meet your needs.

If I'm right, IceCast is the most common opensource implementation of radio streaming. Is there any implementation of IceCast able to record from the user's computer microphone / sound card?

Yes, Icecast is a popular open source server. But, the server itself cannot and should not be what is recording the audio. You wouldn't want to run the server in the same place as you're doing the encoding... otherwise you'd need all your bandwidth there. The encoder is separate from the server so that you can encode in one place, upload one stream, and then the server distribute it to thousands.

Brad
  • 159,648
  • 54
  • 349
  • 530
  • wow! Your answer looks very well! I'll look it careful and answer. Thanks! :) – chelder Dec 12 '16 at 11:07
  • You wrote in the very near future it is possible. Now we have nearly 4 years later, do we have meanwhile Streams support in the Fetch API? –  Oct 12 '20 at 19:33
  • 1
    @Charbacca Not for HTTP PUT, no. :-( There was a spec, it was even implemented, and now there is opposition due to some fears over HTTP/1.1 compatibility. I'm quite sad about it to be honest... the whole thing has been torpedoed. If you're interested, I can try to find some links to the discussions... they've been scattered around over the W3C standards GitHub pages. – Brad Oct 12 '20 at 19:35
  • Hmm... okay, thanks for the quick answer! Is there maybe now a new/easier possibility to record audio in the browser and stream it live to a shoutcast server? –  Oct 12 '20 at 21:08
  • @Charbacca Web socket proxy is the only way. If you're interested in licensing code for this rather than building it from scratch, please let me know! brad@audiopump.co – Brad Oct 12 '20 at 21:36