The most common reason for stuttering is that an image file was dragged into a new project first, which defaulted the project timeline (the Video Mode) to 25fps. When the export finally happens, the 30fps source videos are frame-dropped down to the 25fps timeline video mode format. Then, the 25fps timeline is frame-duplicated up to the 30fps requested by the Advanced Export panel. This means 1/6th of the original frames were removed and then replaced with duplicates of the previous frames, which is why the motion looks stuttery.
More information about checking and changing the Video Mode can be found in the documentation:
In the .mlt XML file, the Video Mode is specified by attributes on the XPath /mlt/profile element. Here is a sample (ignore the description
attribute):
<profile description="HD 1080p 25 fps" width="1920" height="1080" progressive="1" sample_aspect_num="1" sample_aspect_den="1" display_aspect_num="16" display_aspect_den="9" frame_rate_num="30000" frame_rate_den="1001" colorspace="709"/>
The frame rate is frame_rate_num
/ frame_rate_den
. So 29.97fps would be 30000/1001, and 25fps would be 25000000/1000000 (which is the same as 25/1, but multiplied up for internal reasons).
It is possible to modify the .mlt XML directly. However, changing FPS through Shotcut’s Settings > Video Mode menu is recommended when possible, as that will allow Shotcut to do some processing that can improve results. I’m not sure a lot of optimizations are actually done at the moment, but the principle of leaving the possibility open to future improvements is still valid.
Quality for libx264 is visually lossless at 68%, so going above that quality level is usually not worth the extra export time and disk space. If you’re using hardware encoding, then the percentage level to achieve visual losslessness will vary by hardware. Only extremely low percentage values would cause the quality parameter to affect the appearance of motion or stutter. Stutter is a FPS issue, not quality issue.