Genvid Forum

Genvid SDK 1.7.0


#1

Welcome to Genvid Technologies SDK 1.7.0. While this release is not yet ready
for production deployment, it is robust enough today to allow developers to
start developing a full Genvid Streaming Experience into their existing
projects.

We are hard at work, and a version of our SDK ready for production deployable
builds are coming soon. We expect future releases will allow for a smooth
transition. In the meantime, we recommend you start your integration today
using our local development environment.

Current functionalities

We currently deliver core functionality which allows you to run your game and
stream it to YouTube, along with extra game events and messaging to make it a
true Genvid Streaming Experience.

  • 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
  • Multiple distributed source of A/V and Data
  • Live video edition and basic composition effects
  • Streaming of additional arbitrary game events and notifications
  • Scalable event messaging system
  • Automatic synchronization between video and game data streams
  • Native and Web SDK for easy integration
  • Unity3D integration (Game and Management)
  • Unreal Engine integration (Game and Management)
  • D3D11, Unreal Engine 4 and Unity 3D Samples
  • Extensive documentation
  • Local deployment tools and scripts
  • Cloud deployment tools and scripts (still in beta)
  • REST API to control the services (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 bastion host to manage your clusters directly on the cloud
  • More secure handling of secret parameters
  • User authentication and validation
  • Hardware encoding
  • Multi datacenter support
  • Multiple audiovisual and data streams coming from the same
    instance
  • Support for audio/video streams coming from external sources
  • Instant replay
  • Enable choosing a terraform source when creating a cluster
  • 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 version 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.

Support for raw video frame in the SDK

In this release, we finally add the raw frame support in the SDK, 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.

Local bastion host

This is a major change in the way genvid manage clusters. In this update,
local.py and cloud.py are depracated and replaced by a new set of tools.

Bastion-API

The bastion API is a web API to manage clusters running in the cloud. It also
run the terraform script in isolated environment. This means that multiple
cluster can be deployed at the same time.

Genvid-bastion

This is a command line tool used to start the bastion-api and a local cluster.
From now on, genvid-bastion will need to be started before using the other
tools.

Genvid-clusters

Genvid-clusters is a command line tool enabling cluster’s management. It
interract with the genvid-API.

Genvid-sdk

Genvid-sds is a command line tool used to configure one cluster. It can be
used for the local cluster as well as a remote cluster.

Sample Upgrade

Each sample have been modified in order to reflect the new set of tools. They
all have a personalized python script to help the build process and the
configuration.

The genvid.hcl has been replace by multiple configuration file under the
config folder.

Minor changes and other fixes

  • [installer] Removed the cloud installation option. Everything is
    now installed in the typical installation.
  • [installer] Removed terraform-s3-dir from the tools, since it is no
    longer used. 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.
  • [toolbox] Added configuration file validation.

Known bugs

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

The default WASAPI interface doesn’t set the audio input format properly

Right now, the input format isn’t set properly with the WASAPI interface. To
circumvent this, we force the audio format on the cloud to be that of our
default interface. You must do the same locally to match your machine
settings, if you don’t want to hear pops during the playback. Future versions
will adapt automatically to the input format instead of being on fixed
configuration settings.

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 manual restart

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. 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 loops infinitely

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), or to use a
separate machine to observe the website. These issues are moot when the game
is deployed in a cloud infrastructure.

Small hang can be noticed when losing Unity application focus

If you are running your Unity application with the stack and decide to proceed
to a different window, you are bound to get a small hang several seconds
later. This hang disappears when moving the mouse. This hang doesn’t affect
the video, audio or data capture.

Docker jobs in nomad always redirected stderr to stdout log file

We got this change of behaviour just before the release and investigating the
cause of it. In the mean time, we handle it in our scripts, but you could be
affected too if one of your job where running inside a docker with nomad and
you expect the log to be in stderr.

Source:
https://www.genvidtech.com/doc/current-releases.html