Ich habe ein Problem mit AVAssetExportSession, wo der Fortschritt aufhört zu wachsen, aber der Status sagt immer noch, dass es exportiert. Dies ist eigentlich ein ziemlich seltenes Ereignis, es funktioniert fehlerfrei in 99,99% der Zeit, aber ich möchte das Problem trotzdem beheben.AVAssetExportSession stoppt den Fortschritt
So beginne ich den Export:
exportSession = [[AVAssetExportSession alloc] initWithAsset:composition presetName:AVAssetExportPresetMediumQuality];
exportSession.videoComposition = videoComposition;
exportSession.outputFileType = @"com.apple.quicktime-movie";
exportSession.outputURL = outputURL;
[exportSession exportAsynchronouslyWithCompletionHandler:^{
...
}];
Dann einen Timer haben die Fortschritte überprüft:
AVAssetExportSessionStatus status = [exportSession status];
float progress = 0;
if (status == AVAssetExportSessionStatusExporting) {
progress = [exportSession progress];
} else if (status == AVAssetExportSessionStatusCompleted) {
progress = 1;
}
NSLog(@"%d %f", status, progress);
[delegate processor:self didProgress:progress];
Und die Ausgabe endet aussehen wie:
2012-05-23 14:28:59.494 **********[1899:707] 2 0.125991
2012-05-23 14:28:59.994 **********[1899:707] 2 0.185280
2012-05-23 14:29:00.494 **********[1899:707] 2 0.259393
2012-05-23 14:29:00.994 **********[1899:707] 2 0.326093
2012-05-23 14:29:01.494 **********[1899:707] 2 0.400206
2012-05-23 14:29:01.995 **********[1899:707] 2 0.481729
2012-05-23 14:29:02.495 **********[1899:707] 2 0.541019
2012-05-23 14:29:02.997 **********[1899:707] 2 0.622542
2012-05-23 14:29:03.493 **********[1899:707] 2 0.681832
2012-05-23 14:29:03.995 **********[1899:707] 2 0.763355
2012-05-23 14:29:04.494 **********[1899:707] 2 0.822645
2012-05-23 14:29:04.994 **********[1899:707] 2 0.880082
2012-05-23 14:29:05.493 **********[1899:707] 2 0.880082
2012-05-23 14:29:05.994 **********[1899:707] 2 0.880082
...
2012-05-23 14:43:22.994 **********[1899:707] 2 0.880082
2012-05-23 14:43:23.493 **********[1899:707] 2 0.880082
2012-05-23 14:43:23.994 **********[1899:707] 2 0.880082
2012-05-23 14:43:24.494 **********[1899:707] 2 0.880082
(Hinweis: Es hört nicht immer bei dem gleichen Prozentsatz auf, es ist völlig zufällig)
Wie Sie von den Zeitstempeln sehen können, dauerte es 5 Sekunden, um die ersten 88% zu machen, und dann ließ ich es weitere 13 Minuten laufen (volle Videoverarbeitung dauert normalerweise nicht mehr als 10 Sekunden) Fortschritt.
Momentan ist meine einzige Option zu überprüfen, ob sich der Fortschritt in den letzten X Sekunden nicht geändert hat und dem Benutzer einfach mitzuteilen, dass es fehlgeschlagen ist, und es erneut zu versuchen.
Wer hat irgendwelche Ideen?
Welche Art von Daten möchten Sie in die Exportsitzung schreiben? –
Fügen Sie ein Video am Ende eines anderen hinzu und ersetzen Sie einen Teil des Audiomaterials durch einen anderen Teil einer Audiodatei. Verwenden der videoComposition zum Festlegen der bevorzugten Transformationen der Videos zu ihren Startzeiten. –
Haben das gleiche Problem auch. Irgendwelche Fortschritte dabei? –