Creating Test Content
Table of Contents
Creating CEA-608 Content
- Use ffmpeg to create an MP4 file to start with:
ffmpeg -f lavfi -i testsrc=duration=300:size=1280x720:rate=30 -profile:v baseline -pix_fmt yuv420p output.mp4
(no audio)
ffmpeg -f lavfi -i testsrc=duration=300:size=1280x720:rate=30 -profile:v baseline -pix_fmt yuv420p -filter_complex "anoisesrc=d=300" output.mp4
(audio + video)
This uses ffmpeg's built-in testsrc
source which generates a test video pattern with a color and timestamp. For this example, we are using a duration of 300
seconds, a size of 1280x720
and a framerate of 30fps
. We also specify extra settings profile
and pix_fmt
to force the output to be encoded using avc1.42C01F
.
Create an srt file with the captions you would like to see with their timestamps.
Use ffmpeg to convert
ouput.mp4
to a flv file:
ffmpeg -i output.mp4 -acodec copy -vcodec copy output.flv
- Use libcaption to embed the captions into the flv:
flv+srt output.flv captions.srt with-captions.flv
- Use ffmpeg to convert
with-captions.flv
to mp4
ffmpeg -i with-captions.flv -acodec copy -vcodec copy with-captions.mp4
- Use Bento4 to convert the file into a FMP4 file:
bento4 mp4fragment with-captions.mp4 \
--verbosity 3 \
--fragment-duration 4000 \
--timescale 90000 \
with-captions-fragment.mf4
Then do either of the following:
- Use Bento4 to split the file into an init segment and a fmp4 media segments:
bento4 mp4split --verbose \
--init-segment with-captions-init.mp4 \
--media-segment segs/with-captions-segment-%llu.m4s \
with-captions-fragment.mf4
- Use Bento4 to create a DASH manifest:
bento4 mp4dash -v \
--mpd-name=with-captions.mpd \
--init-segment=with-captions-init.mp4 \
--subtitles
with-captions-fragment.mf4
This will create a DASH MPD and media segments in a new directory called output
.