16
Live Audio Broadcast Using Wowza Media Server

Live Audio Broadcast With Wowza Media Server

Embed Size (px)

DESCRIPTION

Live Audio Broadcast With Wowza Media Server

Citation preview

Page 1: Live Audio Broadcast With Wowza Media Server

Live Audio Broadcast Using Wowza Media Server

Page 2: Live Audio Broadcast With Wowza Media Server

Magento eCommerce

SaaS Applications

Video Streaming Portals

Rich Internet Apps

Custom Development

250+ team with experience in managing offshore, distributed development.

Neev Technologies established in Jan ’05

VC Funding in 2009 By Basil Partners

Part of Publicis Groupe

Member of NASSCOM.

Development Centers in Bangalore and Pune.

Offices at Bangalore, USA, Delhi, Pune, Singapore and Stockholm.

Key Company Highlights

iPhone

Android

Windows Phone 7

HTML5 Apps

Web

User Interface Design and User Experience Design

Performance Consulting Practices

Quality Assurance & Testing

AWS Consulting PartnerRackspace

Joyent Heroku

Google App Engine

Mobile Cloud

About Neev

Outsourced Product Development

Page 3: Live Audio Broadcast With Wowza Media Server

• Wowza Media Server is a popular, Java-based streaming server used for streaming live and on-demand audio and video content for consumption on various client platforms like PC, iPhone, Android, etc.

• Wowza provides a lot of features out of the box. Its written in Java and can be extended by writing components in Java

• In order to stream live radio, Neev uses a Flex based client that captures the audio input from user’s microphone and sends the same to Wowza Server for broadcasting

• This needs knowledge of Flex API and ActionScript

• For listening to the live stream, one can use JWPlayer (for Flash-based browsers) or HTML5 for iPhone/iPAD browsers

Wowza for Live Audio Broadcast : A Brief Overview

Page 4: Live Audio Broadcast With Wowza Media Server

Setting up Wowza Media Server comprises a few simple steps :

• Assuming we have a Wowza Media Server already installed, we need to setup an application under Wowza Media Server. Let’s call this liveradio.

• To do this:

1. Create a folder named liveradio under Wowza installation’s application directory

2. Create a folder named liveradio under Wowza installation’s conf directory

3. Create a file named Application.xml by copying an existing file from conf directory

4. Open the newly created Application.xml and modify the value of /Root/Streams/StreamType node to live

5. Restart Wowza server

Setting up Wowza Media Server

Page 5: Live Audio Broadcast With Wowza Media Server

• Coding the Flex Client for an audio broadcast would need very good

understanding of Flex API and ActionScript (AS).

• You will need to setup an ActionScript project.

• An IDE like FlashDevelop can be used for the same.

• The typical steps you need to follow to capture audio and send to Wowza are

given in the next few slides.

Coding the Flex Client for Broadcasting

Page 6: Live Audio Broadcast With Wowza Media Server

• The screenshot below links to AS code for setting up the microphone. • Please click on it to view it on the respective blog page.

Setting up the Microphone

Page 7: Live Audio Broadcast With Wowza Media Server

• We need to set up the Network Connection to send captured audio data to Wowza server.

(The screenshot below links to relevant code. Please click on it to view it.)

Setting up the Network Connection

Page 8: Live Audio Broadcast With Wowza Media Server

• The broadcasted audio can be played by using a flash based player or HTML5 audio-tag based on the browser.

• One can also use a player like JWPlayer that can embed audio/video in Flash format with HTML5 fallback.

• Any other flv player that supports RTMP streaming can also be used.

• The code has two configurations viz RTMP and HTML5.

• RTMP is supported in browsers that allow content in flash.

• Since both iPhone and iPad do not support Flash content therefore one must fall back on HTML5 and use the Cupertino streaming support for iPAD and iPhone.

(Please click on the code below to reach our blog which contains the code)

Creating a Page for Playing to the Live Broadcast

Page 9: Live Audio Broadcast With Wowza Media Server

• The streams published from the flex based client is in RTMP format and it can be streamed to a

RTMP/Flash based player only

• SPEEX, which is the audio codec used, needs to be converted to an H.264 compatible codec

like AAC . This can then be played on an iPhone/iPAD

• There are two ways to do the same

• Firstly, one could use an AddOn like Wowza Transcoder or a tool like FFMPEG

• The Wowza Transcoder works on only 64-bit machines with 64-bit Java, whereas FFMPEG is Open-

Source and could be used on 32-bit machines

Challenges and How They Were Overcome

Page 10: Live Audio Broadcast With Wowza Media Server

• The Wowza Transcoder AddOn can transcode any configured incoming stream from one format to another.

• Here we encoded our live audio format codec from SPEEX to AAC.

• Here’s how to do this:

1. Setup Wowza Transcoder AddOn. The AddOn works only on 64-bit machines.

2. Create a transcoder template audio_speex.xml in Wowza’s transcoder/templates folder as shown in the linked content below. (Please click on it to reach the blog which contains the code)

3. Edit Application.xml and set /Root/Transcoder/Templates to ${SourceStreamName}_speex.xml, transrate.xml

4. The Wowza Transcoder Add-on is quite powerful and can transcode the incoming streams to multiple formats and bit rates for consumption on different types of players and devices with varying bandwidths.

Wowza Transcoder AddOn

Page 11: Live Audio Broadcast With Wowza Media Server

• FFmpeg is a set of tools to record, play and convert audio and video from/to various formats

• It can be used with Wowza Media Server to encode the live audio stream from our application from SPEEX to AAC codec

• Below are the steps to get it working with Wowza:

1. Install FFmpeg for the respective platform. This is a challenging task as FFmpeg has a lot of dependencies. It will usually get installed using yum on CentOS or aptitude get install on Ubuntu. Make sure FFmpeg is configured with –enable-librtmp and –enable-libfaac. Run ffmpeg command without any arguments if these are enabled.

2. Start broadcasting the audio from the flex client

3. Run the below command to transcode the live stream called ‘audio’ from Wowza and make it available as another stream called ‘audio_ios’ for playing on iPhone/iPADffmpeg -i rtmp:///liveradio/audio -acodec libfaac -vcodec copy -f flv rtmp:///liveradio/audio_ios

FFMPEG : Simple Command Line Tool for Transcoding

Page 12: Live Audio Broadcast With Wowza Media Server

This setup can be extended easily to stream live video along with audio.

This can be done as follows:

1. In your flex client, the Camera will be setup just like the Microphone was in the above example and the same will be attached to the flash NetStream

2. The JWPlayer code is modified so that the provider for html2 is video instead of sound

Extending Current Setup to Include Video

Page 13: Live Audio Broadcast With Wowza Media Server

• We at Neev Technologies have successfully used Wowza Media Server for

applications involving on-demand streaming of movies/TV programs, live

audio/video streaming.

• In addition there are other use cases like live re-streaming/recording of IP

camera streams, live video/chat where we see Wowza as a great fit.

• Some applications were deployed on a single node and some used Origin-

Edge cluster for high load and scalability.

• Using the Java API we were also able to customize Wowza to add additional

security features like time based expiry of stream URLs.

Click here to read this blog post on the Neevtech blog.

Wowza Use Cases at Neev

Page 14: Live Audio Broadcast With Wowza Media Server

Clients

Page 15: Live Audio Broadcast With Wowza Media Server

Partnerships

Page 16: Live Audio Broadcast With Wowza Media Server

India - Bangalore USA Sweden

The Estate, # 121,6th Floor,

Dickenson Road

Bangalore-560042

Phone :+91 80 25594416

Neev Information Technologies Pvt. Ltd.

1121 Boyce Rd Ste 1400,

Pittsburgh PA 15241

Phone : +1 888-979-7860

Neev AB, Birger Jarlsgatan

53, 6tr,

11145, Stockholm

Phone: +46723250723

[email protected]

India - Pune#13 L’Square, 3rd Floor

Parihar Chowk, Aundh,

Pune – 411007.

Phone : +91-64103338

Singapore#08-03 SGX Centre 2, 4

Shenton Way,

Singapore 068807

Phone: +65 6435 1961

For more info on our offerings, visit www.neevtech.com