Set Up the Cluster and Extension

Before You Begin

This section assumes that:

Before getting started, you also need:

Create a Twitch Extension for the DirectX Sample

See Create a Twitch Extension for how to create an extension to use with the sample.

Edit the Terraform Configuration

You will need your address, stream key, and channel. See the Configuring Live Streaming section of the Twitch Setup page for information on how to find them.

You have two choices here:

Option 1

Edit twitch.sample.hcl which is located in \samples\streaming_services.

version = "1.7.0"

settings {
    encode {
    stream {
      enable  = true
      service = "twitch"
      // YOU MUST CHANGE THE ADDRESS, CHANNEL AND KEY VALUE
      addr    = "rtmp://<twitch-ingest-server>/app"
      channel = "channelname"
      key     = "live_NNNNNNNN_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
    }
  }
    leaf {
    port = 30001
  }
} // end of settings

link "button" {
  name     = "Twitch Channel"
  template = "http://twitch.tv/${key `genvid/encode/stream/channel`}"
} // end of link "twitch"

config {
  embed_ssl {
    enabled = true
  }
} // end of config

You then need to load it to your cluster using the genvid-sdk command.

  • For a local cluster:

    genvid-sdk load-config twitch.sample.hcl
    
  • For a cluster on the cloud:

    genvid-sdk -c [clusterid] load-config twitch.sample.hcl
    

A new button (TWITCH CHANNEL) will appear that will redirect you to your Twitch channel. To test the embedded stream on the website, click CUBE SAMPLE.

Cluster UI Jobs Page Twitch
Option 2

Manually enter the parameters in the Cluster UI Settings page.

In either case, you will need to edit your secret key in twitchsecret.sample.hcl located in the \samples\cube\twitch-extension\config folder.

version = "1.7.0"

secrets {
    twitch {
        TWITCH_EXT_CLIENT_SECRET = "ENTER_YOUR_TWITCH_EXT_CLIENT_SECRET"
    }
}

Then you load it to your cluster using the genvid-sdk command.

  • For a local cluster:

    genvid-sdk load-config twitchsecret.sample.hcl
    
  • For a cluster on the cloud:

    genvid-sdk -c [clusterid] load-config twitchsecret.sample.hcl
    

You’ll also need to load the config.hcl located in \samples\cube\twitch-extension\config.

version = "1.7.0"

settings {
    leaf {
    port = 30001
  }
  services {
    leaf {
      websocketURLSuffix = "/socket"
    }
  }
}
link "twitch" {
  name     = "Twitch Extension"
  template = "http://twitch.tv/${key `genvid/encode/stream/channel`}"
}

config {
  twitch_extension {
    enabled = true
  }
}

Using the genvid-sdk command.

  • For a local cluster

    genvid-sdk load-config config.hcl
    
  • For a cluster on the cloud:

    genvid-sdk -c [clusterid] load-config config.hcl
    

Warning

Whether you’re using SSL on a cloud or a local cluster, if you want to stream Twitch embedded on the website you will still need to load twitch.sample.hcl located in the \samples\streaming_services folder. If you load twitch.sample.hcl before loading the web sample, the web sample will overwrite the value associated with embed_ssl from the web.hcl file.

Start the DirectX Sample

  1. Go to the /samples/cube/directx folder.

  2. Copy the Genvid files used to build the project.

    py directx.py prepare
    
  3. Build the project.

    py directx.py build
    
  4. Load the sample.

    py directx.py load
    
  5. Go to the /samples/cube/web folder.

  6. Build the website.

    py web.py build
    
  7. Load the website.

    py web.py load
    

    When using an SSL module with your cluster, a leaf endpoint and a web endpoint are created. These endpoints are loaded in the configuration of your cluster with the method loadEndpoint() when you load the website.

    You can find the key values for these endpoints in your cluster settings:

    Cluster UI Settings Page
  8. Launch the Cluster UI.

    genvid-sdk monitor
    
  9. Click the Jobs tab.

  10. Click START ALL.

    Cluster UI Jobs Page