Skip to content

Instantly share code, notes, and snippets.

@robwalch
Last active July 6, 2020 07:00
Show Gist options
  • Save robwalch/d8168cfb600f213bee31 to your computer and use it in GitHub Desktop.
Save robwalch/d8168cfb600f213bee31 to your computer and use it in GitHub Desktop.
Tears of Steal 4k multibitrate multitrack HLS encode
#!/bin/sh
mkdir -p variant_source
ffmpeg -y -i tearsofsteel_4k.mov -vcodec libx264 -preset veryfast -crf 18 -profile:v baseline -s 480x212 -aspect 9/4 -acodec aac -strict experimental -ac 2 -b:a 96k -ar 44100 -bufsize 360K -maxrate 360K variant_source/ld.mp4
ffmpeg -y -i tearsofsteel_4k.mov -vcodec libx264 -preset veryfast -crf 18 -profile:v main -s 640x288 -aspect 9/4 -an -bufsize 720K -maxrate 720K variant_source/sd.mp4
ffmpeg -y -i tearsofsteel_4k.mov -vcodec libx264 -preset veryfast -crf 18 -profile:v high -s 1280x572 -aspect 9/4 -an -bufsize 2400K -maxrate 2400K variant_source/hd.mp4
ffmpeg -y -i tearsofsteel_4k.mov -vcodec libx264 -preset veryfast -crf 18 -profile:v high -s 1920x856 -aspect 9/4 -an -bufsize 3200K -maxrate 3200K variant_source/fullhd.mp4
ffmpeg -y -i tearsofsteel_4k.mov -vcodec libx264 -preset veryfast -crf 18 -profile:v high -s 2560x1142 -aspect 9/4 -an -bufsize 4800K -maxrate 4800K variant_source/quadhd.mp4
# TODO: resync audio timecode
ffmpeg -y -i tearsofsteel_4k.mov -i TOS_MUSIC+FX_NO_DIALOGUE.aif -map 0:0 -map 1 -vcodec libx264 -preset veryfast -crf 18 -profile:v high -s 960x432 -aspect 9/4 -acodec aac -strict experimental -ac 2 -b:a 96k -ar 44100 -bufsize 1296K -maxrate 1296K -shortest variant_source/qhd.mp4
ffmpeg -y -i tearsofsteel_4k.mov -i Surround-TOS_DVDSURROUND-Dolby-5.1.ac3 -map 0:0 -map 1 -vcodec libx264 -preset veryfast -crf 18 -profile:v high -s 3840x1714 -aspect 9/4 -acodec aac -strict experimental -ac 6 -b:a 160k -ar 48000 -bufsize 9760K -maxrate 9760K -shortest variant_source/ultrahd.mp4
mkdir -p apple-hls/audio_en_nodialogue
mkdir -p apple-hls/audio_en_surround
mkdir -p apple-hls/audio_en_stereo
mkdir -p apple-hls/ld
mkdir -p apple-hls/sd
mkdir -p apple-hls/qhd
mkdir -p apple-hls/hd
mkdir -p apple-hls/fullhd
mkdir -p apple-hls/quadhd
mkdir -p apple-hls/ultrahd
# AUDIO TRACKS
mediafilesegmenter -I -a -t 5 --iframe-index-file=none -b http://player.dev/test/assets/adaptive/encoding/apple-hls/audio_en_nodialogue -f ./apple-hls/audio_en_nodialogue variant_source/qhd.mp4
mediafilesegmenter -I -a -t 5 --iframe-index-file=none -b http://player.dev/test/assets/adaptive/encoding/apple-hls/audio_en_surround -f ./apple-hls/audio_en_surround variant_source/ultrahd.mp4
mediafilesegmenter -I -a -t 5 --iframe-index-file=none -b http://player.dev/test/assets/adaptive/encoding/apple-hls/audio_en_stereo -f ./apple-hls/audio_en_stereo variant_source/ld.mp4
mv variant_source/ld.plist variant_source/ld-audio.plist
mv variant_source/qhd.plist variant_source/qhd-audio.plist
mv variant_source/ultrahd.plist variant_source/ultrahd-audio.plist
# VIDEO STREAMS
mediafilesegmenter -I -A -t 5 --no-floating-point-duration --iframe-index-file=none -b http://player.dev/test/assets/adaptive/encoding/apple-hls/ld -f ./apple-hls/ld variant_source/ld.mp4
mediafilesegmenter -I -A -t 5 --start-segments-with-iframe -z iframe_index.m3u8 -b http://player.dev/test/assets/adaptive/encoding/apple-hls/sd -f ./apple-hls/sd variant_source/sd.mp4
mediafilesegmenter -I -A -t 5 --start-segments-with-iframe -z iframe_index.m3u8 -b http://player.dev/test/assets/adaptive/encoding/apple-hls/qhd -f ./apple-hls/qhd variant_source/qhd.mp4
mediafilesegmenter -I -A -t 5 --start-segments-with-iframe -z iframe_index.m3u8 -b http://player.dev/test/assets/adaptive/encoding/apple-hls/hd -f ./apple-hls/hd variant_source/hd.mp4
mediafilesegmenter -I -A -t 5 --start-segments-with-iframe -z iframe_index.m3u8 -b http://player.dev/test/assets/adaptive/encoding/apple-hls/fullhd -f ./apple-hls/fullhd variant_source/fullhd.mp4
mediafilesegmenter -I -A -t 5 --start-segments-with-iframe -z iframe_index.m3u8 -b http://player.dev/test/assets/adaptive/encoding/apple-hls/quadhd -f ./apple-hls/quadhd variant_source/quadhd.mp4
mediafilesegmenter -I -A -t 5 --start-segments-with-iframe -z iframe_index.m3u8 -b http://player.dev/test/assets/adaptive/encoding/apple-hls/ultrahd -f ./apple-hls/ultrahd variant_source/ultrahd.mp4
variantplaylistcreator -o apple-hls/all.m3u8 \
audio_en_stereo/prog_index.m3u8 variant_source/ld-audio.plist \
audio_en_nodialogue/prog_index.m3u8 variant_source/qhd-audio.plist \
audio_en_surround/prog_index.m3u8 variant_source/ultrahd-audio.plist \
ld/prog_index.m3u8 variant_source/ld.plist \
sd/prog_index.m3u8 variant_source/sd.plist -iframe-url sd/iframe_index.m3u8 \
qhd/prog_index.m3u8 variant_source/qhd.plist -iframe-url qhd/iframe_index.m3u8 \
hd/prog_index.m3u8 variant_source/hd.plist -iframe-url hd/iframe_index.m3u8 \
fullhd/prog_index.m3u8 variant_source/fullhd.plist -iframe-url fullhd/iframe_index.m3u8 \
quadhd/prog_index.m3u8 variant_source/quadhd.plist -iframe-url quadhd/iframe_index.m3u8 \
ultrahd/prog_index.m3u8 variant_source/ultrahd.plist -iframe-url ultrahd/iframe_index.m3u8
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment