我正在为iPhone中的Play Station 3开发媒体服务器.
我开始知道PS3不支持.MOV文件所以我必须将其转换为Mp4或PS3支持的其他转码.
这就是我所做的,但如果我设置的文件类型与源文件不同,它会崩溃.
AVURLAsset *avAsset = [AVURLAsset URLAssetWithURL:videoURL options:nil];
NSArray *compatiblePresets = [AVAssetExportSession exportPresetsCompatibleWithAsset:avAsset];
if ([compatiblePresets containsObject:AVAssetExportPresetLowQuality])
{
AVAssetExportSession *exportSession = [[AVAssetExportSession alloc]initWithAsset:avAsset presetName:AVAssetExportPresetLowQuality];
exportSession.outputURL = [NSURL fileURLWithPath:videoPath];
exportSession.outputFileType = AVFileTypeMPEG4;
CMTime start = CMTimeMakeWithSeconds(1.0, 600);
CMTime duration = CMTimeMakeWithSeconds(3.0, 600);
CMTimeRange range = CMTimeRangeMake(start, duration);
exportSession.timeRange = range;
[exportSession exportAsynchronouslyWithCompletionHandler:^{
switch ([exportSession status]) {
case AVAssetExportSessionStatusFailed:
NSLog(@"Export failed: %@", [[exportSession error] localizedDescription]);
break;
case AVAssetExportSessionStatusCancelled:
NSLog(@"Export canceled");
break;
default:
break;
}
[exportSession release];
}];
}
Run Code Online (Sandbox Code Playgroud)
如果我在这里设置AVFileTypeMPEG4然后它崩溃,说"无效的文件类型".所以我必须将它设置为AVFileTypeQuickTimeMovie并且它给出了MOV文件.
在iOS中是否可以通过AVAssetExportSession将视频从MOV转换为Mp4 …
要求:
听起来有点不同,但这就是我想要实现的目标.我想反过来制作电影(.mov)文件.就像我们如何回放电影文件一样.我还希望保持与我的视频包含相同的帧速率.
注意:我不只是想以相反的顺序播放视频文件.我想以相反的顺序生成新的电影文件.
我的探索:
我想到了以下步骤来执行相同的操作.
AVAssetExportSessionAVMutableComposition和将所有这些视频块合并为单个电影文件AVAssetExportSession.使用上述步骤,我能够反过来实现生成的视频文件,但我有以下问题.
有没有人有任何其他优化的方法来实现这一目标?任何建议将不胜感激.