On Fri, 3 Feb 2023, Dave Blanchard wrote:

Hi all, I'm pulling video off a capture card for a surveillance application. I use the -t option to ffmpeg to record a 6 hour segment of video, then stop and start another segment. The problem is the timestamp of the next video file is advanced about 21 seconds from where it's supposed to be. For example if the first video were timestamped 6:00:00 UTC, the next one will start at 12:00:24 instead of 12:00:03 where it should be, taking into account time needed to start and stop the recording. It's like there is really 6:00:21 of video being pulled off the card, but it's being output at a (very) slightly higher framerate, resulting in a 6:00:00 file. This seems to be due to NTSC 30000/1001 framerate vs. straight 30 fps discrepancy. I haven't been able to figure out exactly why this is happening. Can anyone give me a tip on what's going on here and how to solve it? Thanks in advance.

The 30000/1001 v.s. 30 fps seems like a good guess based on the 21 second difference. E.g. the camera reports 30 fps when it in fact runs at 29.97.

I'd check what is detected, and what is written to the output file as frame rate. You may try overriding the input frame rate with -r option.

There is also another approach to make this kind of chunked recording, using the segment muxer of ffmpeg.

https://www.ffmpeg.org/ffmpeg-all.html#toc-segment_002c-stream_005fsegment_002c-ssegment

By using options -segment_time and -segment_atclocktime you can make the system create 6 hour chunks, the ffmpeg command does not have to be restarted, and there will be no gaps between recordings.

Regards,
Marton
_______________________________________________
ffmpeg-user mailing list
[email protected]
https://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
[email protected] with subject "unsubscribe".

Reply via email to