62 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			62 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| # Creating Test Content
 | |
| 
 | |
| ## Table of Contents
 | |
| 
 | |
| - [CEA-608 Content](#creating-cea-608-content)
 | |
| 
 | |
| ## 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][srt] 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][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][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][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`.
 | |
| 
 | |
| 
 | |
| [srt]: https://en.wikipedia.org/wiki/SubRip#SubRip_text_file_format
 | |
| [libcaption]: https://github.com/szatmary/libcaption
 | |
| [bento4]: https://www.bento4.com/documentation/
 | 
