The issue is solved. In the end it was a driver update issue.
General details:
I am using Epiphan DVI2USB Solo and DVI2USB 3.0 frame grabbers on a Mac environment.
Drivers with the version 3.27.7 and below would not work.
The issue is adressed with a new driver update 3.27.8 by Epiphan
In the changelog it explicitly states the issue I had.
Now it works
Technical background:
I posted my problem to the QuickTime API Mailing List. Apple and Epiphan replied. Apple explained it very precisely:
This isn't a file size problem. It's a duration timescale problem. The QT movie file duration field is only 32-bit and is expressed in the timescale of the movie. On Mac OS X, AVCaptureMovieFileOutput uses the timescale of your video capture source as the movie timescale to preserve precision (for editing). So if your video device is using a timescale of 1000000, then:
2147483647 / 1000000 = 2147 seconds, or 35 minutes.
Also one cannot influence the timescale with an AVCaptureMovieFileOutput
Setup. One needs to work with the CMSampleBufferRef
and an AVAssetWriter
setup: Apple says:
There's currently no way to influence AVCaptureMovieFileOutput's timescale choice. It uses the video device's timescale. One workaround would be to use AVCaptureVideoDataOutput/AVCaptureAudioDataOutput to get buffers sent to your delegate callback, then write the buffers with AVAssetWriter, which uses a movie time scale of 600. It also gives you the opportunity to specify the media timescale, which you could set to something lower so you can record longer movies (see AVAssetWriterInput.h).