Hi, I need to record a stream divided by files of exactly the same duration.
The problem is they’re always one or two seconds longer. I thought it was because the recorder waits for a key frame to close the current file and open a new one, so i tried by setting
recordParametersVideo.startOnKeyFrame = false
but the result is always the same.
Here is my code
StreamRecorderParameters recordParametersVideo = new StreamRecorderParameters(appInstance);
recordParametersVideo.segmentationType = IStreamRecorderConstants.SEGMENT_BY_DURATION;
recordParametersVideo.segmentDuration = 10*60*1000;
recordParametersVideo.startOnKeyFrame = false;
recordParametersVideo.recordData = false;
recordParametersVideo.outputPath = "/some/dir/";
recordParametersVideo.fileTemplate = "segment${SegmentNumber}";
recordParametersVideo.fileFormat = IStreamRecorderConstants.FORMAT_MP4;
final ILiveStreamRecordManager recorder = vhost.getLiveStreamRecordManager();
recorder.startRecording(appInstance, "streamToRecord", recordParametersVideo);
Wowza docs say:
public boolean startOnKeyFrame
Configures whether or not the recorder will wait until a video key frame is received to start writing packets to the output file, thus ensuring the first packet in the file contains a video key frame.
If so setting it to false shouldn’t cause duration differences.
May I have misunderstood the function of StreamRecorderParameters.startOnKeyFrame? Or maybe the cause of my problem is another one?