The Encoded Stream Out outputs provide a realtime, low latency encoded video output using either h.264 or HEVC that you can send to a variety of destinations. Ventuz provides SRT streaming and a browser based solution out of the box, and additionally you can expand its capabilities by either using our plugin for the popular GStreamer framework, or the pipe or Web socket based API.
Additionally Encoded Stream Out outputs support keyboard, mouse and touch input, depending on the respective client's capabilities.
This How To will teach you how to configure and use the Stream Out output in different scenarios.
To use Stream Out we need to create a Device Configuration for it. Head to the configuration tab inside the launcher or configuration editor and create a new device configuration.
After naming and creating your configuration add a Stream Out to the right output side via drag and drop.
The properties of this output type differ a few ways from other output types.
Codec (NVIDIA GPUs only)
Color Sampling (NVIDIA GPUs only)
SRT output URI *
Encode Mode:
Rate Control Mode:
Bitrate:
Constant QP:
If you need detailed information about the other properties available on this output, take a look here
Previously when using this mode, the stream is not sent anywhere by default. These settings are usually needed to enable your own custom program with your own tools to catch or use this stream via our Ventuz Stream Out API.
In Version 8.1, we provide several ways to do this:
Ventuz comes with a web based viewer for Stream Out outputs with low latency and input support for keyboard, mouse and touch, allowing you to turn any (reasonably modern and powerful) device with a browser into a screen and input device.
It's available in the Launcher and the Configuration Editor, both app and web based, in the Live tab, described here.
You can also open the viewer directly on any browser that can reach your Ventuz machine using the URL
with
The viewer supports as many concurrent connections per output as your network can handle. Note that if you want to support input, the input events from all connected devices on one output will mix and probably not give you the intended result.
Codec support varies between browsers. H.264 4:2:0 should be supported everywhere. For HEVC support on Windows browsers you will need to install the HEVC Video Extensions on the machine running the browser; Apple and a lot of Android devices support it out of the box. HDR and 4:4:4 support depend on your exact browser and platform. If in doubt, test!
The effective input latency is subject to network conditions. Using a wired network is the best solution. Using WLAN is acceptable but you might experience latency spikes or the occasional stutter or "jump" in the visuals - the viewer tries to keep the latency to a minimum and to compensate for latency spikes in your Wi-Fi.
If you plan on using phones or tablets, we recommend looking for a Kiosk Browser app for those devices - those apps allow the viewer to be displayed full screen without any additional UI.
Additionally the viewer is available as a Web Component so you can embed it in your own web based solution. This web component also allows you to turn input on and off, adjust the latency to your network conditions, and customize its appearance as well as add internationalization.
The component and documentation are available here: https://github.com/VentuzTechnology/ventuz-stream-player or on the NPM package manager using a simple npm install ventuz-stream-player.
The Stream Out outputs now have a "SRT Output URI" option. This takes any srt:// URL and streams a MPEG-TS stream with the encoded video and high bitrate MP2 audio.
For a simple test setup try the following:
Issues can arise with the localhost part of the URL when IPV6 is still active in a network adapter, when no stream can be detected try using 127.0.0.1 plus port or disable IPV6.
GStreamer https://gstreamer.freedesktop.org/ is a open source framework / library / tool collection for ingesting, processing and outputting video and audio. What our plugin does is interface our Encoded Stream Out outputs with GStreamer so users can grab the encoded video and PCM audio and process it further - for example transcode it and send it to a streaming server.
The plugin and documentation can be found here: https://github.com/VentuzTechnology/Ventuz-GStreamer-Plugin