HI.
I'm very grateful for developing javacv. You did great job!!!
I have problem with grabbing every mp4 or other types of files. I used code from current README.md.
Instead of grabbing video from a camera, I used FFmpegFrameGrabber with mp4 file:
And now it grabbes frame from that file, but ther's something strange. Every few frames the frame is a keyFrame, and it has null image.
I've modified while loop:
while (frame.isVisible() && (grabbedImage = converter.convert(grabber.grab())) != null) {
to
while (frame.isVisible()) {
Frame grabbedFrame = grabber.grab();
System.out.println(String.format("keyframe %s, image is null: %s", grabbedFrame.keyFrame, grabbedFrame.image == null));
if (grabbedFrame.image == null) {
continue;
}
grabbedImage = converter.convert(grabbedFrame);
and now the output is:
keyframe false, image is null: false
keyframe false, image is null: false
keyframe false, image is null: false
keyframe true, image is null: true
keyframe true, image is null: true
keyframe true, image is null: true
keyframe true, image is null: true
keyframe true, image is null: true
keyframe true, image is null: true
keyframe false, image is null: false
keyframe false, image is null: false
keyframe false, image is null: false
The output to the Canvas is very fast running film as there are lots of gaps in frames.
Strange thing. If I dump frames with ffmpeg:
ffmpeg -i small.mp4 thumb%04d.jpg
I get all the frames. No gaps.
Can you help me?
I'd be very grateful.
Bartek