Force a fixed frame rate

Some devices seem to record both the screen and camera with variable frame rates. COUGH APPLE COUGH.

FFmpeg handles some frame rates differently. If you do -r, it depends on container. For MP4, it WILL make it a fixed rate by dropping or duplicating. For MKV, it won't. It will ONLY DROP frames if the input frame rate is above the specified one. If the output is higher it WON'T duplicate frames.

For force a frame rate with dropping/duplication, use

-vf fps=fps=ntsc

eg:

parallel --ungroup -j 4 -q -a files ffmpeg -i "{}" -c:v libx264 -crf 26 -vf fps=fps=ntsc  -c:a libvorbis -q:a 4 -ac 1 -y -threads 4 "{.}.mkv"

where the ntsc can be replaced with a fraction. The parallel bit is just to run this on every file in the text file files. Good for mass-converting. 4×4 threads = 16, which is the #CPU cores I have.