Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

html5 audio livestreaming

I'm creating my own audio, without controls of the browser.

<audio src="http://50.7.98.194:8081/~dl3/cgi-bin/dl.cgi/bqmu5mltxcqy43mxecgo4gnw743qr7fd7io22q5xj4/gl1mwvp6b326.mp3" id="audio">
</audio>

I have these functions, called when clicked some buttons:

function play()
{
   audio.play();
}

function play()
{
   audio.pause
}

function stop()
{
   audio.pause();
   audio.src = audio.src;
}

But for now, I only can reproduce mp3 or ogg files, but not a live stream radio. I read about some plugins, but I need do it with pure html5.

Could you help me, please? Thanks very much,

like image 558
Daniel Garcia Sanchez Avatar asked Jun 07 '13 07:06

Daniel Garcia Sanchez


People also ask

Can I play audio in HTML5?

HTML5 features include native audio and video support without the need for Flash. The HTML5 <audio> and <video> tags make it simple to add media to a website. You need to set src attribute to identify the media source and include a controls attribute so the user can play and pause the media.

Can you live stream audio?

All you need is a quality microphone that can be connected to a computer. Most broadcasters use USB mics or XLR mics connected via some sort of soundboard. Once this is set up, you can pull that audio feed into a live broadcasting software application.


2 Answers

Playing audio from a "live source" seems to be supported by modern browsers. Basically just use the normal HTML 5 audio tags, and input the "live stream" URL as the source, ex:

<audio controls>
  <source src="http://audio-mp3.ibiblio.org:8000/wcpe.mp3" type="audio/mpeg">
  <source src="http://audio-ogg.ibiblio.org:8000/wcpe.ogg" type="audio/ogg">
</audio>

And the stream "just works" as it were, though attempting to seek with the default controls does nothing. So eventually you may want to replace the controls with "custom" ones, in normal HTML 5 media style. For backward compatibility to non HTML 5 browsers, this project may be useful: https://github.com/etianen/html5media/wiki/Embedding-audio (haven't tested it with live streaming but could/should work). Mp3 codec seems to be supported in major browsers (barring possibly firefox on Linux [?]). Opus might be another nicely cross platform option, I'm not sure codec wise what is the "best" choice as it were.

With some streams (shoutcast I presume) I have had to add a closing ';' to the URL, see https://stackoverflow.com/a/3182814/32453 for notes there, but that's basically just to get the "right" url.

like image 185
rogerdpack Avatar answered Oct 12 '22 12:10

rogerdpack


Unfortunately, there is still no single video and audio codec, which is supported by all browsers! The programmers have to ensure that there is fallback provided for use-cases where browser A doesn't support codec B and vice versa.

You can take a look at this compatibility table, for both desktop and mobile browsers.

Desktop:

  • Internet Explorer (9.0+) support MP3 and AAC codecs
  • Chrome (6.0+) support Ogg Vorbis, MP3, WAV+
  • Firefox (3.6+) support Ogg Vorbis, WAV
  • Safari (5.0+) support MP3, AAC, WAV
  • Opera (10.0+) support Ogg Vorbis, WAV

Mobile:

  • Opera Mobile (11.0+) supported codecs are device-dependent
  • Android (2.3+) supported codecs are device-dependent
  • Mobile Safari (iDevices with iOS 3.0+) support MP3, AAC
  • Blackberry (6.0+) support MP3, AAC

Since flash is still widespread enough, it's probably the safest fallback.

Also, I want to note that there's nothing worse to use some library, some of them (e.g. jPlayer) provides very powerful interface and this only can help you to produce better code!

I think you can find everything you want to know in the following article: HTML5 Audio Radio Player by Opera Devs

like image 23
Kristian Vitozev Avatar answered Oct 12 '22 11:10

Kristian Vitozev