This problem has been asked and asked, I know, but I have tested, searched tried and tried and have not found an answer or a fix. It is somewhat complicated to explain because of all the testing but i think it might be easier if I give all the information i have first.
Essentially, I have a video, (closed GOP, 30 FPS, .033367 frame duration, I-frame every 250 Frames) that has no great scene change differences but has constant movement to easily determine start frame number copied/played. I have the I-Frame locations, to the microsecond from ffprobe, so not wanting to throw a bunch of number here I will refer to them as Point A, B, C, and D.
For testing purposes of cutting and remerging, I-Frame to I-Frame, I am trying to cut from B to C but not including the C I-Frame. I am using Point B as my start point (05:27.127127, 327.127127 < FFPROBE), Using -SS as an input option which resets PTS time to 0. Because of this reset to PTS Time, I limit the -t (-to) time to 8.+ for the frame before point C (05:35.308308, 8.308308)
This produces what FFPROBE says is 251 Frames I-Frame B thru I-Frame C.Code:'FFMPEG -ss B -i video.mp4 -t 8.308308 -c copy Out_Video.mp4'
Backing up another frame (2 Frames before point C. (8.274942)
This produces what FFProbe says is 250 Frames, Point B up to Point C but not including it which is what I wish. Everything looks right and is 8.+ seconds long, plays for 8 seconds.Code:'FFMPEG -ss B -i video.mp4 -t 8.274942 -c copy Out_Video.mp4'
The problem is that Explorer says both created videos are 16 seconds long and The track information (under tkhd) in the MP4 also says is is 16 seconds long. but ffprobe does not show this. If I merge the video with itself, since they are starting with I frames and ending in P frames(closed GOP), this should work. What I get is a video that is 32 seconds long and includes A to C twice. Somehow A to B is now visible.
No amount of changing the -ss or -t (-to either) achieves an 8 second, playable video. The only method that works is if I use -SS as an output option and -vframes as the duration. This works but a separate operation must be performed on the resulting video before joining, since its DTS starts at the cut point not 0.
Is this a known bug that I have not found in my searching or am I doing something wrong?
+ Reply to Thread
Results 1 to 3 of 3
Ok. Thx i thought maybe someone knew of an existing bug or something in my procedure thet saw was wrong. Ill check the tracker thx.