Genvid Ingest sample

The Genvid Ingest sample shows you how to add an RTMP Ingest server in your project using gvencode, which allows you to work with an external A/V source.

Note that you can only add audio and video streams to the composition. The Ingest server can’t receive data streams or notifications, nor can it send commands or events.

For this sample, we will start with the Genvid Studio sample and we will replace the second instance of the Tutorial sample with the Ingest server and a local instance of OBS Studio (version 20 or later) to connect to it, providing us a second source for a webcam, for example.

Configuring the cluster

Follow the Genvid Studio sample instructions to start all the services. Verify everything works correctly, then stop the services.

Next, load the Ingest configuration:

py ingest.py load

Use the Cluster UI to verify that the Ingest job is present. Click the Start All button to restart the services. When the Ingest link turns blue, right click it and select Copy link address.

Configuring OBS

To set up OBS Studio:

  • Download and install OBS Studio.
  • Configure it and select the scene you want to stream.
  • Select the Stream Parameters panel in Settings.
  • Select Custom Streaming Server and paste the URL you
    copied. (It should start with rtmp://.)
  • If your browser added unsafe- to the URL, delete it.
  • Verify your video settings match those of the output. (The
    tutorial sample defaults to 1280x720 @ 30 FPS.)

Now you can start streaming.

Composing the stream

Go back to Cluster UI and click the Studio link. Your stream is now the second source. See The Studio website for information on working with your broadcast stream.

Script reference

Ingest sample script

usage: ingest.py [-h] [--loglevel {DEBUG,INFO,WARNING,ERROR}] [-c CLUSTER_ID]
                 {load,unload,env} ...

Positional Arguments

command Possible choices: load, unload, env

Named Arguments

--loglevel

Possible choices: DEBUG, INFO, WARNING, ERROR

Set the script log level

-c, --cluster_id
 The cluster id. Default local

Sub-commands:

load

Load the specified target definition in the cloud

ingest.py load [-h]

unload

Unload the specified target definition in the cloud

ingest.py unload [-h]

env

Print environment variables

ingest.py env [-h]