2012-07-16 97 views
0

功能是从iPhone录制视频并将其上传到服务器,然后它应该与android设备同步,并且应该可以在那里播放。从谷歌搜索我开始知道iPhone记录.mov文件。适用于iOS的可用视频录制格式

我想知道的是,如果除了.mov之外还有其他可用的格式,那么它可以在Android设备以及服务器上播放。

谢谢。

SDK: 5.0;  
Xcode: 4.2; 
Devices: iPhone 4,4S, iPad2,3 

回答

4

.mov不是格式;这是一个容器文件。 iPhone使用流行的h.264编码器处理视频,然后将其包含(带有音频和数据)到.mov文件中,这是一种快速文件格式。您无法更改iPhone使用的容器文件或编码器。

有一些服务可以用来将视频文件从一种格式编码到另一种格式。看看zencoder和pandastream。

+2

感谢您的回应,在我回复的2.5年后,我相信这在当时是准确的。 – 2014-11-21 17:30:47

+0

这是一个很好的答案,在发布时是正确的。它包含了当时的所有相关信息。显然,新的答案更好,因为它匹配更新的功能。但查克w值得赞扬的信誉。 – 2017-05-12 01:25:21

5

确实有一种方法。您可以使用类别AVAssetExportSession。 AVAssetExportSession对象具有名为outputFileType的属性,您可以将其设置为AVFileTypeMPEG4。 通过使用预设名称AVAssetExportPresetPassthrough视频将不会实际重新编码,但只是容器将更改为MP4(所以它会超快)。

AVAssetExportSession *exporter = [[AVAssetExportSession alloc] initWithAsset:#videoAsset# composition presetName:AVAssetExportPresetPassthrough]; 
exporter.outputFileType = AVFileTypeMPEG4; 
exporter.outputURL = outputURL; 

[exporter exportAsynchronouslyWithCompletionHandler:^(void){ 
    switch (exporter.status) { 
     case AVAssetExportSessionStatusFailed: 
      // Failed! 
      break; 
     case AVAssetExportSessionStatusCompleted: 
      // Success! 
      break; 
     case AVAssetExportSessionStatusCancelled: 
      // Cancelled! 
      break; 
    } 
}];