Genvid SDK 1.10.0

Welcome to Genvid SDK 1.10.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 through other software. Please contact us at support@genvidtech.com if you’re planning a production deployment.

We are still committed to a regular pace for our releases until we get all the features done for a comfortable production deployment. We always work to ensure a smooth upgrade between releases and provide as much backward-compatibility support as possible. Please contact us if you have any issues.

Current functionalities

This is a summary of our current functionalities. See below for a detailed 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 additional arbitrary game events and notifications.
  • Scalable event-messaging system.
  • Javascript SDK for embedded webpage.
  • Automatic synchronisation between video- and game-data streams.
  • Multiple distributed sources for A/V and Data. (Beta)
  • Live video editing and basic composition effects. (Beta)
  • RTMP Ingest server. (Beta)
  • Unity3D integration. (Game and Management)
  • Unreal Engine integration. (Game and Management)
  • REST API to control the services. (Beta)
  • Tools and scripts for managing local and remote clusters. (Includes example scripts for AWS.)
  • Metrics feed. (Beta)
  • Load-testing library.
  • Extensive documentation.
  • Multiple integration samples.

More to come

Additionally, we are working on a full new feature pipeline to be released as soon as each is ready:

  • A remote management service to share your clusters with others.
  • SSL support for external APIs.
  • ACL support on Management APIs.
  • Hardware encoding.
  • Instant replay.
  • Better cluster-configuration management.
  • Many more improvements and feature explanations in our UI. (Including plugins.)
  • Offline data-stream recording and playback.
  • Offline broadcast session editing.

Major changes in this version

Studio now supports synchronisation between multiple windows

You can now open multiple windows of our Studio application, giving you control of your stream from multiple devices.

New composition module: Chroma Key Filter

We added a new filter to our composition toolbox: The Chroma Key Filter–better known as the green-screen special effect. Integrate yourself or any other video directly into the scene with this new component.

Direct sound capture with integration in the Unity plugin

We added the ability to submit sound directly into the SDK instead of using auto-capture on the speaker device. This feature avoids the previous problem of external sounds being included in your stream. We already use it as our default setup in our Unity3D sample. Expect other integrations to come soon.

Unreal Engine Viewport capture

We added the ability to capture from any UTexture in Unreal Engine. This new feature has better support for streaming from the different Play Modes (PIE, Standalone, and Simulate) and also lets you select what is currently streaming while preserving the full display on screen.

More cluster settings management in Cluster-UI

We added the ability to manage your job and log definitions directly from the UI.

New APIs for easier cluster configuration

We added a number of improvements to our Bastion API.

You can now configure your remote storage backend for Terraform easily by choosing from the multiple configurations already available with Terraform.

We also now support managing Terraform modules from many remote source, like a web server, S3 buckets, or source-code management websites like GitHub or Bitbucket.

You can manage new modules either via script or directly from the UI.

New bug-reporting tool

We added a new bug-reporting tool which lets you capture the most important logs and settings from your installation. This is an early version of the tool and we hope it improves our ability to help you when problems arise.

Minor changes and other fixes

  • [bastion-api] Enforce cluster states on cluster deletion and add a force option to override.
  • [genvid-bastion] Cleaner management of the bastion using the new install and uninstall commands.
  • [unity] Add support for Unity3D version 2017.02 in our Unity3D sample.
  • [studio] The 404 (page is not found) error on the Studio link in the job browser page is fixed.
  • [sdk] A rarely occuring bug where the video would go back to a previous frame before continuing with the right frame sequence has been fixed.
  • [sdk] A rarely occuring bug where the frame grabber would allocate frames without limit when the game window is minimised has been fixed.
  • [genvid-ami] An error during genvid-ami setup could forbid restarting the setup. We now try to recover where we were left off.
  • [bastion-api] Add new log URL to retrieve a single log: /v1/terraform/instance/{instanceId}/command/{commandId}
  • [genvid-sdk] Allow image uploading to a custom bucket. The script is also more intelligent about only uploading images that require it.
  • [standalone-player] Better performance for the standalone player with Firefox.
  • [ue4 plugins] Fixed some troubles with the interface refresh when trying to make some modifications to the settings.
  • [engine plugins] Improvements made to the cluster-management interface.
  • [cluster-api] Fixed a bug that caused small log files to stall when retrieved.
  • [compose] Fixed a crash in compose when accessing Consul settings.

Known bugs

We weren’t able to fix some bugs in time for this release, but we intend to fix them shortly.

Compose window isn’t available if behind a proxy

Future versions of Bastion will have a remote server to allow access from different machines. The current version has limited support for this and is likely to encounter some problems if the Bastion host lives behind a cluster firewall (like on a Amazon EC2 machine). The workaround is creating VPN connections to the Bastion machine so that the local IP of the machine is accessible from the client machine.

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 desirable 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. 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 don’t occur when the game is deployed in a cloud infrastructure.

Service cannot discover the statsd service

Unless you are using the GENVID_STATSD_URL variable, the statsd service must be available before starting it. This is an oversight on our side and will be fixed in the next version.

Game capture doesn’t recover from being run in background

There is a bug when the game recovers from very high numbers of Genvid_SubmitVideoData resulting in the tutorial sample being sent in the background (either by minimizing the window or the screensaver starting). The capture data will show out-of-order captured frames in the playback. The bug shouldn’t happen on a correctly configured server.

Standalone player with Firefox

The readable streams must be enabled in Firefox for standalone player to work properly. You must enable dom.streams.enabled and javascript.options.streams prefs from about:config.