草庐IT

AVfoundation

全部标签

ios - 更改 AVCaptureDeviceInput 导致 AVAssetWriterStatusFailed

我正在尝试更改相机ViewFront和Back。它运行良好。如果录制视频时没有使用Pause/Record翻转>选项工作正常。但是如果我们FlipCameraView一次,则不会保存进一步录制的视频,这会导致AVAssetWriterStatusFailed-操作无法完成。谁能帮我找到我哪里出错了?下面是我的代码。相机.m-(void)flipCamera{NSArray*inputs=_session.inputs;for(AVCaptureDeviceInput*INPUTininputs){AVCaptureDevice*Device=INPUT.device;if([Devic

ios - 将 CIFilter 与 AVFoundation (iOS) 一起使用

我正在尝试将滤镜应用于在iOS上使用AVFoundation创建的视频合成(滤镜可以是模糊、像素化、棕褐色等)。我需要实时应用效果并能够将复合视频渲染到磁盘,但我很乐意从其中之一开始。不幸的是,我似乎无法弄清楚这一点。这是我能做的:我可以为正在播放电影的UIView添加一个动画层,但我不清楚我是否可以通过这种方式处理传入的视频图像。我可以将一组CIFilter添加到AVPlayerLayer,但事实证明这些在iOS中被忽略了(它只适用于MacOSX)。我可以将AVVideoCompositionCoreAnimationTool添加到AVVideoComposition,但我不确定这是

ios - 在 AVPlayer 中使用糟糕的互联网播放流

当AVPlayer播放来自网络流的Assets时,它会在下载内容结束时暂停。所以,我的问题是,如何知道它是因为网络不好而停止的?下载后如何播放它,比方说,接下来的10秒Assets? 最佳答案 您可以在AVPlayer获得空缓冲区时添加一个观察者:[[self.tracksPlayercurrentItem]addObserver:selfforKeyPath:@"playbackBufferEmpty"options:NSKeyValueObservingOptionNewcontext:nil];还有一个观察者,这样您就可以知道

ios - 确定核心音频 AudioBuffer 中的帧数

我正在尝试访问iPhone/iPad上音频文件的原始数据。我有以下代码,这是我需要的路径的基本开始。然而,一旦我有了AudioBuffer,我就不知道该怎么做。AVAssetReader*assetReader=[AVAssetReaderassetReaderWithAsset:urlAsseterror:nil];AVAssetReaderTrackOutput*assetReaderOutput=[AVAssetReaderTrackOutputassetReaderTrackOutputWithTrack:[[urlAssettracks]objectAtIndex:0]out

iphone - CGBitmapContextCreateImage 错误

我在我的控制台中收到这样的错误::CGBitmapContextCreate:无效数据字节/行:对于8个整数位/分量、3个分量、kCGImageAlphaPremultipliedFirst,应该至少为1920。:CGBitmapContextCreateImage:无效上下文0x0我使用下面的代码:-(UIImage*)imageFromSampleBuffer:(CMSampleBufferRef)sampleBuffer{//GetaCMSampleBuffer'sCoreVideoimagebufferforthemediadataCVImageBufferRefimageBu

ios - AVAssetImageGenerator 有时会从 2 个连续帧返回相同的图像

我目前正在使用AVAssetImageGenerator从视频中提取每一帧,但有时它会连续两次返回几乎相同的图像(它们没有相同的“帧时间”)。有趣的是它总是每5帧发生一次(在我的测试视频中)。Here和here是两个图像(在新选项卡中打开每个图像,然后切换选项卡以查看差异)。这是我的代码://settingupgenerator&compositorself.generator=[AVAssetImageGeneratorassetImageGeneratorWithAsset:asset];generator.appliesPreferredTrackTransform=YES;se

iphone - 将 CVImageBufferRef 转换为 CVPixelBufferRef

我是iOS编程和多媒体的新手,我正在研究一个名为RosyWriter的示例项目,该项目由apple在thislink提供。.在这里,我看到在代码中有一个名为captureOutput:didOutputSampleBuffer:fromConnection的函数,如下所示:-(void)captureOutput:(AVCaptureOutput*)captureOutputdidOutputSampleBuffer:(CMSampleBufferRef)sampleBufferfromConnection:(AVCaptureConnection*)connection{CMForm

ios - AVFoundation AVMutableComposition - 带音频的视频 - 卡住视频

我有一个录制的有声视频。将其添加到AVMutableComposition然后将其导出时,视频将在播放声音时卡住。我错过了什么?我有两条路线:_compositionVideoTrack=[self.compositionaddMutableTrackWithMediaType:AVMediaTypeVideopreferredTrackID:kCMPersistentTrackID_Invalid];_compositionAudioTrack=[self.compositionaddMutableTrackWithMediaType:AVMediaTypeAudiopreferre

ios - 在 iOS 上显示 CVImageBufferRef 的最有效方法是什么

我有CMSampleBufferRef(s),我使用VTDecompressionSessionDecodeFrame对其进行解码,这会在帧解码完成后生成CVImageBufferRef,所以我的问题是..在UIView中显示这些CVImageBufferRefs的最有效方式是什么?我已经成功地将CVImageBufferRef转换为CGImageRef并通过将CGImageRef设置为CALayer的内容来显示它们,但是DecompressionSession已配置为@{(id)kCVPixelBufferPixelFormatTypeKey:[NSNumbernumberWithI

iphone - 如何在拍摄照片的那一刻暂停视频?

我正在使用AVFoundation通过AVCaptureVideoPreviewOverlay在我的UIView中显示视频。然后,我使用AVStillImageOutput的-captureStillImageAsynchronouslyFromConnection:从带有AVCaptureSessionPresetPhoto预设的视频中捕获静止图像。我在前面提到的-captureStillImageAsynchronouslyFromConnection完成block中使用AVCaptureSession的-stopRunning来卡住视频。然而,为时已晚,视频在拍摄静止图像时继续播