Spotlightr accepts many different video and audio formats, but provides two main outputs which we will explain herein.
After upload every video is first compressed in its original resolution
- videos are encoded as libx264/H.264/MPEG-4 AVC
- videos are assigned a constant rate factor bit-rate
- videos maintain the original key-framing
When starting the upload users have the option of securing (HLS encoding and segmenting) or not-securing their content. If they choose to not secure it, then it will result in .mp4 output.
HLS - Secured Video Upload
The compressed file is separated into 2 second chunks encoded and compressed at a bit-rate for its resolution:
Bit-rate Constant Rate Factor (CRF) is set to 19
For x264, there are various encoding methods, with the Constant Rate Factor method being the most sophisticated. It results in variable bit-rate, but overall good quality in one single pass. CRF values range from 0 to 51, but standard values are somewhere between 19 and 26, depending on your source and what quality you want. 23 is default.
In case of outputting HLS users are given an option of two-pass conversion, which more or less doubles the process, sort of as ironing the shirt once more once you deemed it good enough, just to be sure all the kinks are out of it. The process is of course slower, but in most cases produces a more optimal ratio of quality to size.
MP4 - Non Secured Video Upload
When converting to mp4 additional steps are implemented in an effort to optimize streaming, moving file metadata to the front etc.
The available resolutions and bit-rates are same as for HLS, but the file is not segmented or encoded.
Audio in both cases is compressed to 192k. The compressed file is stored on the server and the original gets deleted.
If original video resolution is over 360p - compressed file is copied to lower resolution versions without changing any other settings of the initial compression aside from bit-rate.