I noticed the PS1 SCPH1000 bootup logo looks really bad for around two seconds:
It's even worse when deinterlaced.
) (note: 30 FPS, original is 60 FPS)
This is a pretty big issue. However, if you want to keep your video interlaced (see first image), the solution is thankfully simple:
vid = AVISource("MGSI_1.avi")
FreezeFrame(vid, 289, 421, 288)
In this example, 289 is the first frame the screw-up happens, while 421 is the last frame of that happening. 288 is the last "clean" frame just before the screw-up. This effectively replaces frames 289 to 421 with frame 288, while the audio remains unaltered.
If you deinterlaced your video beforehand, well...
vid = AVISource("MGSI_1deint.avi", audio=false)
audio = WAVSource("MGSI_1deint.avi")
a = vid.Trim(0, 287) # pre-screwup
c = vid.Trim(422, 0) # post-screwup
d = vid.Trim(286, 287) # fix screwup
vidfixed = a + d + d + d + d + d + *insert 60 more d's* + d + c
As you can see, you actually need 2 frames to fix the screwup that happens between frames 288 and 421 to keep consistency with the rest of the video. There may be a better solution , but it works. The reason why it's frame 288 instead of frame 289 in this example is because the video would be one frame too long otherwise. After all, we want to keep the same frame count.
For both solutions, you can re-save them as AVI (I recommend that, actually) with a lossless codec of your choice (e.g. Lagarith).
For the record, you don't have to do this when dealing with SCPH1001 (probably not even SCPH1002) or with newer PS1 BIOSes (SCPH5500-5502, etc).