What is nanoStream Cloud?
nanoStream Cloud is a combination of software and services to enable interactive live streaming Live at a global scale.
You can connect a live source (camera) to a live encoder, and send your stream to nanoStream Cloud nanoStream H5Live Player then works on all browsers to play this live stream with ultra-low-latency.
nanoStream Cloud provides a global CDN to ingest and playback your live streams with high quality anywhere in the world.
Easy to use dashboards, code snippets and APIs enable easy integration into custom applications.
What is ultra low latency live streaming?
Live streaming latency is the time between the video leaves the camera and shown on the player device. Ultra-low-latency live streaming means near-realtime latency values of around 1 seconds.
nanoStream Cloud supports ultra-low latency live streaming, on any HTML5 browser with a global scale.
ULL Live Streaming enables interactive applications for audience engagement.
- 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.
- nanoStream H5Live player (nanoPlayer), part of nanoStream Cloud, can be used for browser-based low latency playback on any device.
- nanoStream Webcaster broadcaster part of nanoStream Cloud can be used for plugin-free, browser-based low latency broadcast (live encoding).
Which Systems (OS) do you support?
All existing major browsers and platforms are supported which support H264/AAC live playback.
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. SRT, 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).
How to use RTMP for Live Encoding from your Application or Server?
RTMP is still a valid and suitable format for live encoding and broadcast from your camera source, used by most live streaming platforms. Most Live Encoder software, hardware and servers support RTMP. For ULL Live Streaming, certain configurations are recommended, like OBS.
RTMP URL Structure
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.
Resolution and bitrate settings
The primary quality impact is done by the pixel resolution (e.g.
1280×720) and the video encoder bitrate.
- 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.
- For live streams, a constant pixel resolution is required, as most streaming and playback environments do not support changing resolutions.
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.
Baseline” profile may lead to slightly lower latency values (max 500ms)
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:
See additional documentation about nanoStream Cloud and H5Live Server and Player.
Can I Stream or record to a CDN?
nanoStream Cloud can be used as a low-latency CDN for your interactive live streams. With nanoStream Cloud, you can additionally push to other RTMP publishing points (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.
Does the software automatically adjust the Bitrate - Adaptive Bitrate?
Yes! nanoPlayer now supports Adaptive Bitrate Playback (ABR).
Can I add meta data to the live Stream?
Yes, if you publish RTMP Meta Data, it will be passed through to nanoPlayer.
Can I Stream only Audio?
Yes, that is possible.
Is screen capture available in your product?
Yes, with nanoStream Webcaster and nanoMeet.
Do you offer hardware accelerated encoding or decoding?
nanoPlayer automatically uses the browser-based builtin codec for playback, which is usally hardware accelerated
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)
Is your product compatible with Flash?
Flash is an outdated technology.
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
Why do I get a lower bitrate then specified?
A live encoder 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.
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