Genvid SDK 1.11.0¶
Welcome to Genvid SDK 1.11.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 email@example.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.
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
- Automatic synchronisation between video and game data streams
- 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)
- 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:
- 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.
- SDK Manager to help handling multiple SDKs installation
Major changes in this version¶
Genvid Studio Update¶
You can now customize the Genvid Studio UI using our new dashboard
support. We also added new visual effects for dissolve and fade in/out
video transitions with
Experimental Support for Twitch¶
We added prototype support for Twitch and Twitch Extension. This implementation has several issues, including a lack of precision in the synchronization.
See “Streaming Services” section for more information.
New Unity Prefab Sample¶
Based on the feedback of our users, we decided to refresh our prefabs in the Unity Sample and removed the old ones. You should still be able to use the code from previous SDK but we hope that you will find the new approach more usable.
Minor changes and other fixes¶
- [sdk] Fixed a lock that could sometimes lead to long video submission times.
- [sdk] Fixed an exception when using the BGRA8 pixel format.
- [sdk] Some fixes related to the tutorial raw capture sample.
- [sdk c#] Fixed an error for converting a timecode value.
- [sdk c#] Added the method SubmitVideoData to perform raw video capture and dxswapchain capture without the GenvidPlugin.dll.
- [sdk c#] Downgraded the Newtonsoft.dll version to 8.0.3 to be compatible with the JSON .NET For Unity plugin.
- [sdk c#] Add AssemblyInfo for both
- [web] Initialized the
IGenvidClient.clientSteamMSin the constructor to avoid undefined variables.
- [web] Fixed synchronization issue on genvid client.
onDrawstopped to miss some data frames.
- [web] Fixed an issue preventing the successive instantiation of GenvidClient using YouTube player.
- [web] Fixed an issue where a wrong timecode was sent in the onDraw callback.
- [cluster-api] Added help pages for the web API.
- [cluster-api] Fixed the events json schema not accepting the
- [cluster-api] New API to start and stop all jobs.
- [cluster-api] Disallow edition of the jobs definitions if a job is running.
- [bastion-api] Fixed backend editable fields.
- [bastion-api] Fixed support for Terraform S3 backend when state is empty.
- [bastion-api] Added force parameter to
terraform/importmoduleto circumvent runtime errors during initialization.
- [bastion-ui] Added busy indicators when loading content.
-u) aren’t update correctly when used with custom bucket and path (
- [toolbox] New environment variable.
GENVID_BASTION_URLcan be used to connect to a remote bastion.
- [toolbox] Method
repository_updateto fit with
- [terraform] The scripts of the
game/awsmodule now configure the services directory on the
- [terraform modules] There is a new variable
trusted_cidrsfor security groups to allow more than one trusted IP range.
- [services] Fixed a timecode overflow when its value is bigger then 2**31.
- [services] Now the initial log level is set at the default log level
- [composed] Added log when a stream is ended.
- [composed] Added stream type info in the health check status.
- [gvencode] Added non stop to stream server filter. This fix a problem during inter-matches in the UT4 sample.
- [gvencode] Fixed TS field format in burn-in timecode.
- [gvencode] Fixed a video frame copy when their pitches are different.
- [rtmsp] Fixed a problem with a partial header read.
- [rootd] Added a missing field (SessionId) in the annotation stream
- [leafd] Added preliminary support for WSS on the leafd.
- [vault] Updated Vault to 0.9.1 to fix a memory leak in server.
- [ui] Updated Cluster-UI, Bastion-UI and studio web sites to angular5.
- [bugreport] Fixed a freeze when we create a bugreport and jobs run.
- [ue4 plugin] Fixed a problem in the video capture (swapchain mode). it constantly reset the texture and can potentially cause trouble with the video stream.
- [ue4 plugin] Added a command line option to override the
- [ue4 plugin] Added a stream report on skipped stream data
- [samples] Fixed the web scripts for building so they can run outside the installation directory.
- [tutorial] Outdated raw capture sample fixed.
- [ut4 sample] Removed unused variables in ut4_engage.ts (fixing a ts_lint error).
- [ut4 sample] Fixed a crash when the player state is null.
- [ut4 sample] Fixed a crash when a character has no capsule component.
- [ut4 sample] Filled new information in the Player info structure (Health, WeaponName, IsDead).
- [ut4 sample] Updated Player location error handling.
- [ut4 sample] Fixed a problem with the game data update rate.
- [ut4 sample] Fixed a rare crash when a match has started.
- [documentation] Audio format enum values explicited in the list of the main stream parameters. in GenvidStreamer class.
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¶
When using the WASAPI audio auto-capture mode, every sound going through the machine’s default audio device gets 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). You can disable audio in 2 ways:
truein your configuration. (The default setting.)
- Use our raw audio-capture, which is now the default setting in Unity.
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.
Standalone player with Firefox¶
The readable streams must be enabled in Firefox for standalone player
to work properly. You must enable
Genvid Studio stops working when all streams are destroyed¶
When using Genvid Studio for an application that you are streaming with the Genvid SDK, if you are destroying and re-creating the audio/video stream, it will cause your video/audio stream to stop working until the stack is restarted.
Genvid Studio UI layout is not saved between sessions¶
The layout saved is associated with the IP and port of the current Genvid Studio instance. We are working on a future solution that will persist the layouts between sessions.