我将视频文件存储在Web服务器上,该服务器与UIImagePickerController中的iOS视频录制器一起使用。在将视频发送到服务器之前,我使用以下代码将其从MOV转换为MP4:
AVAsset *avAsset = [AVAsset assetWithURL:info[UIImagePickerControllerMediaURL]];
AVAssetExportSession *exporter = [[AVAssetExportSession alloc]initWithAsset:avAsset presetName:AVAssetExportPresetPassthrough];
exporter.outputFileType = AVFileTypeMPEG4;
exporter.shouldOptimizeForNetworkUse = YES;
exporter.outputURL = [NSURL fileURLWithPath:[self getVideoPath]];
[exporter exportAsynchronouslyWithCompletionHandler:^{
switch (exporter.status)
{
case AVAssetExportSessionStatusFailed:
NSLog(@"Video conversion Failed: %@",exporter.error);
break;
case AVAssetExportSessionStatusCancelled:
NSLog(@"video conversion canceled");
break;
case AVAssetExportSessionStatusExporting:
NSLog(@"video conversion exporting");
break;
case AVAssetExportSessionStatusWaiting:
NSLog(@"video conversion is waiting");
break;
case AVAssetExportSessionStatusUnknown:
NSLog(@"video converstion status unknown");
break;
case AVAssetExportSessionStatusCompleted:
self.outputFileURL = exporter.outputURL;
break;
}
}];
我已使用上面的switch语句验证转换是否达到AVAssetExportSessionStatusCompleted
状态。但是,当我查看服务器端的视频时,它会颠倒翻转。无论iPad / iPhone或视频是以横向还是纵向模式拍摄,都会出现这种情况。当我将文件从Web服务器下载到应用程序时,它确实正确播放并且方向正确,因此这只发生在iOS之外。值得注意的是,如果我没有隐藏文件而是将其保留为MOV文件,它会在应用程序外部保持正确的方向,但当然必须使用Quicktime来查看它。
为什么此转化过程会导致视频呈现倒置,我该如何解决?
答案 0 :(得分:0)