AVCaptureVideoDataOuput
を使用してカメラからライブビデオを録画しましAVAssetWriter
たが、結果のビデオには長さがありません。誰かが期間を機能させるための簡単なアイデアや一般的な方向性のポイントを与えることができますか?
質問する
840 次
2 に答える
2
行う必要があるのは、 initial を定義することCMTime
です。
self.time = CMMakeTime( 0, 30 /* some frame time */ );
それから
[instanceAVAssetWriter setSessionAtSourceTime:self.time];
の上captureOutput:didOutputSampleBuffer:fromConnection:
CMSampleBufferRef sb;
CMSampleTimingInfo sampleTimingInfo;
sampleTimingInfo.duration = CMTimeMake(1,30);
sampleTimingInfo.presentationTimeStamp = self.time;
sampleTimingInfo.decodeTimeStamp = kCMTimeInvalid;
CMSampleBufferCreateCopyWithNewTiming(kCFAllocatorDefault, sampleBuffer, 1, &sampleTimingInfo, &sb);
そして終わり
CFRelease( sb );
self.time.value += 1;
于 2012-05-18T11:36:10.317 に答える
0
これは、NebulaFoxの答えに似た私がしていることです。このコードは、ビデオ データをキャプチャするためのコールバックにあります。ライターはすでに初期化およびセットアップされています。
switch (writer.status) {
case AVAssetWriterStatusUnknown:
startTime = CMSampleBufferGetPresentationTimeStamp(sample);
[writer startWriting];
[writer startSessionAtSourceTime:startTime];
if (writer.status != AVAssetWriterStatusWriting) {
break ;
}
....
于 2012-05-18T20:38:36.180 に答える