SlideShare a Scribd company logo
1 of 16
Live Audio Broadcast Using
Wowza Media Server
About Neev
Web

Mobile

Magento eCommerce
SaaS Applications
Video Streaming Portals
Rich Internet Apps
Custom Development

iPhone
Android
Windows Phone 7
HTML5 Apps

Cloud
AWS Consulting Partner
Rackspace
Joyent
Heroku
Google App Engine

Key Company Highlights
250+ team with experience in
managing offshore,
distributed development.
Neev Technologies
established in Jan ’05
VC Funding in 2009 By Basil
Partners

User Interface Design and User Experience Design

Part of Publicis Groupe
Member of NASSCOM.

Performance Consulting Practices

Quality Assurance & Testing

Outsourced Product Development

Development Centers in
Bangalore and Pune.
Offices at Bangalore, USA,
Delhi, Pune, Singapore and
Stockholm.
Wowza for Live Audio Broadcast : A Brief Overview

• 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
Setting up 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
Coding the Flex Client for Broadcasting
• 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.
Setting up the Microphone
•

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 Network Connection
•

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.)
Creating a Page for Playing to the Live Broadcast
• 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)
Challenges and How They Were Overcome
• 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 OpenSource and could be used on 32-bit machines
Wowza Transcoder AddOn
• 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.
FFMPEG : Simple Command Line Tool for Transcoding
• 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/iPAD
ffmpeg -i rtmp:///liveradio/audio -acodec libfaac -vcodec copy -f flv
rtmp:///liveradio/audio_ios
Extending Current Setup to Include Video
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
Wowza Use Cases at Neev
• 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 OriginEdge 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.
Clients
Partnerships
Neev Information Technologies Pvt. Ltd.
India - Bangalore

India - Pune

The Estate, # 121,6th Floor,

#13 L’Square, 3rd Floor

Dickenson Road

Parihar Chowk, Aundh,

Bangalore-560042

Pune – 411007.

Phone :+91 80 25594416

Phone : +91-64103338

USA

sales@neevtech.com
Sweden

Singapore

Neev AB, Birger Jarlsgatan
1121 Boyce Rd Ste 1400,
Pittsburgh PA 15241

Phone : +1 888-979-7860

#08-03 SGX Centre 2, 4

53, 6tr,

Shenton Way,

11145, Stockholm

Singapore 068807

Phone: +46723250723

Phone: +65 6435 1961

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

More Related Content

More from Neev Technologies

How to add Custom Font to your iOS-based App?
How to add Custom Font to your iOS-based App?How to add Custom Font to your iOS-based App?
How to add Custom Font to your iOS-based App?Neev Technologies
 
Our Experience on Google Map Integration with Apps
Our Experience on Google Map Integration with AppsOur Experience on Google Map Integration with Apps
Our Experience on Google Map Integration with AppsNeev Technologies
 
Neev Application Performance Management Services
Neev Application Performance Management ServicesNeev Application Performance Management Services
Neev Application Performance Management ServicesNeev Technologies
 
Neev CakePHP Managed Services Offerings
Neev CakePHP Managed Services OfferingsNeev CakePHP Managed Services Offerings
Neev CakePHP Managed Services OfferingsNeev Technologies
 
Mobile Responsive Design @ Neev
Mobile Responsive Design @ NeevMobile Responsive Design @ Neev
Mobile Responsive Design @ NeevNeev Technologies
 
Business Intelligence Capabilities @ Neev
Business Intelligence Capabilities @ NeevBusiness Intelligence Capabilities @ Neev
Business Intelligence Capabilities @ NeevNeev Technologies
 
Neev Conversion Strategy Capabilities
Neev Conversion Strategy CapabilitiesNeev Conversion Strategy Capabilities
Neev Conversion Strategy CapabilitiesNeev Technologies
 
A Digital Mirror for Luxury Jewelry Stores
A Digital Mirror for Luxury Jewelry StoresA Digital Mirror for Luxury Jewelry Stores
A Digital Mirror for Luxury Jewelry StoresNeev Technologies
 
Neev Open Source Contributions
Neev Open Source ContributionsNeev Open Source Contributions
Neev Open Source ContributionsNeev Technologies
 
Native Mobile Platforms vs Phonegap – A Comparison
Native Mobile Platforms vs Phonegap – A ComparisonNative Mobile Platforms vs Phonegap – A Comparison
Native Mobile Platforms vs Phonegap – A ComparisonNeev Technologies
 
Test Automation - Presented by Nagarajan, Architect @ TechCafe-2014
Test Automation - Presented by Nagarajan, Architect @ TechCafe-2014Test Automation - Presented by Nagarajan, Architect @ TechCafe-2014
Test Automation - Presented by Nagarajan, Architect @ TechCafe-2014Neev Technologies
 
That thing called Requirements - Presented by Mona Walia, Business Analyst @ ...
That thing called Requirements - Presented by Mona Walia, Business Analyst @ ...That thing called Requirements - Presented by Mona Walia, Business Analyst @ ...
That thing called Requirements - Presented by Mona Walia, Business Analyst @ ...Neev Technologies
 
Trendywalks - A Hybris-based eCommerce Store with Custom Features
Trendywalks - A Hybris-based eCommerce Store with Custom FeaturesTrendywalks - A Hybris-based eCommerce Store with Custom Features
Trendywalks - A Hybris-based eCommerce Store with Custom FeaturesNeev Technologies
 
Neev Python Django Competencies
Neev Python Django CompetenciesNeev Python Django Competencies
Neev Python Django CompetenciesNeev Technologies
 

More from Neev Technologies (20)

Neev Load Testing Services
Neev Load Testing ServicesNeev Load Testing Services
Neev Load Testing Services
 
How to add Custom Font to your iOS-based App?
How to add Custom Font to your iOS-based App?How to add Custom Font to your iOS-based App?
How to add Custom Font to your iOS-based App?
 
Our Experience on Google Map Integration with Apps
Our Experience on Google Map Integration with AppsOur Experience on Google Map Integration with Apps
Our Experience on Google Map Integration with Apps
 
Neev Application Performance Management Services
Neev Application Performance Management ServicesNeev Application Performance Management Services
Neev Application Performance Management Services
 
Drupal Capabilities @ Neev
Drupal Capabilities @ NeevDrupal Capabilities @ Neev
Drupal Capabilities @ Neev
 
Neev CakePHP Managed Services Offerings
Neev CakePHP Managed Services OfferingsNeev CakePHP Managed Services Offerings
Neev CakePHP Managed Services Offerings
 
Neev AngularJS Capabilities
Neev AngularJS CapabilitiesNeev AngularJS Capabilities
Neev AngularJS Capabilities
 
Mobile Responsive Design @ Neev
Mobile Responsive Design @ NeevMobile Responsive Design @ Neev
Mobile Responsive Design @ Neev
 
Business Intelligence Capabilities @ Neev
Business Intelligence Capabilities @ NeevBusiness Intelligence Capabilities @ Neev
Business Intelligence Capabilities @ Neev
 
Neev Conversion Strategy Capabilities
Neev Conversion Strategy CapabilitiesNeev Conversion Strategy Capabilities
Neev Conversion Strategy Capabilities
 
RazorfishNeev - An Overview
RazorfishNeev - An OverviewRazorfishNeev - An Overview
RazorfishNeev - An Overview
 
A Digital Mirror for Luxury Jewelry Stores
A Digital Mirror for Luxury Jewelry StoresA Digital Mirror for Luxury Jewelry Stores
A Digital Mirror for Luxury Jewelry Stores
 
Neev Open Source Contributions
Neev Open Source ContributionsNeev Open Source Contributions
Neev Open Source Contributions
 
Native Mobile Platforms vs Phonegap – A Comparison
Native Mobile Platforms vs Phonegap – A ComparisonNative Mobile Platforms vs Phonegap – A Comparison
Native Mobile Platforms vs Phonegap – A Comparison
 
Test Automation - Presented by Nagarajan, Architect @ TechCafe-2014
Test Automation - Presented by Nagarajan, Architect @ TechCafe-2014Test Automation - Presented by Nagarajan, Architect @ TechCafe-2014
Test Automation - Presented by Nagarajan, Architect @ TechCafe-2014
 
That thing called Requirements - Presented by Mona Walia, Business Analyst @ ...
That thing called Requirements - Presented by Mona Walia, Business Analyst @ ...That thing called Requirements - Presented by Mona Walia, Business Analyst @ ...
That thing called Requirements - Presented by Mona Walia, Business Analyst @ ...
 
Hybris @ Neev
Hybris @ NeevHybris @ Neev
Hybris @ Neev
 
Trendywalks - A Hybris-based eCommerce Store with Custom Features
Trendywalks - A Hybris-based eCommerce Store with Custom FeaturesTrendywalks - A Hybris-based eCommerce Store with Custom Features
Trendywalks - A Hybris-based eCommerce Store with Custom Features
 
Neev Python Django Competencies
Neev Python Django CompetenciesNeev Python Django Competencies
Neev Python Django Competencies
 
Phonegap - An Overview
Phonegap - An OverviewPhonegap - An Overview
Phonegap - An Overview
 

Recently uploaded

Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 

Recently uploaded (20)

Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 

Live Audio Broadcast with Wowza Media Server

  • 1. Live Audio Broadcast Using Wowza Media Server
  • 2. About Neev Web Mobile Magento eCommerce SaaS Applications Video Streaming Portals Rich Internet Apps Custom Development iPhone Android Windows Phone 7 HTML5 Apps Cloud AWS Consulting Partner Rackspace Joyent Heroku Google App Engine Key Company Highlights 250+ team with experience in managing offshore, distributed development. Neev Technologies established in Jan ’05 VC Funding in 2009 By Basil Partners User Interface Design and User Experience Design Part of Publicis Groupe Member of NASSCOM. Performance Consulting Practices Quality Assurance & Testing Outsourced Product Development Development Centers in Bangalore and Pune. Offices at Bangalore, USA, Delhi, Pune, Singapore and Stockholm.
  • 3. Wowza for Live Audio Broadcast : A Brief Overview • 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
  • 4. Setting up 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
  • 5. Coding the Flex Client for Broadcasting • 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.
  • 6. Setting up the Microphone • The screenshot below links to AS code for setting up the microphone. • Please click on it to view it on the respective blog page.
  • 7. Setting up the Network Connection • 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.)
  • 8. Creating a Page for Playing to the Live Broadcast • 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)
  • 9. Challenges and How They Were Overcome • 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 OpenSource and could be used on 32-bit machines
  • 10. Wowza Transcoder AddOn • 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.
  • 11. FFMPEG : Simple Command Line Tool for Transcoding • 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/iPAD ffmpeg -i rtmp:///liveradio/audio -acodec libfaac -vcodec copy -f flv rtmp:///liveradio/audio_ios
  • 12. Extending Current Setup to Include Video 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
  • 13. Wowza Use Cases at Neev • 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 OriginEdge 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.
  • 16. Neev Information Technologies Pvt. Ltd. India - Bangalore India - Pune The Estate, # 121,6th Floor, #13 L’Square, 3rd Floor Dickenson Road Parihar Chowk, Aundh, Bangalore-560042 Pune – 411007. Phone :+91 80 25594416 Phone : +91-64103338 USA sales@neevtech.com Sweden Singapore Neev AB, Birger Jarlsgatan 1121 Boyce Rd Ste 1400, Pittsburgh PA 15241 Phone : +1 888-979-7860 #08-03 SGX Centre 2, 4 53, 6tr, Shenton Way, 11145, Stockholm Singapore 068807 Phone: +46723250723 Phone: +65 6435 1961 For more info on our offerings, visit www.neevtech.com