Swift iPad - AVAssetWriter AVCapture 会话录制视频在 iPad iOS12.4 中几



我正在使用AVCaptureSession使用AVAssetWriter将视频录制到文件中,并且在iOS 13.+设备(iPhone或iPad(上一切正常。但它在iOS 12.4 iPad设备中不起作用,因为几秒钟后它的视频显示为绿屏(大多数时候它得到绿屏,但有时工作得很好(。

使用的配置如下:

AVAssetWriter - fileType : AVFileType.mp4

let formatDescription= format.formatDescription let dimensions = CMVideoFormatDescriptionGetDimensions(formatDescription(

iOS 12 设备中有问题。所以做出了改变。 var videoCodecKey: AVVideoCodecType = .h264 let compressionDictionary: [String : Any] = [AVVideoExpectSourceFrameRateKey: 25] if Common.isOSAtMinimum(majorVersion: 13, minorVersion: 0( { 视频编解码器密钥 = .hevc }

let outputSetups: [String : Any] = [        AVVideoCodecKey: videoCodecKey,
AVVideoScalingModeKey: AVVideoScalingModeResizeAspectFill,
AVVideoWidthKey: (dimensions.width),
AVVideoHeightKey: dimensions.height,
AVVideoCompressionPropertiesKey: compressionDictionary]
videoWriterInput = AVAssetWriterInput(mediaType: AVMediaType.video,outputSettings: outputSetups)
let audioSettings: [String : Any] = [         AVFormatIDKey : kAudioFormatMPEG4AAC,
AVNumberOfChannelsKey : 2,
AVSampleRateKey : 44100.0,
AVEncoderBitRateKey: 192000 ]
audioInput = AVAssetWriterInput(mediaType: AVMediaType.audio,
outputSettings: audioSettings)
audioInput?.expectsMediaDataInRealTime = true
if videoWriter?.canAdd(audioInput) ?? false {
videoWriter?.add(audioInput)
print("audio input added")
}
//Add Video
videoWriterInput?.expectsMediaDataInRealTime = true
if videoWriter?.canAdd(videoWriterInput) ?? false {
videoWriter?.add(videoWriterInput)
print("video input added")
} else { print("no input added") }
videoWriter?.startWriting()

请调查并告知发现的任何问题或需要更多信息。

当对这个问题进行更多工作时,它发现该问题与AVAssetWriter无关,在视频录制中,我们将图像嵌入到视频中。所以嵌入造成了这个问题

在本期中,我们将图像嵌入到输出数据中。该图像的大小与接收缓冲区图像大小相同,为此,我们发现了一个比例因子,有时它变得无穷大,这导致了问题。

最新更新