-
-
Save jamariya/e0bbd293f27a93d69d497412894fb9b7 to your computer and use it in GitHub Desktop.
Transcode fragmented MP4s and package into HLS and DASH using shaka-packager
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/bin/bash | |
| packager \ | |
| 'in=./tmp/output_540p.mp4,stream=video,init_segment=./tmp/output/video_3000_0/video_init.mp4,segment_template=./tmp/output/video_3000_0/video_$Number$.m4s' \ | |
| 'in=./tmp/output_720p.mp4,stream=video,init_segment=./tmp/output/video_1700_1/video_init.mp4,segment_template=./tmp/output/video_1700_1/video_$Number$.m4s' \ | |
| 'in=./tmp/output_1080p.mp4,stream=video,init_segment=./tmp/output/video_1200_2/video_init.mp4,segment_template=./tmp/output/video_1200_2/video_$Number$.m4s' \ | |
| 'in=./tmp/output_audio_128.mp4,stream=audio,language=en,roles=main,hls_name=main_en_2,init_segment=./tmp/output/audio_96_2/audio_init.mp4,segment_template=./tmp/output/audio_96_2/audio_$Number$.m4s' \ | |
| 'in=./tmp/output_audio_196.mp4,stream=audio,language=en,roles=main,hls_name=main_en_3,init_segment=./tmp/output/audio_64_3/audio_init.mp4,segment_template=./tmp/output/audio_64_3/audio_$Number$.m4s' \ | |
| --fragment_duration 6 \ | |
| --segment_duration 6 \ | |
| --hls_playlist_type vod \ | |
| --hls_master_playlist_output "./tmp/output/main.m3u8" \ | |
| --generate_static_live_mpd \ | |
| --mpd_output \ | |
| "./tmp/output/manifest.mpd" | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/bin/bash | |
| INPUT_FILE=/path/to/mp4 | |
| COMMON_OPTS="-c:v libx264 -movflags frag_keyframe+empty_moov -frag_duration 6000000 -sc_threshold 0 -g 144" | |
| ffmpeg \ | |
| -i $INPUT_FILE \ | |
| -threads 2 \ | |
| -filter_complex "[v:0]split=3[in1][in2][in3];[a:0]asplit=2[aud1][aud2];[in1]scale=w=1920:h=1080:force_original_aspect_ratio=decrease[out1];[in2]scale=w=1280:h=720:force_original_aspect_ratio=decrease[out2];[in3]scale=w=960:h=540:force_original_aspect_ratio=decrease[out3]" \ | |
| -map "[out1]" $COMMON_OPTS -b:v 8000k -maxrate 8000k -bufsize 4000k ./tmp/output_1080p.mp4 \ | |
| -map "[out2]" $COMMON_OPTS -b:v 3000k -maxrate 3000k -bufsize 1500k ./tmp/output_720p.mp4 \ | |
| -map "[out3]" $COMMON_OPTS -b:v 1200k -maxrate 1200k -bufsize 600k ./tmp/output_540p.mp4 \ | |
| -map "[aud1]" -c:a aac -b:a 128k -ac 2 ./tmp/output_audio_128.mp4 \ | |
| -map "[aud2]" -c:a aac -b:a 192k -ac 2 ./tmp/output_audio_196.mp4 | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment