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.

