Genvid SDK 1.8.0¶
Welcome to Genvid Technologies SDK 1.8.0. This release is ready and stable for integration and can be used for local development and limited cloud deployment. We are still missing some features for a complete production deployment which can be provided however by other software. Don’t hesitate to contact us at support@genvidtech.com if you are planning to do so.
We are still commited to a regular pace for our releases until we get all the features done for a confortable production deployment. Even so, be sure that we will do our best to ensure a smooth upgrade between releases and provided as much backward compatibility support as possible. Contact us if you have any problem.
Current functionalities¶
Here is a summary of our current functionalities. See below for the list of new features in this release.
- Windows C++ API with a C# wrapper
- D3D11 or raw frame video capture
- WASAPI audio capture
- Video encoding (H264 + AAC)
- Video streaming to YouTube
- Multiple audiovisual and data streams coming from multiple instances
- Streaming of additional arbitrary game events and notifications
- Scalable event messaging system
- Javascript SDK for embedded webpage
- Automatic synchronisation between video and game data streams
- Unity3D integration (Game and Management)
- Unreal Engine integration (Game and Management)
- D3D11, Unreal Tournament and Unity 3D Samples
- Extensive documentation
- Tools and scripts for managing your local and remote clusters.
- Configuration scripts for AWS deployment
- REST API to control the services (still in beta)
- Multiple distributed source of A/V and Data (still beta)
- Live video edition and basic composition effects (still in beta)
- RTMP Ingest server (still in beta)
- Metrics feed (still in beta)
More to come¶
Additionally, we are working on a full new feature pipeline to be released as soon as they are ready:
- A remote management services to share your clusters with others.
- SSL support for external APIs.
- ACL support on Management APIs.
- Hardware encoding.
- Instant replay.
- Better management of cluster configurations.
- Many more improvements and features expositions in our UI (including the plugins).
- Offline recording and playback of data streams.
- Offline broadcast session editing.
Major changes in this version¶
Web API for multiple streams¶
The arrival of the composition feature in the previous release
require a new way to handle your data if you have more than one source
of data. Go see our Website Integration
section for more details.
Genvid-UI replaced by Bastion-UI and Cluster-UI¶
The genvid-ui service does not exist anymore. This web site has been redistributed to bastion-api and cluster-api.
Genvid Studio is now a sample¶
With the separation of the website, the Compose page have now gains
it’s own web server and a sample to help with its configuration.
While still on preview, this setup will allow us to better evolved
this service. Get a look at it in the Genvid Studio sample
section.
New RTMP Ingest server¶
Based on our gvencode engine, the RTMP Ingest server allows use to
ingest an RTMP source into your Genvid Broadcast. This will allow to
easily add a webcam or screen share screen to any of your broadcast,
and use Genvid Studio to edit and modify your live stream in direct.
Go check our Genvid Ingest sample
to get more information.
New Metrics feed¶
We start exposing some internal metrics through the statsd protocol,
and even provide a sample to show how to integrate it with TICK, the
OpenSource Time Series Platform. You will find all the information
under the Metrics
section and the TICK Integration
sample.
Standalone streaming service¶
This feature now allows the developer to broadcast a stream locally without having to rely on a third party streaming service such as Twitch or Youtube. It is therefore not required to have a YouTube or a Twitch account configured anymore. Note that this feature only works with Chrome 59+ at the moment.
Video capture by camera without any HUD in Unity¶
We updated the Unity3D sample to show video capture with a rendering texture. This allows capturing directly from a camera feed without displaying the application HUD.
Minor changes and other fixes¶
- [services] Upgrade Vault to version 0.8.1. This change requires an
update of the
server
AMI. - [openapi/sdk] Port of all REST API to the GenvidRESTCSharp wrapper.
- [toolbox] Fix argument passing for
genvid-bastion log
command. - [toolbox] Allow to run a
genvid-ami setup
on an already created cluster. - [toolbox] Fix a bug where
ConsulTool.get_service
can return an empty list when a service is search with a tag. This bug was creating a race condition on vault initialization. - [toolbox] Add the
genvid-ami list
to list available AMIs. - [openapi] Fix type of the
LogData.logLevel
definition in the REST API. - [sdk] Added the capacity to select the audio device using the
GENVID_AUDIO_DEVICE
environment variable. This change requires an update of thewingame
AMI. - [composed] Improve synchronization of audio/video/data.
- [services] Add frame grouping and session name in the composition pipeline.
- [genvid-ui] A new section of the settings UI allows the edition, creation and deletion of links definition.
- [cluster-api] A new endpoint GET -> ‘/linksdef/{linkID}’ allows the user to get one link definition.
- [sdk] The deprecated
IDataFrame.timeCode
in theIGenvidClient.onDraw
callback is now set to the capture time of the data like previously instead of the composition time.
Known bugs¶
We weren’t able to fix some bugs in time for this release, but we intend to fix them shortly.
Genvid UI and Compose windows isn’t available if behind a proxy¶
Future versions of the bastion will have a remote server to allow access from different machines. The current version however has very limited support for this and is very likely to have some problems if the bastion host lives behind a cluster firewall (like on a Amazon EC2 machine). The workaround will be to create a VPN connections to the bastion machine so that the local IP of the machine is accessible from the client machine.
Engine Plugins can only manage local cluster¶
The new API for multiple cluster support was not available to implement the cluster selection at this time. It will be available in a future release.
The application doesn’t work properly after Windows comes back from sleep¶
Nomad has some difficulties with sleeping jobs, including itself. This
is unlikely to get fixed in Nomad, but shouldn’t happen in production
environment. The best workaround at present is to not
allow Windows to go to sleep when you are running the service, or simply
to restart the service with a genvid-bastion reinstall
(unfortunately,
genvid-bastion restart
is not sufficient).
The YouTube stream isn’t properly reset after a restart of gvencode¶
If the services are stopped and restarted shortly thereafter, the YouTube streaming service will consider it as part of the same streaming session. Although this may be a desirable effect most of the time, this could lead to showing up as the previous session due to the long latency between the services and the actual view which can create some delay in the stream. A future version will provide a proper way to request a new stream, but until then, you can either reset your stream key from the YouTube dashboard or simply wait a little longer (about 5 minutes should be enough) before restarting the service.
Audio captures microphone, or infinitely loops¶
Since we capture audio with a loopback device, every sound going
through the machine running the game will get captured. This includes
system alerts, microphone input, as well as your web browser. When
test-viewing your game stream using the same local machine running the
game, the game will also capture its own audio stream with ~10s of
latency, yielding some echo with progressively worse sound quality
(since it is compressed every time it is streamed). The recommended
workaround is to disable audio altogether
(genvid.encode.input.silent = true
in your configuration, which is
the default), or to use a separate machine to observe the website.
These issues are moot when the game is deployed in a cloud
infrastructure.