Genvid SDK 1.7.0

Welcome to Genvid Technologies SDK 1.7.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 committed to a regular pace for our releases until we get all the features done for a comfortable 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)

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.
  • RTMP Ingest server.
  • 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

Toolbox must be installed manually

The Genvid Toolbox must now be installed manually. The goal was to better support multiple versions of our SDK installed simultaneously. You can do it simply by running the py install-toolbox.py script in SDK installation folder. More information at the start of our Quick Tour Guide.

New Local Bastion Host

We have completly rethought our approach for deployment to allow better integration with multiple clusters, multiple distributed input source and a team workflow. Instead of the previous sample scripts local.py and cloud.py, we now have a whole new set of tools in our Toolbox. You can discover them in our Quick Tour Guide and follow our Upgrade instructions if you are upgrading from a previous version.

Support for raw video frame in the SDK

In this release, we finally added the raw frame support in the SDK which is the last step for deprecating FFmpeg and the broadcastd service. With the support for multiple streams and basic live video editing, there is no reason to keep the old service around. Let us know if you are missing any feature that you cannot achieve with the new system.

Minor changes and other fixes

  • [installer] Remove the local vs cloud installation option. Everything is now installed by default.
  • [installer] Remove terraform-s3-dir from the tools, since it is no longer use. You can download it from https://github.com/saymedia/terraform-s3-dir
  • [toolbox] Fix decoding of stdout outputs in the Python Toolbox.
  • [toolbox] VaultTool now connect on LAN address by default. Since we don’t exposed vault externally, it shouldn’t be a problem.
  • [unity] The small hang on game exit was due to a blocking call in our SDK. It is now handled properly.
  • [docker] The latest version of docker (17.06.1-ce) fixes the logs always going to stdout. The workaround for the logging has been removed.

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.