FFmpeg Parameters
Quick command line snippets for use in ffmpeg:
24 fps:
-x264-params keyint=240:bframes=6:ref=4:me=umh:subme=9:no-fast-pskip=1:b-adapt=2:aq-mode=2
25 fps:
-x264-params keyint=250:bframes=6:ref=4:me=umh:subme=9:no-fast-pskip=1:b-adapt=2:aq-mode=2
30 fps:
-x264-params keyint=300:bframes=6:ref=4:me=umh:subme=9:no-fast-pskip=1:b-adapt=2:aq-mode=2
50 fps:
-x264-params keyint=500:bframes=7:ref=4:me=umh:subme=9:no-fast-pskip=1:b-adapt=2:aq-mode=2
60 fps:
-x264-params keyint=600:bframes=7:ref=4:me=umh:subme=9:no-fast-pskip=1:b-adapt=2:aq-mode=2
x264 Quality Settings
If in doubt, use CRF 21.
If it’s live action content and you really care about it, use the film tuning (-tune film).
| CRF | Use case |
|---|---|
16 to 19 |
For super-high quality, effectively lossless for most intents and purposes. Going lower than 16 is generally a waste. |
19 to 21 |
Good for a “distribution” or “access” copy. |
21 to 24 |
When quality should be good but file size matters. |
24 to 28 |
When you really don’t care. |
x264 Parameters
Parameters to pretty much always use:
me=umh — better motion estimation
subme=9 — subpixel refinement on all frames
fast_pskip=0 or no-fast-pskip=1 — slight quality increase; worth it IMO
b-adapt=2 — a better B-frame decision mode
aq-mode=2 — better adaptive quantization
ref=4 — four reference frames (it may be better to just leave this at default of 3 reference frames, see reference #4 on this page)
Parameters that depend on frame rate:
| Frames per second | keyint |
bframes |
|---|---|---|
| 24 | 240 | 6 |
| 25 | 250 | 6 |
| 30 | 300 | 6 |
| 50 | 500 | 7 |
| 60 | 600 | 7 |