This is not a particularly new question area around here, but I've tried what's been suggested there without much luck. So, my story:
I've got a hunk of 15 seconds of straight-from-the-camera.mov video out of which I want to extract a specific chunk, which I can identify by start time and stop time, in seconds. I started by trying to do what I'll call a "copy extraction": to get seconds 9 to 12,
ffmpeg -i test.mov -vcodec copy -acodec copy -ss 9 -to 12 test-copy.mov
This was a not-bad start, but there are some black frames at the beginning and end of the clip, which I can't have -- it has to be a clean edit from the original. So, I tried recoding the original into a new, trimmed clip:
ffmpeg -i test.mov -ss 00:00:09 -t 00:00:03 test-out.mov
This is better, but not quite: There are no longer any black frames at the beginning of the clip, but they're still there at the end.
After some more browsing and reading, I then suspected that the problem is that ffmpeg is having trouble finding the proper points because of a lack of keyframes in the original video. So I recoded the original video to (presumably) add keyframes, in a couple of different ways. Since I want to be able to pick video at boundaries of a second ("from 9 seconds to 12 seconds"), I tried, copying various suggestions around the web,
ffmpeg -i test.mov -force_key_frames "expr:gte(t, n_forced)" test-forced.mp4
and
ffmpeg -i test.mov -g 1 test-g-inserted.mp4
(I built these as mp4's based on some comments about an mp4 container being needed to support the keyframe search, but I'm honestly just hacking here.) I then tried the extraction as before, but on these new videos that presumably now have keyframes in them. No luck -- both seem to be about the same; the start is OK but there are still black frames at the end. (FWIW, both test-forced.mp4 and test-g-inserted.mp4 also have trailing black frames.)
So: I'm still stuck, and would like to not be. Any insights out there as to what I'm doing wrong? I feel like I'm close, but I really need to get rid of those trailing black frames....
question from:
https://stackoverflow.com/questions/21420296/how-to-extract-time-accurate-video-segments-with-ffmpeg