-
Notifications
You must be signed in to change notification settings - Fork 6
Video Quality Guide
- Minimize file size
- Maximize playability on low-powered devices
- Retain basic watchability
These settings intentionally sacrifice some video/audio quality to achieve minimum file size and maximum playability on underpowered hardware, while still being reasonably legible and audible. They were chosen through subjective testing using Khan Academy videos.
These settings will work best with Khan Academy style videos - that is, graphics with little movement. They were also used on the Math Expression videos with good results. They may be too aggressive for live-action video, depending on how much movement there is.
Handbrake is a great utility for batch-compressing videos. You can download Handbrake here.
These settings are described in terms of Handbrake 0.9, but can probably be used in some manner with any x264 compression program. On Handbrake, we start with the "Normal" preset and then make the following adjustments:
Video:
- Maximum Dimensions: 696x392 (under "Picture Settings", I actually set it to 700x392, but it comes out 696)
- x264 Constant Quality RF: 32 (slider on the main pane)
- x264 Preset: medium, Tune: none (dropdown on the main pane)
- H.264 Profile: baseline, Level: 3.0 (dropdown on the main pane)
- Web Optimized, iPod Support, Fast Decode (checkboxes on the main pane)
Audio:
- AAC Mono 48kbps (under the audio tab)
Alternately, you can use the CLI version of Handbrake with the following settings:
/usr/local/bin/HandBrakeCLI \
--encoder x264 \
--quality 32.0 \
--audio 1 \
--aencoder faac \
--ab 48 \
--mixdown mono \
--arate auto \
--drc 0.0 \
--audio-copy-mask aac,ac3,dtshd,dts,mp3 \
--audio-fallback ffac3 \
--format mp4 \
--loose-anamorphic \
--modulus 2 \
--markers \
--x264-preset medium \
--h264-profile baseline \
--h264-level 3.0 \
--x264-tune fastdecode \
--optimize \
--maxWidth 700 \
--maxHeight 392 \
--crop 0:0:0:0 \
--ipod-atom \
--input bigfile.mp4 \
--output smallfile.mp4
More info on using HandBrakeCLI is available here
If you want to build it for a Red Hat based distro, like CentOS, I was able to do so using the instructions here, but I had to download HandBrake-0.9.9.tar.bz from the Old Releases page.