We have released the nanoStream Webcaster Client 5.11.0.
This new version adds a new feature to the nanoStream Webcaster live streaming platform. You can now add a new source type based on HTML5 canvas or other stream sources to enable user-generated live sources, separate to live camera or device screens.
To use this feature, a new API call was added. It adds flexibility in terms of what
you can present to your customers and covers a wide range of additional use cases: setMediaStream().
Possible Use Cases
- Mixing of different video sources into one stream
- PIP (picture in picture)
- Mix of different audio sources
- Preprocessing of video and audio in the browser
- Video overlays, e.g. rendering animations, drawings, watermarks and logos
- Use any HTML5 canvas as a live source
1) Acquire different video/image and/or audio sources
2) Mix sources into one MediaStream
- Video: in a canvas, write your render loop where you mix the sources via HTML canvas drawing
- Audio: with the WebAudio API
3) Pass the resulting stream to the webcaster API
- Access audio and video devices
- Capture a screen share or an application window
- Creating a MediaStream from an HTML canvas
- Create MediaStreams with the WebAudio API
Samples & Documentation
Please refer to the following, included samples:
- “webcast_external_mixing_sample.html” or online via this link (please replace XXX with your API key)
- “webcast_external_stream.html” or online via this link (please replace XXX with your API key)
- You are in control of the resolution and framerate of the stream, the render loop is in your control.
- You are responsible to write a render loop that roughly maintains the target framerate.
- The mixed stream must not change resolution during the webcast (before calling stopBroadcast()).
- The mixed stream must not be ended or deleted during the webcast.
- The browser tab has to be in focus while the webcast is running (tab-throttling).
- API call setMediaStream(): Allows passing an external MediaStream object to the API. The stream will be used for broadcasting instead of the internally created stream via startPreview().
- Inofficial pre-release version.
- Improved error handling. Additional server side errors are now visible in the public API, server errors start with 10xxxx.
- The errors “userinfo” property now optionally contains a metadata object. This object holds additional information for the user, e.g. when logging.
- Improvement of inner API state, in cases were recovering from a broken broadcast was not possible.
and Demo Page