iphone - 将 MP4 保存到 iPhone 相册中

标签 iphone video video-encoding

我有一个通过 MPMovieplayer 播放视频剪辑的应用程序。这些剪辑是 mp4 格式,一切正常。我想拍摄相同的剪辑并将其保存到相册中。如果我通过 iTunes 将视频从计算机手动同步到手机,则此方法有效。它似乎对视频文件进行转码并将其存储为 .MOV 格式。

但是,当我尝试通过代码在应用程序中保存视频时,出现视频格式错误。所以我的问题是如何将我的视频保存在相册中?如果 mp4 无法做到这一点,我该如何转码(在应用程序中)为 .MOV?

这是代码:

ALAssetsLibrary* library = [[ALAssetsLibrary alloc]init];

    if ([library videoAtPathIsCompatibleWithSavedPhotosAlbum:moviePlayerController.contentURL])
    {

        NSURL *clipURl = moviePlayerController.contentURL;
        [library writeVideoAtPathToSavedPhotosAlbum:clipURl completionBlock:^(NSURL *assetURL, NSError *error) 
         {
             if (error)
                 [ErrorAlertView showError:error];
             else [ErrorAlertView showErrorTitle:@"Success" message:@"Your video clip is saved"];
         }];
    }
    [library release];

最佳答案

您的 contentURL 是文件路径 URL 还是 Web URL?对于 writeVideoAtPathToSavedPhotosAlbum 方法,在我的测试中,您实际上需要以这种方式创建(例如)文件路径 URL:

NSString *pathString = [[NSBundle mainBundle] pathForResource:@"filename" ofType:@"mp4"];
NSString *pathURL = [NSURL fileURLWithPath:pathString isDirectory:NO];

这意味着如果您使用的是网址,则需要首先从网络下载电影。我推荐ASIHTTPRequest ,使用setDownloadDestinationPath:方法设置下载目录。

一般来说,如果 mp4 文件具有适合正确(视网膜、非视网膜、iPad)设备的正确分辨率 ( see my tests of supported video files here ),则它们应该可以工作。

如果在完全确定文件路径 URL 正确后,视频在 videoAtPathIsCompatibleWithSavedPhotosAlbum: 上仍然没有给出任何响应,则您需要使用 AVAssetExportSession (使用 AVAssetExportPresetLowQualityAVAssetExportPresetMediumQualityAVAssetExportPresetHighestQuality)获取适合设备的文件,然后将其保存到相册中。

关于iphone - 将 MP4 保存到 iPhone 相册中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5706911/

相关文章:

ios - 在 iOS7 中 "main" View 下的元素存储(弱或强)

video - 从低 fps 的视频中提取剪辑

c++ - 使用 ffmpeg 将帧编码为视频

java - Java如何通过编程将图片编码成视频文件?

azure - 无法在 azure 媒体服务 v3 中对包含两个视频的 Assets 进行编码

iphone - 在 iphone SDK 中设置对本地通知的操作

iphone - AFNetworking AFMultipartFormData如何设置key

iphone - 如何修复 "Unknown class RootViewController in Interface Builder file"ios6

Android原生级别的视频编解码

android - 在类似 facebook 的 ListView / ScrollView 中自动播放视频