If you don't have specific requirements in terms of video codec settings, you can generate the video based on one black frame (see
ffmpeg -f lavfi -i color=black:duration=60:size=320x240:r=1 -c:v libx264 out.mp4
We're using one frame per second (
r=1), but you can go even lower (e.g.
r=0.01) to encode only one frame for 60 seconds, and nothing else.
Another method suggested by Gyan should be much faster:
ffmpeg -f lavfi -i color=black:size=320x240 -vf trim=end_frame=2,setpts=N*59*3600/TB -c:v libx264 -vsync 0 -video_track_timescale 100 out.mp4
trim=end_frame=2 removes everything but the first two frames
setpts=N*59*3600/TB sets the timestamp of the first frame to 0, and the second one to 59 hours (59 × 3600 seconds), divided by a constant (TB)
-vsync 0 makes ffmpeg use these timestamps as-is without forcing a specific framerate (otherwise you'd get duplicated frames)
-video_track_timescale sets the time base (TB) to 100, which is required since otherwise the generated PTS numbers would be too large