Inserting ad breaks (original) (raw)

This page explains how to programmatically insert keyframes for ad breaks in a transcoded video. The Transcoder API does not insert or play ads, or stop media playback; video player clients are responsible for handling the keyframe.

Use the adBreaks array to insertad break keyframesin the output video. You can add this configuration to ajob template or include it in anad-hoc job configuration.

The following REST/JSON configuration inserts ad break keyframes at 4, 7, and 11 seconds in the timeline of the output video:

"adBreaks": [
  {
    "startTimeOffset": "4s"
  },
  {
    "startTimeOffset": "7s"
  },
  {
    "startTimeOffset": "11s"
  }
],

You can use a tool likeffprobe to verify that the keyframes were inserted. The following output shows a sample output video_without_ ad break keyframes inserted:

$ ffprobe -loglevel error -skip_frame nokey -select_streams v:0 -show_entries \
    frame=pkt_pts_time -of csv=print_section=0 hd.mp4
0.000000
3.000000
6.000000
9.000000
12.000000
...

The following output shows the same output video timeline with ad break keyframes inserted:

$ ffprobe -loglevel error -skip_frame nokey -select_streams v:0 -show_entries \
    frame=pkt_pts_time -of csv=print_section=0 hd.mp4
0.000000
3.000000
4.000000 <<< Inserted keyframe here
6.000000
7.000000 <<< Inserted keyframe here
9.000000
11.000000 <<< Inserted keyframe here
12.000000
...

You can also check the outputmanifest file to verify that the ad break tags were inserted.