Crear un intervalo de time para AVAssetExportSession

Me preguntaba cómo hacer un range de time para AVAssetExportSession partir de sellos de time como:

 NSTimeInterval start = [[NSDate date] timeIntervalSince1970]; NSTimeInterval end = [[NSDate date] timeIntervalSince1970]; 

El código que estoy usando para mi session de export es el siguiente:

 AVAssetExportSession *exportSession = [[AVAssetExportSession alloc] initWithAsset:asset presetName:AVAssetExportPresetHighestQuality]; exportSession.outputURL = videoURL; exportSession.outputFileType = AVFileTypeQuickTimeMovie; exportSession.timeRange = CMTimeRangeFromTimeToTime(start, end); 

¡Gracias por tu ayuda!

La propiedad timeRange en AVAssetExportSession permite realizar una export parcial de un activo que especifica dónde comenzar y qué duración. Si no se especifica, exportará todo el video, en otras palabras, comenzará a cero y exportará la duración total.

Tanto el inicio como la duración deben expressse como CMTime .

Por ejemplo, si desea exportar la primera mitad del activo:

 CMTime half = CMTimeMultiplyByFloat64(exportSession.asset.duration, 0.5); exportSession.timeRange = CMTimeRangeMake(kCMTimeZero, half); 

o la segunda mitad:

 exportSession.timeRange = CMTimeRangeMake(half, half); 

o 10 segundos al final:

 CMTime _10 = CMTimeMakeWithSeconds(10, 600); CMTime tMinus10 = CMTimeSubtract(exportSession.asset.duration, _10); exportSession.timeRange = CMTimeRangeMake(tMinus10, _10); 

Consulte la reference CMTime para conocer otras forms de calcular el momento exacto que necesita.