Существует встроенный механизм, который разбивает захваченный фильм на куски.Используйте
[QTCaptureFileOutput setMaximumRecordedDuration:]
, чтобы указать продолжительность фрагмента, или
[QTCaptureFileOutput setMaximumRecordedFileSize:]
, чтобы указать ограничение размера файла.
Когда предел будет достигнут, метод делегата будетsaid:
[QTCaptureFileOutput_Delegate captureOutput: shouldChangeOutputFileAtURL: forConnections: dueToError:]
В этом методе вы можете установить новое имя файла:
[QTCaptureFileOutput recordToOutputFileURL:]
Это позволит вам довольно точно вырезать фрагменты записанного фильма.
Обратите внимание, что [QTCaptureFileOutput_Delegate captureOutput: didFinishRecordingToOutputFileAtURL: forConnections: dueToError:] будет вызван чуть позже после того, как запись в файл была фактически завершена.Если вы используете этот метод для установки нового файла, у вас будут пробелы в финальном видео.Это не значит, что вам не нужно использовать этот метод.Этот метод будет показан, когда фрагмент фильма будет готов к использованию.
Если вам нужна еще более точная обрезка, вы можете использовать
[QTCaptureFileOutput captureOutput: didOutputSampleBuffer: fromConnection:]
, чтобы указать точный кадр фильма, когда начинатьзапись в новый кусок.Однако для работы с методом вам понадобятся более конкретные знания.