Further to this, I've managed to get a still frame to record into timestamped
segments using:
ffmpeg -loop 1 -i frame.png -reset_timestamps 1 -vcodec libx264 -f segment
-segment_time 60 -strftime 1 +%Y-%m-%d_%H-%M-%S.mp4
But while the segments are 60 seconds of wallclock time long, they are
Just in case anyone finds this in the future, the eventual solution to this
issue (for me, I don't know how applicable it is generally), was to add -ss
0 to the ffmpeg command:
ffmpeg -discard nokey -ss 0 -i input.mp4 -c copy -y keyframes.h264
I'm guessing the input stream has weird timing
Further to this, I have added -vf showinfo to my command to extract the
keyframes:
ffmpeg -discard nokey -i input.mp4 -*vf showinfo* -y keyframes.h264
and found that the filter is being passed non-keyframes:
[Parsed_showinfo_0 @ 0x55ec60de6fa0] n: 1 pts: 3600 pts_time:0.04
pos: 127530