如何绘制CIImage
(或者可能CVPixelBuffer
是,但我想添加文本更容易CIImage
)?不是 UIImage
AVAssetWriter
我使用和CMSampleBuffer
(来自视频、音频输入)录制视频(.mp4 文件)。在录制时我想在视频帧上添加文本,我已经转换CMSampleBuffer
为CIImage
,现在我需要以某种方式添加文本CIImage
并转换回CVPixelBuffer
. 我真的没有在 Swift 中找到任何简单的示例,如何添加(绘制)文本CIImage
或添加任何其他内容(如线条、矩形,而不仅仅是文本)。
/// encode video buffer
func appendVideoSampleBuffer(_ sampleBuffer: CMSampleBuffer) {
// before encoding video frames into a file I would like process it
// 1. convert CMSampleBuffer to ciImage
let cvPixelBuffer: CVPixelBuffer = CMSampleBufferGetImageBuffer(sampleBuffer)!
let ciimage : CIImage = CIImage(cvPixelBuffer: cvPixelBuffer)
// 2. do something with CIImage
// 3. convert CIImage back to CMSampleBuffer
let sampleBufferWithText == ...
appendSampleBuffer(sampleBufferWithText, ofMediaType: AVMediaType.video.rawValue)
}
/// encode audio buffer
func appendAudioSampleBuffer(_ sampleBuffer: CMSampleBuffer) {
appendSampleBuffer(sampleBuffer, ofMediaType: AVMediaType.audio.rawValue)
}