I’ll share my experiences with this unique client requirements.
Video Management System must be installed locally on premise because of thier 10TB storage
Video output for desktop @ 850kbps and mobile 450kbps, mp4 h264/aac
streaming server hosted in datacenter
We developed VMS just to manage video and store in their 10TB storage.
Every uploaded video will be queued for encoding done by Handbrake CLI
InCrontab will detect newly uploaded video and will send the encode job to HandbrakeCLI
After finishied the encode job with success status, VMS will store the video METADATA to MySQL Database
In datacenter with 200mbps bandwidth, we install single wowza server and use MediaCache to serve the VOD
We tuned the Mediacache to increase the workers for VOD fetch as our videos always in 500mb-1gb range in size
We use Grind Player with HLS Plugin to serve the VOD for desktop and and JWPlayer HTML5 for mobile devices also in HLS
Hopes this can give you some clues. We use almost OSS ( Open Source Softwares ) for our deployments.