Live Encoding with YoSpace

YoSpace provides Ad insertion services, and supports SSAI. To work with Bitmovin Live Encoding the following HlsManifestAdMarkerType should be enabled: EXT_X_CUE_OUT_IN. It also works with EXT_X_SCTE35and EXT_X_DATERANGE.

Prerequisites

You will require your own YoSpace account.

Ensure you're familiar with Live Encoding settings match the requirements in Live Encoding with HLS, SCTE-35 and SSAI

How to Setup

  1. Start a Bitmovin Live Encoder

    1. e.g.: use the full Java API code example from Live Encoding with HLS, SCTE-35 and SSAI

    2. use the Dashboard Wizard - in step 5, selecting HLS with TS muxing and selecting the compatible tags

  2. Start your Live ingest stream

    1. e.g.: Use the example method from the “Sample ingest with a demo file” from Live Encoding with HLS, SCTE-35 and SSAI
  3. In your YoSpace account Setup a Promotion Group

    1. Click on the Ad Operations tab and select in column Promotion Groups Manage Promotion Groups
    2. Click on the left on Create Promotion Group
      1. Give any meaningful name
      2. State: Active
    3. Click Save
  4. Setup a Usage Profile

    1. Ask Yospace support to create one
  5. Setup a Ad content Group with an Ad content

    1. Click on the Content tab and select in column Ad Content Manage Ad Content Groups
    2. Click on the left on Create Ad Content Group
      1. Set any meaningful name
      2. Click Save
    3. Click on the left on Upload Ad Content
      1. Usage Profile: If available, select usage profile
      2. Put Into: Select previously created Ad Content Group
      3. Either take a File from your PC, or configure a remote URL
      4. Give it any name
    4. Uncollapse Content Metadata
      1. Title: any
      2. Publish Date: today
    5. Click save
  6. Setup a Dynamic Promotion

    1. Click on the Ad Operations tab and select in column Promotions Create Dynamic Promotion
      1. Give it any meaningful name
      2. State: Active
      3. Promotion Group: previously created Promotion Group
      4. On-the-fly Ingestion: ✅
      5. Apply To: Broadcast Streaming/VOD Context
      6. Ad Tag Template: your VAST/ad decision server URL
        e.g. https://bitmovin-api-eu-west1-ci-input.s3.eu-west-1.amazonaws.com/scte35/tutorial/vast3_10s_ad_example.xml
      7. Ingest Ads into: previously created Ad Content Group
      8. Ingest Usage Profile: If available, select usage profile
      9. Ad Creative Unique Key: Use Rentition URL with ([^?]+)
    2. Uncollapse Live DAI Placement Settings
      1. Ad Playlists: ✅ Search for multiple ads in response
      2. Target Duration: ✅ Retry ad request if target ad duration not reached
      3. Live Underrun Policy: Expose Broadcast
      4. Live Truncation Policy: Ad Boundary
    3. Uncollapse Advanced Settings
      1. Server-side Ad Tracking: ✅ Hit Impression URLs and ✅ Hit Quartile URLs
      2. VAST Wrappers: ✅ Allow multiple ads in wrapper response by default
    4. Click Save
  7. Setup a live stream

    1. Click on the Content tab and select in column Live Streaming Manage Streams

    2. Click on the left on Create broadcast stream

    3. Optional: Feel overwhelmed by the sheer amount of options

    4. fill out the following fields:

      1. Name: Any
      2. External ID: Any, but not your name and no spaces
      3. Promotion: previously created promotion
      4. Manifest Polling: HLS
      5. Checkmarks on Manifest Polling Enabled ✅ and Master Playlist Alignment ✅
      6. Ad Break Prefetch: 100
    5. Uncollapse HLS manifest sources

      1. set a number as an ID
      2. Source media playlist URL: link to your video playlist (:warning: NOT the master manifest!)
        e.g. https://storage.googleapis.com/bitmovin-api-europe-west1-ci-output/encoding_test/liveEncoderWithScte35AutoReturn/video_0.m3u8
      3. Origin Master Playlist Level URI: That is the part of the media playlist only.
        So in the above example it is video_0.m3u8
    6. Uncollapse Output Stream configuration

      1. give it any name and external ID. Again it might help to not select the same name and id.
      2. Promotion: inherited
      3. Replacement Policy Server URL: your VAST/ad decision server URL.
        e.g. https://bitmovin-api-eu-west1-ci-input.s3.eu-west-1.amazonaws.com/scte35/tutorial/vast3_10s_ad_example.xml
      4. Access Control: Unrestricted
      5. Ad Break Prefetch: 100
    7. Uncollapse Advanced

      1. Assigned to HARRO: Select any option here
    8. Uncollapse Ingest Mapping

      1. Configure Ad Avail Start tag properly for your ad tags. E.g. #EXT-X-CUE-OUT:(?(?:\d+(?:.\d+)?|unset))
      2. Configure Ad Avail End tag properly for your ad tags. E.g. #EXT-X-CUE-IN
    9. Uncollapse HLS Manifest Polling

      1. Poll from: Select same option as for HARRO here
      2. Poll frequency: 3000
      3. Push frequency: 3000
      4. Alert Media Sequence Stuck: 30000
      5. Key File Path Split: URI="
      6. Monitoring Post Sample Size: 300
      7. Checkbox at Enable Master Manifest Polling
      8. Poll Frequency: 5000
      9. Source Master Playlist URL: link to your master manifest.
        e.g. https://storage.googleapis.com/bitmovin-api-europe-west1-ci-output/encoding_test/liveEncoderWithScte35AutoReturn/stream.m3u8
    10. Click save

    11. If you’ve done it correctly, you should see a green light

  8. Get an Output

    1. Output URL generation rules can be found here: https://cds1.yospace.com/cmui/web/documentation/Main/en/r2-42-platform-documentation/live-streaming/available-live-streaming-modes.html#access-to-live-streaming-modes