Genvid SDK 0.7.1 - Alpha Release

Welcome to the alpha release of Genvid Technologies SDK. The goal of this release is to provide a first preview on our API as well as the capacity to start developing a full Genvid Streaming Experience with your own game.

This release is for local use only, but provides a very close experience of what the actual production releases will include. It is also alpha software, so some API, configuration formats and variables and functionalities are likely to change based on the feedback we receive, but we will provide a clear and easy path to upgrade to future releases.

This release also lacks some functionalities that we have deemed too unstable for release, as well as some known bugs that we will fix before the full release, but which shouldn’t impede your development.

Missing functionalities

This release intentionally doesn’t provide the capacity to deploy the services on the server. This will be provided in our SDK 1.0 release. Other missing functionalities that will be released at a later date (but before 1.0) are:

  • Audio capture and streaming support
  • User authentication and validation
  • More secure handling of secret parameters
  • Hardware encoding
  • More video format support
  • Direct data support

More to come

Additionally, we are preparing the work for a lot of new features after the initial launch:

  • Multi datacenter support
  • Multiple broadcast sessions management
  • Multiple audiovisual and data streams coming from the same or multiple instances
  • External audio/video streams, coming from external sources
  • Instant replay
  • Live video edition and basic composition effects
  • Offline recording and playback of data streams
  • Offline broadcast session editing

Bugs fixed in this version

Update the website integration to the new API

The website integration of the previous version were based on our older API. It is now up to date with our latest version.

Parallel initialization/termination in UE4 integration

The initialization and termination of the Genvid library is now done in the GenvidPlugin.

Add dependencies between job and services

Proper dependencies are now set between services. Services can now wait for a service to be available before being launched. This fix some startup issues which could happen on busy or lower machines (like some VM).

New ffmpeg job

We add a new separated FFmpeg job to avoid the error on start up if the services isn’t ready to answer, leading to an unnecessary delay on startup until the encoder is restarted.

Last frame is no longer repeated

The last frame is no longer repeat more than a second if the game is disconnected. Instead, the stream is paused. Note that this behavior is there only to give the time for the game to reconnect but could lead to undesirable behavior if the stream isn’t feed for a long time (usually more than a minute).

Cleaned up reduce operations to those actually available

Notably, the average reduction operation is no longer available due to the fact that users can compute sum/count themselves.

Known bugs

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

Logs aren’t displayed in nomad-ui

Nomad-ui fixed this issue, but unfortunately requires a more recent version of Nomad, which itself has issues under Windows. In the meantime, you can still access the logs for the tasks by calling tutorial.py log, or tutorial.py stderr and tutorial.py stdout for more precision.

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 you could have for that is to not allow Windows to go to sleep when you are running the service, or simply to restart the service with a tutorial.py reinstall (unfortunately, tutorial.py restart is not sufficient).

Spaces in binaries path

Due to a strict validation rule in Nomad, we couldn’t support spaces when specifying the path of the executables used in jobs. Under Windows, we try to shorten the path to 8.3 format, but that could fail depending on filesystem support. Also, spaces in the executable name itself are strictly not supported, since the 8.3 format will change the process image name used by Nomad for monitoring.

The YouTube stream isn’t properly reset after a manual restart

If the services are stopped and restarted shortly after, the YouTube streaming service will consider it as part of the same streaming session. Although a desirable effect most of the time, this could lead to showing up the previous session due to the long latency between the services and the actual view. 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 a minute should be enough) before restarting the service.

Unreal Tournament website sometimes shows too many players

The website code doesn’t always properly clean up the list of current players, and can sometimes display players left over from a previous game. This only happens when a new game starts by itself, and restarting a game by hand should avoid this issue.