草庐IT

avAssetWriter

全部标签

iphone - 如何使用 AVAssetReader 和 AVAssetWriter 来创建 AAC 文件?

各位!我正在处理一个应用程序。它可以录制音频文件并邮寄给其他人。音频文件保存为(.aac)文件。然后我想继续录制我已经保存为.aac文件的文件。所以我用了AVAssetReader和AVAssetWriter来实现它。但我失败了!以下是我的代码:AVMutableComposition*mixComposition=[AVMutableCompositioncomposition];NSURL*url=[NSURLfileURLWithPath:[DOCUMENTS_FOLDERstringByAppendingPathComponent:buttonTitle]];NSURL*ano

ios - 如何使用 AVAssetReader 和 AVAssetWriter 控制视频帧率?

我们正在尝试了解如何控制/指定我们使用AVAssetReader和AVAssetWriter编码的视频的帧速率。具体来说,我们正在使用AVAssetReader和AVAssetWriter来转码/编码/压缩我们从照片/视频库访问的视频。我们能够控制比特率、宽高比变化等,但无法弄清楚如何控制帧率。具体来说,我们希望能够将5分钟长的30FPS视频作为输入,并以15FPS的速度发出5分钟的视频。我们当前处理样本缓冲区的循环是:[writerstartWriting];[writerstartSessionAtSourceTime:kCMTimeZero];[videoReaderstartR

ios - 捕获 iPhone 游戏音频

我想捕捉来self的iPhone游戏的音频(音乐+音效)。AVCaptureSession似乎只有麦克风作为音频源。我想捕获音频,将其放入CMSampleBufferRef并将它们附加到AVAssetWriterInput。我目前正在研究音频队列。还有其他想法吗? 最佳答案 没有API可以直接从您的游戏中捕获所有音效和音乐。最常见的解决方案是让应用程序生成所有声音两次,一次用于音频输出,再加上PCM样本中的第二个相同副本以馈送到DSP或音频单元混音器。然后将混合器输出提供给AVAssetWriter或其他文件输出。如果您的应用程序产

objective-c - AVFoundation 录制用于网络播放的视频——必须在播放开始前下载整个文件

我有一个iPad应用程序可以录制视频并使用AVFoundation将其发送到我的SaaS应用程序。然后我的Web应用程序读取该文件,并使用JWPlayer播放它。我遇到的问题是JWPlayer(或我试过的任何播放器)必须先下载整个视频文件才能播放。看了一些资料后,我发现从IOS录制的视频没有启用“从互联网快速启动”。或者类似的东西。我正在使用AVFoundation。是否有不同的方法来保存视频,以便它可以立即从我的网络服务器流式传输?我错过了什么。 最佳答案 shouldOptimizeForNetworkUseAVWriter上的

ios - 如何使用 AVAssetWriter 保留视频的纵横比

我有以下代码,它从相机捕获视频并使用AVAssetWriter将其存储为QuickMovie文件。它工作正常,但纵横比并不完美,因为宽度和高度在AVAssetWriterInput的outputSettings中被硬编码(480x320)。我宁愿找出源视频的纵横比,并指定合适的高度(480x纵横比)。有人知道怎么做吗?我应该将AssetWriterInput的创建推迟到第一个sampleBuffer吗?//setthesessionPresetto'medium'self.captureSession=[[AVCaptureSessionalloc]init];self.capture

objective-c - 从 CIImage 创建 CVPixelBufferRef 以写入文件

我正在编写自定义电影录制应用程序,并实现了AVAssetWriter和AVAssetWriterInputPixelBufferAdaptor以将帧写入文件。在DataOutputDelegate回调中,我试图将CIFilter应用于sampleBuffer。首先我得到一个CVPixelBufferRef,然后创建一个CIImage。然后我应用CIIFilter并获取生成的CIImage:CVPixelBufferRefpixelBuffer=(CVPixelBufferRef)CMSampleBufferGetImageBuffer(sampleBuffer);CIImage*ima

ios - AVAssetWriter 编解码器类型 hevc

我尝试使用AVAssetWriter将H264视频转码为HEVC,但在iPhone6s上失败了。据推测,iPhone6s支持HEVC进行转码,而不是实时视频编码。相同的代码适用于iPhone7及更高版本。如果iPhone6s不支持HEVC编解码器,我们如何在运行时以编程方式确定支持的编解码器?letbitrate=trackBitrate/5lettrackDimensions=trackSizeletcompressionSettings:[String:Any]=[AVVideoAverageBitRateKey:bitrate,AVVideoMaxKeyFrameInterval

iphone - 是否可以将 AVAssetWriter 路由到 iOS4 中的网络流?

AVAssetWriter将文件URL作为参数并将附加到其AVAssetWriterInput的缓冲区写入该文件。AVAssetWriter*assetWriter=[[AVAssetWriteralloc]initWithURL:[NSURLURLWithString:@"...fileURL..."]fileType:AVFileTypeMPEG4error:&error];如果指定了网络URL(即RTSP-需要实时流媒体源的服务器),则会抛出异常,因为需要基于文件的URL。是否有另一种访问Assets编写器输出的方法?我想利用集成的H.264编码并逐位访问编码数据以通过网络流式传

ios - AVAssetWriter::append() 返回 false,没有额外信息(How to do segmenting of captured input to video-chunks with AVFoundation?)

我正在构建一个使用AVFoundation录制视频和音频的功能。我会录制几个小时,但我想将block上传到我们的后端,以便我们可以构建一个实时HLS播放列表(在对片段进行som处理之后)。首先,某处是否有样本在执行此操作?我还没有找到任何引用实现可以这么说......这是我的看法:按照网络上的文档和示例设置AVCaptureSession非常简单。我实现了AVCaptureVideoDataOutputSampleBufferDelegate和AVCaptureAudioDataOutputSampleBufferDelegate以访问样本缓冲区我有两个AVAssetWriter并在它

ios - 使用 AVAssetWriter 重新编码 H264 mov 文件 - 如何设置帧率?

我正在尝试在iOS中重新编码具有可变帧速率和剪裁持续时间的输入MOV文件。目前我有一个AVAssetWriter设置视频属性有点像这样:NSMutableDictionary*compressionPropertiesDict=[NSMutableDictionarynew];compressionPropertiesDict[AVVideoProfileLevelKey]=AVVideoProfileLevelH264High40;if(self.fps>0){compressionPropertiesDict[AVVideoAverageNonDroppableFrameRateK