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".