A keyframe is a special frame in the encoding that periodically syncs up the video with the audio so that they don’t get too far out of whack as the video plays. Some video editing tools are aware of keyframes, and if you’re manually editing, you should always make your cuts on the keyframes. Video production tools can insert keyframes as they remux the video with the audio. They’re usually not something you have to fuss with. What @Goose is referring to is that wherever you got the video from, whoever produced it decided to insert those keyframes as often as their tool does that. Some are good and give you control over them (how many frames or seconds between keyframes), others are basic and just slap them in every 10 seconds or so. Whoever made your video already decided how frequent the keyframes would be inserted into the video stream to keep the audio in sync. Keep in mind there are often multiple language audio streams and 5.1 streams and so keyframes get critical keeping all of those streams in sync. For basic stereo broadcast TV fare, not so much. It just depends on the production quality of the original video and the processing tools they used to make it.
What I’m surprised is that the ad-detection cutpoints aren’t adjusted to the prior or next keyframe either as an option, or keyframes aren’t automatically added at the cutpoints. I know I’m being wand-wavey because that is probably technically hard to do, but at the same time, that is what the demux/remux tools are supposed to do automatically (ffmpeg, handbrake).
It could also be a tradeoff if requiring ad removal cutpoints to be forced to cut on keyframes or to force the demux to add keyframes at the cutpoints and then split the streams and remerge, that very well could require multiple passes through the video and that is where people get impatient.
@Goose, are there options to FFMPEG and/or Handbrake and/or avidemux to do something like that, and can that be turned into an “option” or a set of preset options that can be flipped on/off along with the appropriate info/warnings if it means multiple passes an transcodings will take X times longer. Then let people turn it on/off as they need to. For me, I would turn it on because my MCEBuddy is running at night after the recordings have been made and preparing it for later watching with Plex. I don’t record enough to have my machine bogged down all the time converting videos, so it wouldn’t bother me for the extra processing time. Especially if it meant perfect playback where they don’t “lock up” at the ad cutpoints.