猿问

iPhone:以编程方式压缩录制的视频以共享吗?

在录制视频之前调用相机视图时,我已经实现了叠加视图。


pickerController.cameraOverlayView =myOverlay;

录制视频并通过电子邮件共享后,可以进行视频录制并将视频保存到“相册”中。


如果我将视频质量用作“高质量”,则录制的视频已经变得很大。例如,如果我以高质量录制视频30秒钟,则录制的视频已变为30-40 mb。


pickerController.videoQuality = UIImagePickerControllerQualityTypeHigh;

我如何编程才能在共享之前压缩高质量的录制视频,就像Apple对内置视频录制器的处理方式一样?


请指导我解决此问题。


谢谢!


更新:


这是我最近正在尝试的方法,但仍然没有成功:我想压缩录制的音频,并将它们录制到didFinishPickingMediaWithInfo并将其实际的视频路径本身存储在同一相册中,而不是其他位置。当我从照片库中选取时,我测试了将相同的视频压缩到非常小的尺寸,但是虽然我使用了下面的AVAssetExportSession代码,但是从相机拍摄并通过didFinishPickingMediaWithInfo来的相同视频未压缩。


- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{


    NSString *mediaType = [info objectForKey:UIImagePickerControllerMediaType];



if ([mediaType isEqualToString:(NSString *)kUTTypeMovie])

{


    NSURL *videoURL = [info objectForKey:UIImagePickerControllerMediaURL];

    NSString *urlPath = [videoURL path];


    if ([[urlPath lastPathComponent] isEqualToString:@"capturedvideo.MOV"])

    {

        if (UIVideoAtPathIsCompatibleWithSavedPhotosAlbum (urlPath))

        {

            [self copyTempVideoToMediaLibrary :urlPath];



        }

        else

        {

            NSLog(@"Video Capture Error: Captured video cannot be saved...didFinishPickingMediaWithInfo()");                

        }

    }       

    else

    {

        NSLog(@"Processing soon to saved photos album...else loop of lastPathComponent..didFinishPickingMediaWithInfo()");

    }

}    

[self dismissModalViewControllerAnimated:YES];

}


- (void)copyTempVideoToMediaLibrary :(NSString *)videoURL {


        dispatch_queue_t mainQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);


dispatch_async(mainQueue, ^{


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


    ALAssetsLibraryWriteVideoCompletionBlock completionBlock = ^(NSURL *assetURL, NSError *error) {

        NSLog(@"Saved URL: %@", assetURL);

        NSLog(@"Error: %@", error);


泛舟湖上清波郎朗
浏览 701回答 3
3回答
随时随地看视频慕课网APP
我要回答