I\'m recording video and audio using AVCaptureVideoDataOutput and AVCaptureAudioDataOutput and in the captureOutput:didOutputSampleBuffer:fromCon
AVCaptureVideoDataOutput
AVCaptureAudioDataOutput
captureOutput:didOutputSampleBuffer:fromCon
You can also use CoreGraphics and CoreText to draw directly on top of the existing CVPixelBufferRef if it's RGBA (or on a copy if it's YUV). I have some sample code in this answer: https://stackoverflow.com/a/46524831/48125
CoreGraphics
CoreText
CVPixelBufferRef