Genvid SDK 1.19.4

Welcome to Genvid SDK 1.19.4. This is a bug fix release. See the previous release notes for more information on the 1.19.0, 1.19.1, 1.19.2, and 1.19.3 releases.

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 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 of A/V and Data (still beta).
  • Live video editing and basic composition effects (still in beta).
  • RTMP Ingest server (still in beta).
  • Unity3D integration (Game and Management).
  • Unreal Engine integration (Game and Management).
  • REST API to control the services (still in beta).
  • Tools and scripts for managing your local and remote clusters, with example scripts for AWS.
  • Metrics feed (still in 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:

  • Remote management services for sharing 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 features exposed in our UI (including the plugins).
  • Offline data-stream recording and playback.
  • Offline broadcast-session editing.
  • SDK Manager to help handling multiple SDK installations.

Minor changes and other fixes

  • [sdk] Fixed annotations repetition on every frame.
  • [sdk] Fixed annotations not being able to share streams with game data.
  • [sdk][services] Various performance and reliability improvements.
  • [composed] Fixed reconnection when composed try to reconnect to gvencode.
  • [gvencode] Fixed desynchronization between audio and video when used in ingest mode.

Known bugs

Output buffer grows and rarely shrinks

This bug happens only with Twitch or YouTube and creates a very high latency in the video stream. There is no guaranteed workaround for this issue but it’s fixed in v1.20+.

Compose service is switched in warning mode when streams are blocked

This could stop the game or the Ingest service from connecting to the Compose service. Restarting the system, without an active stream on is the only known workaround.

Sometimes, gvencode reports the error message Output buffer size is too big

This bug only happens with the standalone player or with Studio when the network is unresponsive. There is no workaround for this.

First frame is not kept/resent if the SDK is not connected

If a single frame is sent, it is lost if the SDK is not connected. The workaround is to regularly resubmit the frames in case this problem occurs. This problem is fixed in v1.20+.

Restarting the streaming for Ingest is adding a delay for Ingest audio

If you stop and restart streaming in OBS, audio and video won’t be synced anymore in Studio. The workaround is to start the webcam FIRST and to not stop the OBS stream for the remaining of the streaming session. This problem is fixed in v1.20+.

Audio/Video/Data desync when restarting the game while using Studio and Ingest

‌We are working on a permanent fix for the desync issue that occurs when you restart a game while using Studio and Ingest.

To work around this issue in the meantime, start the webcam FIRST so Studio assigns it to source-0. As long as the webcam feed continues and remains assigned to source-0, the desync issue won’t happen if the game crashes and restarts. You will have to re-adjust delay sliders once the game restarts. This problem is fixed in v1.20+.

Twitch Extension Developer Rig not working

The Twitch Extension Developer Rig doesn’t provide any real player or video stream to synchronize the data. For this reason, our web client isn’t able to play back any data.

Studio in multi-user mode has limitations

In multi-user mode, the Studio interface currently allows two users to adjust the same setting simultaneously, causing changes to be lost.

We plan to add a locking feature in a future revision to avoid this issue. In the meantime, we strongly recommend taking precautions against two users adjusting settings simultaneously.

Compose window isn’t available if behind a proxy

Bastion may encounter issues if the host is behind a cluster firewall (like on an Amazon EC2 machine), making it impossible to bring up the Compose window.

Future versions of Bastion will include a remote server which allows access from different machines. To work around the current issue, create VPN connections to the Bastion machine so the client machine can access the Bastion’s local IP.

The application doesn’t work properly after Windows comes back from sleep

Nomad has some difficulties with sleeping jobs, including itself.

Although it isn’t likely the issue will be fixed in a future version of Nomad, this generally shouldn’t impact a production environment. If you need to work around this issue, either:

  • Prevent Windows from going into sleep mode while you run the service, or
  • Restart the service using the genvid-bastion reinstall command. (The genvid-bastion restart command won’t resolve the problem.)

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

If you stop and quickly restart the services, the YouTube streaming service considers it 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

When using the WASAPI audio auto-capture mode, every sound going through the machine’s default audio-device gets captured. This includes system alerts and 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. This yields some echo with progressively worse sound quality since it is compressed every time it is streamed.

You can disable audio in 2 ways:

  • Set settings.encode.input.silent to true in your configuration. (The default setting.)
  • Use our raw audio-capture, which is now the default setting in Unity.

Standalone player with Firefox

The readable streams must be enabled in Firefox for the standalone player to work properly. You must set dom.streams.enabled and javascript.options.streams preferences to true from the about:config URL.

Auto-cut checkbox state is stored locally only

In Studio, the state of the auto-cut checkbox in Scene Widget is only stored in local storage: Clearing the browser cache will also clear user input. Also, if auto-cut is turned “on” before the Studio session ends, it will be set back to “off” by default when you start the Studio session again.

Studio can not take inputs of the same control from multiple windows

If Studio is opened in more than one browser window and inputs are received from different sources to one control, the final value will then bounce between the different inputs instead of updating it to the latest one. For example, in Audio Mixer Widget, if a user changes the slider of Master Gain to 20 db and another user then changes it to 0 db, the slider handle will bounce between 20 db and 0 db instead of being set to 0 db. Inputs from different windows to one control is not recommended until we resolve the issue.

Unity 2018 Tutorial - Might Have Wrong Resolution

When using Unity 2018, you might have resolution problems upon launch. The window of the stream might not have the desired resolution thus resulting in an offset between the video stream and the UI. We currently have no workaround for this but are investigating the issue. Please note that this issue does not occur in Unity versions prior to 2018. This problem is fixed in v1.20+.

Annotations are not behaving as intended

A bug introduced in version 1.19.0 is causing unintended issues with how annotations are working. These issues are:

  • Annotations must use their own Stream ID.
  • Only the last annotation of each frame is included.
  • On the web side, the last annotation is repeated on every call to OnDraw.

Until we resolve this bug, any use of annotations needs to account for these limitations. This problem is fixed in v1.20+.

iPhones experience sync defects with the Youtube player

Spectators using iPhones may experience issues with video/data synchronization. We are currently investigating the issue. Synchronization is working well with iPads and Android terminals.

Studio monitor can’t display Source 0 and 1 feeds

Studio monitor view can’t display properly the video sources from source 0 and 1. As a consequence, we decided to temporarily deactivate the related tabs in the Studio monitor widget. This problem is fixed in v1.20+.