Category Archives: Documentation

  • -

How To Stream To Mobile Devices (iPhone, iOS) with nanoStream and Wowza

Streaming to Mobile Devices is simple with nanoStream.
iOS requires H.264 video and AAC audio, which is used by default in nanoStream.

Encoder Settings

Video and Audio format should be H.264 and AAC.
Video Encoding Profile can either be “Baseline” or “Main”, dependent on the playback device support.
In earlier iOS revisions, only “Baseline” profile worked. Since iOS 3, also Main Profile should work.

Output Streaming URL

Live Playback in iOS devices requires HLS support (“HTTP Live Streaming”). Wowza supports delivering with HLS with an RTMP upstream.

So the encoder can run in RTMP mode and let the Wowza server to the protocol transcoding to HLS.

Encoder URL: Live URL + Stream Name:




Playback URL on iOS Devices:


Note: this might require additional configuration on the streaming server. See the Wowza or Adobe documentation for further help.

  • -

How to use the new nanoStream 3.0 SDK Multi-Encoder feature

The Multi-Encoder feature allows multiple output streams in different configurations.
With the SDK or Web Plugin, it is very easy to create streaming outputs.

Example pseude code:

out1 = live.AddOutput("rtmp://");
out2 = live.AddOutput("c:\temp\record.mp4");
live.SetVideoBitrate(400*1000,out1); // 400 k RTMP
live.SetVideoBitrate(1500*1000,out2); // 1.5 M MP4


  • -

How to embed the nanoStream web plugin into a web page

Embedding the nanoStream web plugin into a web page is as simple as using other plugins such as the Flash player. nanoStream is a plugin object which can be controlled by Javascript. There are helper scripts available with a high level API and sample user interface commands.

Preparing a web page

In your HTML code, add a div tag at the location where you would like to see your live camera. Name it “liveEncoder”.


<div id = "liveEncoder">liveCam here</div>

The liveEncoder element will be replaced by Javascript with the nanoStream plugin.

Embedding with jQuery

Generally you should access plugins only when the web page is fully loaded. You can ensure this by using the jQuery.ready function:

jQuery(document).ready(function($) {

// embed the plugin at div "liveEncoder" and name it "nanovid1"
liveembed('liveEncoder', { id: 'nanovid1' });

// get access to the plugin and make it a Javascript object "live"
var live = $('#nanovid1')[0];



Run the encoder broadcast

// init the encoder

//stream to an RTMP publishing point and stream name
live.DestinationURL = "rtmp://";

//run the encoder broadcast


See the example web page at our demo site for a full example including user interface elements.


  • -

  • -

Documentation nanoStream Live Video Encoder Toolkit

Manual and Documentation for Usage of the nanoStream Live Video Encoder Application and Browser Plugin.

Latest changes: updated documentation for nanoStream 2.5


See also the
nanoStream API Documentation for Developers


Info / Manual

pdf icon LiveVideoEncoder quick Info



“Read More”