v4l@xxxxxxx wrote:
Hi List, I'm trying to capture video at a framerate lower then 25 fps, but something seems to be wrong with the way I'm doing this. I'm using the streaming I/O (Memory Mapping) method to capture frames with the bttv2 driver. I'm queing buffers at a framerate of 10 frames per second (realtime thread, SCHED_FIFO) with the VIDIOC_QBUF ioctl. I expect the frames to be captured evenly distributed over time, but it seems that this is not the case. When I look at the timestamps of the captured frames, they are 'clustered' or 'bursty'. With a little picture : (X marks the frame) This is what I want : X X X X X X X X ----> time But this is what I get X X X X X X X X ----> time (I hope the idea is clear) The video is now shocky; motion comes shocky and in bursts. Is this the proper way of grabbig with reduced framerate ? And if so, is there anything special I should do to get the frames more evenly distributed through time ? Regards, /Ico
Grab all frames (i.e. 25 QBUF and DQBUF per second) and copy only the ones you want, maybe on the basis of the timestamp or timecode returned. Even if your QBUF were *perfectly* rythmed, what counts is the video synchro signal, not the system clock.
HaND, -- Michel Bardiaux Peaktime Belgium S.A. Bd. du Souverain, 191 B-1160 Bruxelles Tel : +32 2 790.29.41