2

その上にアニメーション化された画像を含むビデオファイルを作成しています。エクスポートの進行状況とステータスを追跡していますが、エクスポートの進行状況が 1.0 に達した後、完了コールバックは呼び出されず、エクスポート ステータスは「AVAssetExportSessionStatusExporting」のままです。

AVAssetExportSession *exportSession = [[AVAssetExportSession alloc] initWithAsset:movieAsset presetName:AVAssetExportPresetMediumQuality];
self.session = exportSession;
[exportSession release];
session.videoComposition = self.videoComposition;
NSString *filePath = NSTemporaryDirectory();
NSString *fileName = [[@"Output_" stringByAppendingString:number] stringByAppendingString:@".mov"];
filePath = [filePath stringByAppendingPathComponent:fileName];
if ([[NSFileManager defaultManager] fileExistsAtPath:filePath]) {
    [[NSFileManager defaultManager] removeItemAtPath:filePath error:nil];
}
session.fileLengthLimit = 1024 * 1024 * 10;
session.outputURL = [NSURL fileURLWithPath:filePath];
session.outputFileType = AVFileTypeQuickTimeMovie;
[session exportAsynchronouslyWithCompletionHandler:^{
    dispatch_async(dispatch_get_main_queue(), ^{
        [self exportDidFinish];
    });
}];

実際には、読み取り不能な出力ファイルを作成しています。私が見たいのはエラー メッセージですがerror、エクスポート セッションのプロパティは空のままです。

4

1 に答える 1

0

どうやら、動画ファイル自体に問題があったようです。sample_iPod.m4vAppleのサンプルからサンプル ビデオをダウンロードしたところ、すべてが期待どおりに機能しました。奇妙なことに、ファイルとサンプルの両方が H.264 でエンコードされています。私を混乱させたのは、コンソールにもオブジェクトerrorのプロパティにもエラーが表示されなかったことです。AVExportSession

2013-07-02 12:56:06.521 テスト [2330:907] 実行中のエクスポート - [進行状況: 0.838969、エラー: なし]

2013-07-02 12:56:09.020 テスト [2330:907] 実行中のエクスポート - [進行状況: 0.932188、エラー: なし]

2013-07-02 12:56:11.519 テスト [2330:907] 実行中のエクスポート - [進行状況: 0.999630、エラー: なし]

2013-07-02 12:56:14.023 テスト [2330:907] 実行中のエクスポート - [進行状況: 1.000000、エラー: なし]

2013-07-02 12:56:16.519 テスト [2330:907] 実行中のエクスポート - [進行状況: 1.000000、エラー: なし]

...

于 2013-07-02T10:00:17.540 に答える