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
insert
ad break keyframes
in the output video. You can add this configuration to a
job template or include it in an
ad-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 like
ffprobe
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 output manifest file to verify that the ad break tags were inserted.