There are issues with the values loaded into the export presets.
I edited the frame rate on a custom export preset and saved it; the preset did not hold the value I entered. It appeared to be either picking up a value from another preset, or calculating a frame rate from the resolution entered. I have also had it load incorrect H and V resolutions, and it sometimes incorrectly loads Progressive instead of Interlaced.
Note: for interlaced video the frame rate is 1/2 the field rate. The frame rate is typically 29.97 frames per second for “NTSC”; the field rate (alternate scan lines) is 59.94 fields per second.
It works for me; do not enter 59.94 for frames/sec. It wants the frame rate, not the field rate. Yes, I know about fields. When you enter 29.97003 (and frame_rate_num and frame_rate_den are NOT in Other), Shotcut detects that and converts it to 30000/1001 to be more accurate. 29.97 is not sufficient and mpeg2video codec in FFmpeg is strict in this regard. I have a very specific reason for not accepting 29.97 for conversion to 30000/1001 that I do not want to get into.
You must enter this frame rate as 59.94006.
You will notice that if you use the various Video Modes in Settings, it will set these as expected.
In case you’re wondering, the 29.970 (actually 30000/1001) and 23.976 (actually 24000/1001, from telecining), annoying non-integer frame rates, are the fault of color NTSC. If only they’d been willing to risk a few black-and-white sets not being able to handle an extra 0.1% frequency for the audio subcarrier, the world would have been spared this nonsense.
In the days of analog this stuff was handled in hardware and we didn’t have to deal directly with fractional frame rates so it was no big deal. I can’t fault the RCA engineers in the 1940’s for that. It wasn’t worth the compromise for B&W receivers just to have integer frame rates.
Nowadays 29.97 and 59.94 are easy to remember with their two decimal places. But the added .00006 is not so easy to remember and it’s usually not written that way.
There are actually a lot of valid frame rates outside of the broadcast workld including perhaps the most popular being variable. However, I agree there should be a drop-down to choose some of the common broadcast ones.
I thought of a way to improve this. If the user changes the field to 23.976, 23.98, 29.97, or 59.94 present a dialog asking them if they really want the more accurate value of 24000/1001, 30000/1001, or 60000/1001. I cannot just do this automatically.