相关疑难解决方法(0)

如何减少使用UIImagePickerController创建的视频的文件大小?

我有一个应用程序,允许用户录制视频,UIImagePickerController然后将其上传到YouTube.问题是UIImagePickerController创建的视频文件是巨大的,即使视频只有5秒长.例如,5秒长的视频是16-20兆字节.我想保持540或720质量的视频,但我想减少文件大小.

我一直在尝试AVFoundation并AVAssetExportSession试图获得更小的文件大小.我试过以下代码:

AVAsset *video = [AVAsset assetWithURL:videoURL];
AVAssetExportSession *exportSession = [AVAssetExportSession exportSessionWithAsset:video presetName:AVAssetExportPresetPassthrough];
exportSession.shouldOptimizeForNetworkUse = YES;
exportSession.outputFileType = AVFileTypeMPEG4;
exportSession.outputURL = [pathToSavedVideosDirectory URLByAppendingPathComponent:@"vid1.mp4"];
[exportSession exportAsynchronouslyWithCompletionHandler:^{
    NSLog(@"done processing video!");
}];
Run Code Online (Sandbox Code Playgroud)

但这并没有减少文件大小.我知道我正在做的事情是可能的,因为在Apple的照片应用程序中,当您选择"在YouTube上分享"时,会自动处理视频文件,因此它的小到可以上传.我想在我的应用程序中做同样的事情.

我怎么能做到这一点?

video file-upload objective-c avfoundation ios

56
推荐指数
7
解决办法
6万
查看次数

AVCaptureSession没有提供良好的照片质量和良好的分辨率

我正在努力AVCaptureSession捕捉图像.它的工作正常但没有给出好的分辨率.我将它与iPhone相机拍摄的图像进行了比较,我发现iPhone相机图像比AVCaptureSession图像要好得多.

我在stackOverflow上看到过3-4个关于此的链接,但找不到任何解决方案.

我也试过了所有的预设

AVCaptureSessionPresetPhoto, 
AVCaptureSessionPresetHigh, 
AVCaptureSessionPresetMedium, 
AVCaptureSessionPresetLow, 
AVCaptureSessionPreset352x288, 
AVCaptureSessionPreset640x480, 
AVCaptureSessionPreset1280x720, 
AVCaptureSessionPreset1920x1080, 
AVCaptureSessionPresetiFrame960x540, 
AVCaptureSessionPresetiFrame1280x720, 
Run Code Online (Sandbox Code Playgroud)

但是静止图像质量较差.如果我的问题不够明确或者我错过了什么,请告诉我.

iphone camera objective-c avcapturesession ios5

15
推荐指数
3
解决办法
1万
查看次数

视频swift中的图像/文本叠加

我使用swift工作图像叠加在视频中的水印效果.我正在使用AVFoundation这个,但不知怎的,我没有成功.

以下是我的叠加图像/文字代码

    let path = NSBundle.mainBundle().pathForResource("sample_movie", ofType:"mp4")
    let fileURL = NSURL(fileURLWithPath: path!)

    let composition = AVMutableComposition()
    var vidAsset = AVURLAsset(URL: fileURL, options: nil)

    // get video track
    let vtrack =  vidAsset.tracksWithMediaType(AVMediaTypeVideo)
    let videoTrack:AVAssetTrack = vtrack[0] as! AVAssetTrack
    let vid_duration = videoTrack.timeRange.duration
    let vid_timerange = CMTimeRangeMake(kCMTimeZero, vidAsset.duration)

    var error: NSError?
    let compositionvideoTrack:AVMutableCompositionTrack = composition.addMutableTrackWithMediaType(AVMediaTypeVideo, preferredTrackID: CMPersistentTrackID())
    compositionvideoTrack.insertTimeRange(vid_timerange, ofTrack: videoTrack, atTime: kCMTimeZero, error: &error)

    compositionvideoTrack.preferredTransform = videoTrack.preferredTransform

    // Watermark Effect
    let size = videoTrack.naturalSize

    let imglogo = UIImage(named: "image.png")
    let …
Run Code Online (Sandbox Code Playgroud)

avfoundation ios swift

11
推荐指数
1
解决办法
8570
查看次数

录制视频时如何以编程方式拍照

iPhone 5S能够在录制视频的同时拍照,我正在尝试弄清楚如何以编程方式进行此操作。我知道我将使用AVFoundation,但是,我在编程指南中找不到与此相关的任何内容。我还检查了示例项目(与AVFoundation相关),看起来好像没有什么可以满足我的需求。如果您能帮助我指出正确的方向,那将很好。

iphone objective-c avfoundation ios7

4
推荐指数
1
解决办法
2094
查看次数