Is low latency streaming available?
Yes, our nanoStream Cloud software and services support low latency live streaming, on any HTML5 browser with a global scale.
- End-to-end latency is dependent on all components in the workflow: capture, live encoder, upstream, server/cloud, downstream, player.
- Latency is primarily based on stream buffers and streaming protocols used. Buffers can happen on all parts of a stream, encoder, streamer, server, CDN and player.
- The new nanoStream H5Live player part of nanoStream Cloud can be used for plugin-free, browser-based low latency playback.
- The new nanoStream Webcaster broadcaster part of nanoStream Cloud can be used for plugin-free, browser-based low latency broadcast (live encoding).
See also here.
Which Systems (OS) do you support?
nanoStream Apps and SDKs are available for different platforms:
- nanoStream Apps/SDKs for Windows, MacOS, iOS, Android
- nanoStream Webcaster broadcaster for all WebRTC-enabled browsers
- nanoStream H5Live Player for all HTML5 browsers (desktop and mobile)
Which video, audio and streaming formats does nanoStream support (H264, RTMP, RTSP, ...) ?
nanocosmos supports the following Streaming formats:
*** Ingest/Upstream from Live Sources:
- RTMP with H264 Video and AAC Audio (nanoStream Apps/SDKs or 3rd party software/hardware)
- nanoStream Webcaster (browser based)
- Other formats upon request, e.g. RTSP, H265, VP9
- H5Live (unique live streaming with ultra-low-latencyy on all browsers)
- HLS (ultra-low latency based on H5Live)
For plugin-free operation and mobile devices, the built-in hardware codecs are supported (H264 Video, AAC Audio).
**** Other platforms / native
The following formats are supported for some platforms only upon request (Windows):
- RTSP (server mode without streaming server)
- UDP-TS / MPEG2-TS (point-to-point and Multicast)
- MPEG-2 Video, including IMX and XDCAM-HD
- MPEG-PS and TS
How to use RTMP for Live Encoding from your Application or Server?
RTMP is originally developed for live streaming with the Flash player. It is not suitable or recommended for playback. However, RTMP is still a valid and suitable format for live encoding and broadcast from your camera source. Most Live Encoder software, hardware and servers support RTMP.
RTMP is based on the following URL format:
The port is optional and
1935 by default.
Example to stream to nanoStream Cloud:
The “rtmp application” is “live”, the “stream name” is XXXX-YYYY
Sometimes the RTMP URL is split into the base URL and the stream name like this:
URL: rtmp:/bintu-stream.nanocosmos.de/live Stream Name: XXXX-YYYY
With nanoStream Cloud, you get this information with the bintu API or dashboard (https://bintu.nanocosmos.de).
Some software and server applications require a username and password. This rtmp-specific proprietary information is not support by nanoStream Cloud. By default, you do not need username and password. For adding security, you can use web hooks and tokens. See separate docs.
RTMP Playback has been supported by the Flash player in Browsers, which is now outdated. Some native apps still support RTMP playback. For a better user experience, we recommend using our nanoStream H5Live player running on all HTML5 browsers.
Resolution and bitrate settings
The primary quality impact is done by the pixel resolution (e.g.
1280×720) and the video encoder bitrate.
- For live streams, a constant pixel resolution is required, as most streaming and playback environments do not support changing resolutions.
- Video Encoding Quality is very much dependent on the content! Static content with little movement and structure is much better to compress than moving content.
- Mobile networks have limited bandwidth and usually lead to a quality impact of a stream. If you set a high bitrate which cannot be delivered through the network, you will get buffering impacts.
The choice of the resolution and bitrate is highly dependent on your requirements and expected quality results. There are different options to choose from, you can always adjust settings according to your needs.
It is highly recommended to run your own tests based on typical content, and approve by your own quality expectations.
Here is some general information:
- Standard resolutions:
640×360 (16:9), up to
Recommended bitrate: min.
300-500 kBits/sfor medium quality,
1000 kBit/sfor high quality
- HD resolution:
600-1000 kBits/sfor low/medium quality,
1000-2000 kBits/sfor high quality
- Full HD:
2-3 MBit/sand higher
- 4K: up to
- you should configure the camera in the max. resolution you would like to use for streaming
- it never makes sense to up-scale video
- Full HD takes a lot CPU and bandwidth
- for live streaming HD
720is probably preferrable to
Also see the recommendations by Apple, Youtube, Vimeo and Adobe
Data traffic usage is dependent on the overall bitrate sent from the encoder, plus the bitrate received for every viewer. Total traffic usage can be calculated per hour from the bitrate:
bitrate/s * 3600 / 8 = x bytes/h
500 * 3600 / 8 = 225 MB / hour
1000 * 3600 / 8 = 450 MB / hour
Can I Stream to a mobile phone or tablet pc - including iphone or ipad??
Streaming to Mobile Devices is simple with nanoStream.
H.264 video and
AAC audio, which is used by default in nanoStream.
Video and Audio format should be
Video Encoding Profile can either “
Main” or “
High”, dependent on the playback device support.
In earlier iOS revisions, only “
Baseline” profile worked. Later versions also support Main and High Profiles.
OUTPUT STREAMING URL
The unique nanoStream h5Live player supports live playback with ultra-low-latency on all HTML5 browsers. Live Playback in iOS devices requires
HLS support (“HTTP Live Streaming”).
Encoder URL: Live URL + Stream Name:
Playback URL on iOS Devices:
iOS support the
HLS format only with a “playlist.m3u8” played over http or https.
The generic format is:
See additional documentation about nanoStream Cloud and H5Live Server and Player.
Which Streaming Servers can I use?
nanoStream LiveVideoEncoder works best in combination with nanoStream Cloud or nanoStream Server software.
nanoStream Cloud offers the best end-to-end user experience for low-latency live streaming worldwide. It includes the unique H5Live player software for all HTML5 browsers.
Additionally, many third party servers or CDN may work, like Akamai, Adobe, Youtube.live, Facebook.live
Can I Stream or record to a CDN?
nanoStream Cloud can be used as a low-latency CDN for your interactive live streams. Other CDNs may also work based on RTMP publishing (Akamai, Limelight, Youtube Live, Facebook Live, and more.)
Can I record a video file locally or on the server?
Yes, you can either record to a file instead of streaming to a server or stream and record simultaneously. Supported file formats depend on the platform you are working. Usually
MP4 is supported and recommended on all platforms.
- To stream only to file you can set the output url to e.g.
- To stream to a server and a file, set the output url for the server and set the output url 2 to e.g.
“c:\temp\h264.mp4”. by using the DestinationURL2 property or use SetOutputConf() (for an example see here)
On some nanoStream platforms, it is possible to encode and stream with different quality levels the same time (e.g. Windows, iOS).
It is possible to record a local HiRes / HD file while streaming with low resolutions.
This is also possible in mobile encoders on iOS and Android. Please contact us for details.
Is local encoding and recording continued if the internet connection is dropped?
This feature depends on the platform. On Windows, if the option “UseInternalReconnect” is enabled, the local encoding and recording is continued, even if the internet connection is dropped. As of nanoStream version 3.0 this option is enabled by default. See here for detailed explanation.
(deprecated:) * configure the server to record the incoming stream, for documentation see here
Does the software automatically adjust the Bitrate - Adaptive Bitrate?
The nanoStream Live Encoder Software has this feature for streams to adjust the bitrate to the existing bandwidth for the rtmp upstream.
Do you offer a command line application?
Yes, a command line encoder is available for both Windows and MacOS.
The command line application has all the features of the nanoStream plugin. Some settings can be set with command line arguments. All settings can be configured with xml profiles, similar to FMLE.
Note that the mac command line app (like the mac plugin) does not support all features of the win command line app.
Can I add meta data to the live Stream?
Yes, you can use the nanoStream or DirectShow API to add Meta Data information to a live RTMP stream. Meta data is partly supported by nanoStream H5Live.
Can I Stream only Audio?
Yes, that is possible.
Using the desktop application
- open the app
- go to the input tab
- as video source choose “No Video”
- configure the rest of the settings to your liking
- start the stream
Set the video source to an invalid value:
plugin.VideoSource = -1;
Is screen capture available in your product?
Yes. There is an screen capture filter in our SDK. You can Capture the Entire Screen, a Region, a single window or you can use the Mouse Follow to capture a area following the mouse.
Can I use more than one video source?
Yes, up to two live video sources are supported, including screen capture. Either to stream in 3D or to stream with picture-in-picture mode. The latter mode also supports switching between the two video sources on the fly.
Do you offer hardware accelerated encoding or decoding?
Hardware accelerated encoding and decoding is available for the
Intel Quicksync architecture, and optionally for
Can I automatically or manually check the available bandwidth?
A bandwidth check function is available on Desktop and Mobile platforms.
There are different modes available:
- static bandwidth check before streaming
- dynamic bandwidth check during streaming (adaptive bitrate)
Can I also stream files?
Yes, following file types are supported as live sources for streaming:
Please note, that there is no 100% guarantee to be able to play all combinations of file >formats and settings, as there are hundreds of combinations of formats available which >playback capabilities are very much dependent on the local system environments.
How to stream files with the nanoStream API
To stream files, you need to set
VideoSource to the
value 101 and set
FileSourceFilename to the
path of the file (including the file name).
See here, for further information.
Seemless switch / Ad insertion into live streams
There is also a special stream mode (set with
SetConfig("UseSourceBridge", "1")), with which it is possible to stream from a video source (e.g. a webcam) and play files on demand during the streaming. This can be used to play advertisements during a stream for example.
Available options for this special stream mode are described here.
Is your product compatible with Flash?
Flash is an outdated technology but still sometimes used.
nanoStream is compatible with the
RTMP streaming protocol, which is independent from Flash.
H5Live, you can go completely plugin-free on all devices without using Flash.
Do you offer WebM or Vp8 encoding?
Some nanoStream platforms also support
VP9 and other codecs.
nanoStream Webcaster supports
Please contact us for details.
What is Multiplexing?
For Video/Audio Encoding and Streaming, Multiplexing means combining the Video and Audio data into a common container or stream. There are several multiplexing standards available, dependent on the application and system environment.
Example Multiplexing Standards:
MPEG TS(transport stream) - used for broadcast and streaming
MPEG PS(program stream) - used for local storage and DVD
MP4(ISO File Format)
RTMP(Realtime Message Protocol)
See also the wikipedia article
Can I send multiple streams?
nanostream 3.0 this is possible with the applications and the
See here, for a simple API sample code.
Where are the logfiles stored on my computer?
follow these steps to enable event logging for live video encoder
follow these steps to enable logging for the browser plugin
"LogToFile" to an existing folder, e.g.:
the name of the file is specified and the files are located in the path you specified.
Why does the plugin in some cases stream with a lower bitrate then specified?
The plugin queries the camera device for the supported resolutions, framerates and colorspaces. If the camera reports the values, which it actually supports, the plugin would choose a supported capture mode of the camera. The resulting bitrate should be equal to the specified bitrate.
But, if the camera reports, that it is capable of delivering e.g.
30 frames for a resolution of
640×480, the plugin assumes that the camera will send
30 frames. If the actual frame rate is then lower (e.g.
15 fps) the bitrate will be the half of the specified bitrate.
That is to keep the quality specified by the user. Another reason for a lower bitrate is, that the lower framerate could be a cause of high cpu load or a low bandwidth. If the plugin would adjust the bitrate in this case, the framerate would be even lower in the process, which in turn would lead the plugin to increase the bitrate again, which in turn would lower the framerate, etc.
Also keep in mind that the lighting conditions can have a huge effect on the frame rate of the >camera. We have several webcams delivering only half of the frame rate, if it is too dark.
How do I set a Stream name?
"myStream" represents the stream name.
Using bintu.live / nanoStream Cloud bintu.live creates stream names for you which you can use for live streaming with nanoStream Cloud.
Using the desktop application
- open the app
- go to the
- insert the url and the stream name in the
output url edit field
- the stream name is the part of the whole url, which comes after the
"+"or the last
Setting the stream name programmatically The stream name is always set with the rest of the url.
For the stream name
"myStream" you would do:
you can also use
Do you have a 64bit version of the Encoder?
Yes, we do have a 64 bit version available as an upgrade to the existing package.
Firewalls are sometimes sensitive to streaming protocols. Here is some general advice, please contact us for details.
H5Live playback is connected over https, port
443, or http, ports
Mp4 File Playback
MP4 File playback is connected over https, port
443, or http, port
RTMP Playback and Ingest
RTMP is using ports
WebRTC is using ports
https/443for API calls, port
80for turn (udp and tcp), and ports
40000-50000over UDP. </details