After considerable experimentation, I can confirm that there is definitely an issue with the exported file rendering under certain, specific conditions. This is not due to any limitations of my PC (which should anyway surely affect only the speed of rendering, which is algorithm driven, not the actual output coding).
I used a short, 2 second clip, both 720p and 1080p, mp4, with continuous movement within the clip.
I tested your assertion, and agree that the output file showed no artifacts, duplication or dropped frames ,when the brightness or hue effect was applied across the whole clip, with no use of keyframe edit points within the video effect editor.
However, as soon as a keyframe edit point is introduced within the clip, the issue of dropped/duplicated frames re-emerges. This edit point can exist anywhere within the edited clip. I even introduced an edit point at the start of the clip, with no actual change in brightness/contrast/hue etc., and this produces the same issue. The removal of keyframe edit points removes the problem.
I am not certain of the reason for this, but my investigations indicate that there is an apparent issue with frame synchronisation within the editor. When a clip is selected and put into the video track, it does not match exactly the selected clip in the clip source window. I set my start and end points of the clip exactly at start of a frame, i.e each frame lasts for exactly 40 ms (it is a 25 fps video). However, in the video track (and preview window), the first frame only lasts for 1 ms before it switches to the second frame. Each successive frame lasts for 40 ms, but the last frame is duplicated in order to produce a preview clip equal in length to the original clip. I do not know why this is done this way. However, if the effects editor is opened for the clip on the video track, it shows each frame in the correct place - frame 1: 0-39 ms; frame 2: 40-79 ms and so on). Could it be that setting keyframe edit points in the effects editor is causing confusion because of this lack of frame synchronisation?
Some form of confusion is definitely occurring because the output files are very different, with the minor addition of a brightness keyframe edit point (which does not even change the brightness of the clip). I have included below the extracts from the two output files (with and without edit points) from MediaInfo.
File with edit point included (note switch to variable frame rate, due to frame duplication in output file, plus extra frame due to duplicated final frame in the editor - original clip is exactly 2.00 s long):
Codec ID : avc1
Codec ID/Info : Advanced Video Coding
Duration : 2s 40ms
Bit rate : 18.3 Mbps
Width : 1 280 pixels
Height : 720 pixels
Display aspect ratio : 16:9
Frame rate mode : Variable
Frame rate : 19.608 fps
Minimum frame rate : 12.500 fps
Maximum frame rate : 25.000 fps
File with no keyframe edit point (note constant frame rate, plus correct file length):
Codec ID : avc1
Codec ID/Info : Advanced Video Coding
Duration : 2s 0ms
Bit rate : 20.6 Mbps
Width : 1 280 pixels
Height : 720 pixels
Display aspect ratio : 16:9
Frame rate mode : Constant
Frame rate : 25.000 fps
To summarise, you should be able to replicate this by doing the following:
1. Take your selected video clip
2. Open the effects editor
3. Add a keyframe edit point at any point in the clip
4. Export to mp4, H264 (I have tested mostly with this format and codec, but have observed same issue in others)
5. Open exported file in VP, and step through frame by frame. Compare to frame step through in original file.
Finally, I also noticed that even with a non-problematic video track source, the insertion of a blank section into the video track results in a switch from a constant frame rate to a variable frame rate (lowest frame rate is a 1/3 the requested frame rate). I imagine that the the H264 or mpeg-4 codec implementation is causing this automatic switch to minimise file size. The use of the older mpeg-2 codec forces a constant frame rate.