Tag: avfoundation

如何loggingvideo并保持音乐在后台播放?

对不起,如果这是重复的,但我找不到类似这样的问题。 我有一个自定义的AVFoundation制作的摄像机/录像机,我想知道如何在录制video的时候保持audio从其他应用程序运行,因为现在它会停止audio(甚至不会暂停),然后录制video 如果我正确思考,可以通过添加类似的东西来解决这个问题: [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryAmbient error:nil];

iOS 5:将3个video与AVAssetExportSession合并时出错

我试图合并(附加)使用AVAssetExportSession 3video,但我不断收到此错误。 奇怪的是1或2个video的工作。 Error Domain=AVFoundationErrorDomain Code=-11820 "Cannot Complete Export" UserInfo=0x458120 {NSLocalizedRecoverySuggestion=Try exporting again., NSLocalizedDescription=Cannot Complete Export} 我什至试图重做function的情况下,但我得到的只是无限的错误信息。 这是我的代码片段。 AVMutableComposition *mixComposition = [AVMutableComposition composition]; AVMutableCompositionTrack *compositionTrack = [mixComposition addMutableTrackWithMediaType:AVMediaTypeVideo preferredTrackID:kCMPersistentTrackID_Invalid]; NSError * error = nil; NSMutableArray * timeRanges = [NSMutableArray arrayWithCapacity:arrayMovieUrl.count]; NSMutableArray * tracks = [NSMutableArray arrayWithCapacity:arrayMovieUrl.count]; for (int i=0; i<[arrayMovieUrl count]; i++) { AVURLAsset *assetClip […]

使用AVMutableComposition编写video和audio

我有一个奇怪的问题。 在我的应用程序中,我使用下面的代码组合了多个audio和video文件。 结果video似乎工作正常,一旦我将它从设备下载到计算机和快速时间播放,但每当我试图播放使用UIWebView或AVPLayer新组成的video,我只能看到合并video文件的第一部分。 此外,当我试图使用MPMoviePlayerController播放它挂在“加载”。 我可以听到所有作品的audio。 为了说清楚我有两个数组:1-audiopath与audio文件[歌曲1,歌曲2,歌曲3]的path; 2-电影与video文件path[电影1,电影2,电影3]; 合并这些文件后,我只能看到movie1,但是我可以听到song1 + song2 + song3。 PS歌曲和电影有不同的长度(小于0.2s的差异)。 任何帮助将不胜感激。 先谢谢你,Janusz -(void)putFilesTogether{ AVMutableComposition *mixComposition = [AVMutableComposition composition]; AVMutableCompositionTrack *videoCompositionTrack =[[AVMutableCompositionTrack alloc]init]; AVMutableCompositionTrack *audioCompositionTrack =[[AVMutableCompositionTrack alloc]init]; NSLog(@" movie %@ audio %@ ", moviePieces, audioPieces); NSError * error; for(int i=0;i<moviePieces.count;i++) { NSFileManager * fm = [NSFileManager defaultManager]; NSString * movieFilePath; NSString * audioFilePath; […]

在iOS中使用AVFoundation暂停和恢复同一个文件的video截图

我试图找出如何实现function,以重复暂停和恢复video捕获在一个单一的会议,但有AVFoundation每个新的细分(每个暂停后捕获的细分)添加到相同的video文件。 目前,我每次按“停止”,然后“logging”,它只是一个新的video文件保存到我的iPhone的相册,并开始捕获到一个单独的/新的文件。 我需要能够反复按下“录制/停止”button…只有在录制活动时捕获video和audio…然后当“完成”button被按下时,有一个单一的AV文件,所有的细分在一起。 所有这些都需要在同一个捕获会话/预览会话中进行。 我能想到的唯一办法就是尝试这个,当按下“完成”button时,将每个单独的输出文件合并成一个单独的文件…但我很确定处理时间基本上粘贴了一堆单独的剪辑在一起将不被接受。 另外,这似乎是一个非常混乱和不必要的方式去做这个,用太多的代码。 有没有简单的方法来暂停一个会话中的video捕捉,只是简单地恢复捕获到同一个文件? 还是有其他的想法? 如果没有太多的麻烦,示例代码可以帮助我解决问题…我仍然在学习和教导自己,所以我不擅长遵循术语和术语来解释。 谢谢 编辑:这是我开始学习AVFoundation的项目…所以这是我想要改变以实现上述function的代码: http : //developer.apple.com/library/ios/#samplecode/AVCam /Introduction/Intro.html

AVCaptureVideoPreviewLayer横向

如何获得“AVCaptureVideoPreviewLayer”以横向显示正确显示? 它在纵向上工作正常,但不旋转,并且在父视图控制器处于横向方向时显示旋转的相机捕捉。

m3u8文件AVAssetImageGenerator错误

我正在使用AVPlayer播放.m3u8文件。 使用AVAssetImageGenerator使用以下代码从中提取图像: AVURLAsset *asset1 = [[AVURLAsset alloc] initWithURL:mp.contentURL options:nil]; AVAssetImageGenerator *generate1 = [[AVAssetImageGenerator alloc] initWithAsset:asset1]; generate1.appliesPreferredTrackTransform = YES; NSError *err = NULL; CMTime time = CMTimeMake(1, 2); CGImageRef oneRef = [generate1 copyCGImageAtTime:time actualTime:NULL error:&err]; img = [[UIImage alloc] initWithCGImage:oneRef]; 它总是给我错误: 错误域= AVFoundationErrorDomain代码= -11800“操作无法完成”UserInfo = 0x7fb4e30cbfa0 {NSUnderlyingError = 0x7fb4e0e28530“操作无法完成(OSStatus错误-12782。)”,NSLocalizedFailureReason =发生未知错误(-12782 ),NSLocalizedDescription =操作无法完成} 它适用于mp4,mov和所有主要的video扩展URL,但不适用于m3u8。 任何想法??

如何检查分辨率,在iOS的video比特率

我正在开发video压缩function, 我的想法如下: 获得video的分辨率和比特率。 检查video的分辨率。 如果它大于640×480,我会将这个video压缩一半,并将比特率调整为1/4。 例如,如果video的分辨率是1920×1080,它将被压缩到960×540,在4mbps的1920×1080将被压缩到1mbps的960×540。 我有几个问题: 如何在iOS中获得video的分辨率和比特率? 如果把1920×1080压缩到960×540,比特率也会自适应调整,还是需要手动设置比特率? 怎么可能呢? 我试着下面的代码来压缩video,但我不知道它压缩到哪个分辨率: – (void)convertVideoToLowQuailtyWithInputURL:(NSURL*)inputURL outputURL:(NSURL*)outputURL handler:(void (^)(AVAssetExportSession*))handler { [[NSFileManager defaultManager] removeItemAtURL:outputURL error:nil]; AVURLAsset *urlAsset = [AVURLAsset URLAssetWithURL:inputURL options:nil]; AVAssetExportSession *session = [[AVAssetExportSession alloc] initWithAsset: urlAsset presetName:AVAssetExportPresetLowQuality]; session.outputURL = outputURL; session.outputFileType = AVFileTypeQuickTimeMovie; [session exportAsynchronouslyWithCompletionHandler:^(void) { handler(session); }]; } 请给我一些build议。 提前致谢。

如何将video从应用程序文档目录移动到相机胶卷?

你好, 我已经find了一些在networking上的iPhone相机video保存avfoundation代码示例(也试图编写我自己的代码,但尚未完成) 这样的例子处理,并保存video(通过AVAssetWriter)从相机捕获input到文件位于文件目录(我认为是唯一的select?) 但现在 – 我甚至不能在这样的目录中看到文件来检查我的video是否存在; 我想我应该把这样的video文件“相机胶卷”,如何做到这一点? TNX

如何在iOS中使用AVFoundation压缩video

iPhone中是否有任何压缩技术来使用AVfoundation来压缩video。 或任何开源。 问候,Jeeva

AVAssetWritter不适用于audio

我试图让audio与iOS应用程序的video一起工作。 video很好。 没有audiologging到文件(我的iPhone扬声器工作。) 这里是init的设置: session = [[AVCaptureSession alloc] init]; menu->session = session; menu_open = NO; session.sessionPreset = AVCaptureSessionPresetMedium; camera = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo]; microphone = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeAudio]; menu->camera = camera; [session beginConfiguration]; [camera lockForConfiguration:nil]; if([camera isExposureModeSupported:AVCaptureExposureModeContinuousAutoExposure]){ camera.exposureMode = AVCaptureExposureModeContinuousAutoExposure; } if([camera isFocusModeSupported:AVCaptureFocusModeContinuousAutoFocus]){ camera.focusMode = AVCaptureFocusModeContinuousAutoFocus; } if([camera isWhiteBalanceModeSupported:AVCaptureWhiteBalanceModeContinuousAutoWhiteBalance]){ camera.whiteBalanceMode = AVCaptureWhiteBalanceModeContinuousAutoWhiteBalance; } if ([camera hasTorch]) { […]