video transcoding at the abc with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k...
TRANSCRIPT
![Page 1: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/1.jpg)
Video Transcoding at the ABC with microservices
Daphne Chong@daphnechong
![Page 2: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/2.jpg)
![Page 3: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/3.jpg)
![Page 4: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/4.jpg)
![Page 5: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/5.jpg)
![Page 6: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/6.jpg)
media transcoder
![Page 7: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/7.jpg)
1. What is Transcoding?
2. Architecture
3. Autoscaling transcoders
4. Costs
5. Future roadmap
![Page 8: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/8.jpg)
1. What is Transcoding?
2. Architecture
3. Autoscaling transcoders
4. Costs
5. Future roadmap
![Page 9: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/9.jpg)
![Page 10: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/10.jpg)
What changes are we making?
![Page 11: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/11.jpg)
![Page 12: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/12.jpg)
![Page 13: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/13.jpg)
High speed
Medium speed
Low speed
![Page 14: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/14.jpg)
Standard EncodingH.264 MP4
![Page 15: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/15.jpg)
Transcoding Example
![Page 16: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/16.jpg)
Step 1: Prepare watermark
![Page 17: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/17.jpg)
Step 1: Prepare watermark
![Page 18: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/18.jpg)
Step 1: Prepare watermark
![Page 19: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/19.jpg)
Step 2: Input video (GXF)
![Page 20: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/20.jpg)
Step 3: Asymmetrical cropping
![Page 21: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/21.jpg)
Step 4: Scale and set aspect ratio
![Page 22: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/22.jpg)
Step 5: Apply watermark
![Page 23: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/23.jpg)
Step 6: Audio Normalization
![Page 24: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/24.jpg)
Original file audio track
![Page 25: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/25.jpg)
After audio normalization
![Page 26: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/26.jpg)
Step 7: Combine changes
![Page 27: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/27.jpg)
Step 8: Split into segments
![Page 28: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/28.jpg)
That’s a lot of changes...
![Page 29: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/29.jpg)
Transcoding Profiles
![Page 30: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/30.jpg)
GXF
Profile:- Renditions (6)- Crop- Normalize audio- Adjust ratio- Add watermark- GXF to MP4
![Page 31: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/31.jpg)
GXF
![Page 32: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/32.jpg)
GXF
MOV
Profile:- Renditions (4)- Adjust ratio- ProRes MOV to MP4
![Page 33: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/33.jpg)
GXF
MOV
![Page 34: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/34.jpg)
![Page 35: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/35.jpg)
./ffmpeg -i input.gxf output.mp4
![Page 36: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/36.jpg)
./ffmpeg -i INPUT -c:v libx264 -filter_complex "[0:v]crop=720:576:0:32,yadif,scale=1024x576,setdar=16/9[main], [1:v]scale=54:-1[ovrl], [main][ovrl]overlay=main_w-overlay_w-47:main_h-overlay_h-44" -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k -filter_complex "[0:a:0][0:a:1] amerge=inputs=2, dynaudnorm=f=500:g=31:p=0.82:m=30.0:r=0.0:s=0.0 [aout]" -ar 44100 -ac 2 -map 0:0 -map "[aout]" -movflags +faststart -threads 0 -y OUTPUT
In reality, it looks like this
![Page 37: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/37.jpg)
./ffmpeg -i INPUT -c:v libx264 -filter_complex "[0:v]crop=720:576:0:32,yadif,scale=1024x576,setdar=16/9[main], [1:v]scale=54:-1[ovrl], [main][ovrl]overlay=main_w-overlay_w-47:main_h-overlay_h-44" -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k -filter_complex "[0:a:0][0:a:1] amerge=inputs=2, dynaudnorm=f=500:g=31:p=0.82:m=30.0:r=0.0:s=0.0 [aout]" -ar 44100 -ac 2 -map 0:0 -map "[aout]" -movflags +faststart -threads 0 -y OUTPUT
In reality, it looks like this
![Page 38: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/38.jpg)
./ffmpeg -i INPUT -c:v libx264 -filter_complex "[0:v]crop=720:576:0:32,yadif,scale=1024x576,setdar=16/9[main], [1:v]scale=54:-1[ovrl], [main][ovrl]overlay=main_w-overlay_w-47:main_h-overlay_h-44" -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k -filter_complex "[0:a:0][0:a:1] amerge=inputs=2, dynaudnorm=f=500:g=31:p=0.82:m=30.0:r=0.0:s=0.0 [aout]" -ar 44100 -ac 2 -map 0:0 -map "[aout]" -movflags +faststart -threads 0 -y OUTPUT
In reality, it looks like this
![Page 39: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/39.jpg)
./ffmpeg -i INPUT -c:v libx264 -filter_complex "[0:v]crop=720:576:0:32,yadif,scale=1024x576,setdar=16/9[main], [1:v]scale=54:-1[ovrl], [main][ovrl]overlay=main_w-overlay_w-47:main_h-overlay_h-44" -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k -filter_complex "[0:a:0][0:a:1] amerge=inputs=2, dynaudnorm=f=500:g=31:p=0.82:m=30.0:r=0.0:s=0.0 [aout]" -ar 44100 -ac 2 -map 0:0 -map "[aout]" -movflags +faststart -threads 0 -y OUTPUT
In reality, it looks like this
![Page 40: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/40.jpg)
./ffmpeg -i INPUT -c:v libx264 -filter_complex "[0:v]crop=720:576:0:32,yadif,scale=1024x576,setdar=16/9[main], [1:v]scale=54:-1[ovrl], [main][ovrl]overlay=main_w-overlay_w-47:main_h-overlay_h-44" -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k -filter_complex "[0:a:0][0:a:1] amerge=inputs=2, dynaudnorm=f=500:g=31:p=0.82:m=30.0:r=0.0:s=0.0 [aout]" -ar 44100 -ac 2 -map 0:0 -map "[aout]" -movflags +faststart -threads 0 -y OUTPUT
In reality, it looks like this
![Page 41: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/41.jpg)
./ffmpeg -i INPUT -c:v libx264 -filter_complex "[0:v]crop=720:576:0:32,yadif,scale=1024x576,setdar=16/9[main], [1:v]scale=54:-1[ovrl], [main][ovrl]overlay=main_w-overlay_w-47:main_h-overlay_h-44" -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k -filter_complex "[0:a:0][0:a:1] amerge=inputs=2, dynaudnorm=f=500:g=31:p=0.82:m=30.0:r=0.0:s=0.0 [aout]" -ar 44100 -ac 2 -map 0:0 -map "[aout]" -movflags +faststart -threads 0 -y OUTPUT
In reality, it looks like this
![Page 42: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/42.jpg)
./ffmpeg -i INPUT -c:v libx264 -filter_complex "[0:v]crop=720:576:0:32,yadif,scale=1024x576,setdar=16/9[main], [1:v]scale=54:-1[ovrl], [main][ovrl]overlay=main_w-overlay_w-47:main_h-overlay_h-44" -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k -filter_complex "[0:a:0][0:a:1] amerge=inputs=2, dynaudnorm=f=500:g=31:p=0.82:m=30.0:r=0.0:s=0.0 [aout]" -ar 44100 -ac 2 -map 0:0 -map "[aout]" -movflags +faststart -threads 0 -y OUTPUT
In reality, it looks like this
![Page 43: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/43.jpg)
./ffmpeg -i INPUT -c:v libx264 -filter_complex "[0:v]crop=720:576:0:32,yadif,scale=1024x576,setdar=16/9[main], [1:v]scale=54:-1[ovrl], [main][ovrl]overlay=main_w-overlay_w-47:main_h-overlay_h-44" -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k -filter_complex "[0:a:0][0:a:1] amerge=inputs=2, dynaudnorm=f=500:g=31:p=0.82:m=30.0:r=0.0:s=0.0 [aout]" -ar 44100 -ac 2 -map 0:0 -map "[aout]" -movflags +faststart -threads 0 -y OUTPUT
In reality, it looks like this
![Page 44: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/44.jpg)
./ffmpeg -i INPUT -c:v libx264 -filter_complex "[0:v]crop=720:576:0:32,yadif,scale=1024x576,setdar=16/9[main], [1:v]scale=54:-1[ovrl], [main][ovrl]overlay=main_w-overlay_w-47:main_h-overlay_h-44" -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k -filter_complex "[0:a:0][0:a:1] amerge=inputs=2, dynaudnorm=f=500:g=31:p=0.82:m=30.0:r=0.0:s=0.0 [aout]" -ar 44100 -ac 2 -map 0:0 -map "[aout]" -movflags +faststart -threads 0 -y OUTPUT
In reality, it looks like this
![Page 45: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/45.jpg)
./ffmpeg -i INPUT -c:v libx264 -filter_complex "[0:v]crop=720:576:0:32,yadif,scale=1024x576,setdar=16/9[main], [1:v]scale=54:-1[ovrl], [main][ovrl]overlay=main_w-overlay_w-47:main_h-overlay_h-44" -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k -filter_complex "[0:a:0][0:a:1] amerge=inputs=2, dynaudnorm=f=500:g=31:p=0.82:m=30.0:r=0.0:s=0.0 [aout]" -ar 44100 -ac 2 -map 0:0 -map "[aout]" -movflags +faststart -threads 0 -y OUTPUT
In reality, it looks like this
![Page 46: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/46.jpg)
./ffmpeg -i INPUT -c:v libx264 -filter_complex "[0:v]crop=720:576:0:32,yadif,scale=1024x576,setdar=16/9[main], [1:v]scale=54:-1[ovrl], [main][ovrl]overlay=main_w-overlay_w-47:main_h-overlay_h-44" -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k -filter_complex "[0:a:0][0:a:1] amerge=inputs=2, dynaudnorm=f=500:g=31:p=0.82:m=30.0:r=0.0:s=0.0 [aout]" -ar 44100 -ac 2 -map 0:0 -map "[aout]" -movflags +faststart -threads 0 -y OUTPUT
In reality, it looks like this
![Page 47: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/47.jpg)
1. What is Transcoding?
2. Architecture
3. Autoscaling transcoders
4. Costs
5. Future roadmap
![Page 48: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/48.jpg)
1. What is Transcoding?
2. Architecture
3. Autoscaling transcoders
4. Costs
5. Future roadmap
![Page 49: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/49.jpg)
Workflow
![Page 50: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/50.jpg)
![Page 51: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/51.jpg)
![Page 52: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/52.jpg)
![Page 53: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/53.jpg)
![Page 54: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/54.jpg)
![Page 55: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/55.jpg)
![Page 56: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/56.jpg)
![Page 57: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/57.jpg)
![Page 58: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/58.jpg)
![Page 59: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/59.jpg)
![Page 60: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/60.jpg)
![Page 61: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/61.jpg)
![Page 62: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/62.jpg)
![Page 63: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/63.jpg)
![Page 64: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/64.jpg)
![Page 65: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/65.jpg)
8 minutes 27 seconds
![Page 66: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/66.jpg)
Originallength
Time to produce rendition
60 min
7 min
42 min
LowestQuality
HighestQuality
![Page 67: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/67.jpg)
AWS & Languages
![Page 68: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/68.jpg)
Languages:
Node.jsGo
![Page 69: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/69.jpg)
![Page 70: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/70.jpg)
![Page 71: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/71.jpg)
RDS - state storageEC2 - instancesSQS - messagingS3 - file storageSNS - notifications
AWS Infrastructure:
![Page 72: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/72.jpg)
![Page 73: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/73.jpg)
![Page 74: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/74.jpg)
![Page 75: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/75.jpg)
![Page 76: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/76.jpg)
![Page 77: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/77.jpg)
Advantages
Deployments
Independent scaling
Really easy to expand
Clear responsibilities
![Page 78: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/78.jpg)
Challenges
Deployments
General overhead
![Page 79: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/79.jpg)
1. What is Transcoding?
2. Architecture
3. Autoscaling transcoders
4. Costs
5. Future optimizations
![Page 80: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/80.jpg)
1. What is Transcoding?
2. Architecture
3. Autoscaling transcoders
4. Costs
5. Future optimizations
![Page 81: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/81.jpg)
![Page 82: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/82.jpg)
When should you scale?
![Page 83: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/83.jpg)
Scaling Considerations:
Content priority
Ad-hoc requests
Varied content length
![Page 84: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/84.jpg)
AWS Considerations:
Hourly billing
Cost vs Speed
Fleet reaction time
Scaling down
![Page 85: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/85.jpg)
MVP:
Don’t make things wait
too long
![Page 86: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/86.jpg)
MVP:
Supply enough
capacity at all times
![Page 87: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/87.jpg)
GXF
Profile:- Renditions (6)- Crop- Normalize audio- Adjust ratio- Add watermark- GXF to MP4
![Page 88: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/88.jpg)
![Page 89: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/89.jpg)
![Page 90: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/90.jpg)
![Page 91: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/91.jpg)
![Page 92: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/92.jpg)
![Page 93: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/93.jpg)
var autoscaling = new AWS.AutoScaling(...);
var params = {
AutoScalingGroupName: groupName,
DesiredCapacity: capacity
Some white text
};
autoscaling.setDesiredCapacity(params, ...);
![Page 94: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/94.jpg)
var autoscaling = new AWS.AutoScaling(...);
var params = {
AutoScalingGroupName: groupName,
DesiredCapacity: capacity
Some white text
};
autoscaling.setDesiredCapacity(params, ...);
![Page 95: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/95.jpg)
Which instance size?
![Page 96: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/96.jpg)
Time vs Costfor 1 hour of content
Time Cost
?
![Page 97: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/97.jpg)
Time vs Costfor 1 hour of content
Time Cost
?
![Page 98: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/98.jpg)
Winner:
c4.xlarge
![Page 99: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/99.jpg)
When to scale down?
![Page 100: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/100.jpg)
Up: step scaling
Down: stop everything
![Page 101: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/101.jpg)
![Page 102: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/102.jpg)
![Page 103: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/103.jpg)
![Page 104: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/104.jpg)
![Page 105: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/105.jpg)
![Page 106: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/106.jpg)
An interesting puzzle :)
![Page 107: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/107.jpg)
1. What is Transcoding?
2. Architecture
3. Autoscaling transcoders
4. Costs
5. Future optimizations
![Page 108: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/108.jpg)
1. What is Transcoding?
2. Architecture
3. Autoscaling transcoders
4. Costs
5. Future optimizations
![Page 109: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/109.jpg)
What about commercial transcode
providers?
![Page 110: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/110.jpg)
Full-Service Transcoding
![Page 111: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/111.jpg)
$(a lot)
![Page 112: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/112.jpg)
DIY on-demand
![Page 113: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/113.jpg)
![Page 114: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/114.jpg)
$45k
![Page 115: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/115.jpg)
Metro’s costs?
![Page 116: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/116.jpg)
$11.2k
![Page 117: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/117.jpg)
Some daily examples
![Page 118: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/118.jpg)
(10am - 10am)
![Page 119: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/119.jpg)
$42.86
![Page 120: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/120.jpg)
EC2 Instances: $34.31EC2 (other): $ 4.24RDS: $ 2.66S3: $ 1.65SQS: $ 0.00
Total (USD): $42.86
Transcoding costs: 24 hrs
![Page 121: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/121.jpg)
Next 24 hours
![Page 122: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/122.jpg)
$25.93
![Page 123: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/123.jpg)
![Page 124: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/124.jpg)
1. What is Transcoding?
2. Architecture
3. Autoscaling transcoders
4. Costs
5. Future optimizations
![Page 125: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/125.jpg)
1. What is Transcoding?
2. Architecture
3. Autoscaling transcoders
4. Costs
5. Future optimizations
![Page 126: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/126.jpg)
Throughput optimizations
![Page 127: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/127.jpg)
![Page 128: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/128.jpg)
![Page 129: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/129.jpg)
Transcoding in chunks/segments
![Page 130: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/130.jpg)
![Page 131: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/131.jpg)
Introspection & Validation
![Page 132: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/132.jpg)
GXF
Profile:- Crop- Normalize audio- Adjust ratio- Add watermark- GXF to MP4
![Page 133: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/133.jpg)
ffprobe
![Page 134: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/134.jpg)
![Page 135: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/135.jpg)
![Page 136: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/136.jpg)
![Page 137: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/137.jpg)
1. What is Transcoding?
2. Architecture
3. Autoscaling transcoders
4. Costs
5. Future optimizations
![Page 138: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/138.jpg)
Summary
![Page 139: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/139.jpg)
![Page 140: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/140.jpg)
![Page 141: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/141.jpg)
![Page 142: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/142.jpg)
![Page 143: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/143.jpg)
8 minutes 27 seconds
![Page 144: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/144.jpg)
$11.2k
![Page 145: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/145.jpg)
![Page 146: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/146.jpg)
@daphnechong
Thanks!
![Page 147: Video Transcoding at the ABC with microservices · " -crf 22 -maxrate 1404k -bufsize 1500k -pix_fmt yuv420p -profile:v high -level 4.0 -refs 3 -r 25 -g 50 -c:a libfdk_aac -b:a 96k](https://reader033.vdocuments.site/reader033/viewer/2022050416/5f8c62af1066715c08762242/html5/thumbnails/147.jpg)