Using AAC over HTTP in the web player

Introduction

Many stations want to consolidate their streaming costs by having less streams to look after. One of the options is to use the same high bitrate mobile stream in their desktop browser console. If the stream in question is an mp3 stream, that’s fine. But if it’s an AAC over HTTP stream then things get a bit tricky.

Things you need to know

In most situations, your desktop browser console will play your stream via the Flash part of the audio engine. Flash can play AAC however it can’t natively be pointed at an AAC stream. Instead, the stream has to be ‘encapsulated’ (wrapped) in an FLV container. So in effect you have to trick Flash into thinking it’s a video stream but with no vision. When a browser is using the HTML5 engine, remember that only mp3 streams will play. The engine is unlikely to play an AAC stream due to mixed browser support.

How to set up FLV encapsulation

The bad news is that it’s not easy. If you use a streaming company, they should be able to help you. But if you’re going it alone, then there are some challenges.

Step 1: Set up a compatible streaming server

Shoutcast can’t stream AAC really very well at all; Icecast servers can stream AAC but without the FLV encapsulation. This makes them both unsuitable. There are a few options instead:

  • Flash Media Server – this is a pretty good tool for the job but comes with a high price tag
  • Wowza – a US company which supplies a product called the Wowza Media Server. It is fully featured and comes with a medium-level cost attached to it
  • Icecast KH – this is a branch (derivative) of the Icecast project. This version of the server has a high number of extra features including FLV encapsulation, and is free although support will be community-based. To switch on FLV encapsulation, append ?type=.flv to your URL. This only works with this version of Icecast.
  • Echo Server from Liquid Compass – a high end server product with a wealth of features. As used by a number of mainly US radio stations and held in high regard over here.

Once you’ve got a server up and running and can send it an encoded stream, note the URL it gives you, of where listeners can pick up the stream. Important – you need both an FLV-encapsulated stream and a non-encapsulated stream. If you’re using Icecast KH this is easy but for other streaming servers, you should check the documentation

Step 2: Configure your console

Generate a console as normal by logging into the Station Control Panel. When you reach the point on the form where you’re asked to specify your streams, set the main stream to the FLV-encapsulated version and from the dropdown choose AAC/MP4 for Flash as your value and of course insert the stream URL. Click the play button. If nothing works, check that you don’t have a missing cross-domain file and check that the stream plays in a standalone flash (FLV) player.

Next, scroll down to the section where you can specify Fallback and Alternative Streams. Add the URL of your non-encapsulated AAC stream as your fallback and from the dropdown choose AAC for HTML5. Then hit the Generate button

Step 3: Re-upload your new console with these settings

Once you’ve got the stream working, upload your new console to your web server. If you are uploading it to a different place to where your existing one is, remember to update your Console URL in your station record in the Station Control Panel.

Getting more help

We can give you limited support for setting up AAC over HTTP. It’s tricky and will usually need the services of an expert streaming hosting company but we’re happy to help out where we can.

Radioplayer Knowledge Base has written 40 articles

We’ve put together a handy guide to get you set up quickly in Radioplayer. As you know, the Radioplayer console is a browser-based application which is hosted by your station, so before you begin, you’ll need someone who knows their way around your website and has FTP access.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>