我正在使用 VideoToolbox 框架从 AVCaptureSession 检索数据并将其编码为 h264 和 acc。
我正处于这样的地步:
- 使用委托方法获取数据
func captureOutput(_ captureOutput: AVCaptureOutput, didOutput sampleBuffer: CMSampleBuffer, from connection: AVCaptureConnection)
- 将视频转换
CMSampleBuffer
为h264 并将其编码CVImageBuffer
为 h264,使用VTCompressionSession
它传递编码的帧VTCompressionOutputCallback
- 将音频编码
CMSampleBuffer
为 acc 并将其作为UnsafeMutableAudioBufferListPointer
.
我现在被阻止了,我想将这些流正确转换为字节Data
以通过FileHandle
. 我该怎么办?
我需要在实际文件最终确定之前访问编码流,因此我不能使用(我认为)AVAssetWriter
将未编码的流保存到 mp4 文件,因为据我所知,我需要将未编码的样本传递AVAssetWriter
给它才能正常工作. 还是我弄错了?