Search code examples
phplaravelvideoffmpegmpeg-dash

Ideal bitrates for different video resolutions


I am building a Video-on-demand service for a closed community. I using FFMPEG for video processing and dash.js for adaptive bitrate player with custom resolution selector. Can somebody please suggest what ideal bitrates should I use while video/audio transcoding?

I am talking about -b:v and -ab option

ffmpeg -i vid.mp4 -c:v libvpx-vp9 -keyint_min 150 \
-g 150 -tile-columns 4 -frame-parallel 1  -f webm -dash 1 \
-an -vf scale=144:-1 -b:v 120k -dash 1 video_1.webm \
-an -vf scale=240:-1 -b:v 250k -dash 1 video_2.webm \
-an -vf scale=360:-1 -b:v 500k -dash 1 video_3.webm \
-an -vf scale=480:-1 -b:v 750k -dash 1 video_4.webm \
-an -vf scale=720:-1 -b:v 1500k -dash 1 video_5.webm

And

ffmpeg -i vid.mp4 -vn -acodec libvorbis -ab 96k -dash 1 audio_96k.webm

Any suggestions/hacks or examples to tackle real-world network situations are appreciated.


Solution

  • There is no ideal. Every video is different, and every viewer is different. What is ideal for one viewer is not ideal for another. Read the Netflix blog on pert title encoding and vmaf. Also look at Akamai state of the internet reports to determine what average global internet connection speeds are.