还未完善,录制合成视频、音频有掉帧的情况

This commit is contained in:
bluesea 2024-05-27 09:32:30 +08:00
parent c67eecd78d
commit 9186712d4f
4 changed files with 20 additions and 3 deletions

View File

@ -585,5 +585,21 @@
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "55B7E93A-1F38-487B-8C95-0D9311B5F481"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "SwiftProject/Project/Util/SpatialVideoDataWriter.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "160"
endingLineNumber = "160"
landmarkName = "writeVideoData(leftSamplebuffer:rightSamplebuffer:audioSamplebuffer:)"
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
</Breakpoints>
</Bucket>

View File

@ -31,7 +31,7 @@ import CoreMotion
class CCSpatialShootController: BaseController {
let writeVideoQueuen = dispatch_queue_serial_t(label: "ccspatial writeVideoQueuen")//
let writeVideoQueuen = dispatch_queue_serial_t(label: "ccspatial writeVideoQueuen",qos: DispatchQoS.background)//
let kNowTimeToUserDefaultKey_SpatialShootController:String = "kNowTimeToUserDefaultKey_SpatialShootController"
var wideAngleCameraDevice:AVCaptureDevice?//使

View File

@ -106,6 +106,7 @@ class SpatialVideoDataWriter {
input_video = AVAssetWriterInput(mediaType: .video, outputSettings: videoSettings)
input_video.expectsMediaDataInRealTime = true
// input_video.transform = THTransformForDeviceOrientation(orientation)
adaptor_inputVideo = AVAssetWriterInputTaggedPixelBufferGroupAdaptor(assetWriterInput: input_video)
assetWriter.add(input_video)
@ -120,7 +121,7 @@ class SpatialVideoDataWriter {
print("assetWriter 添加writerInput_Audio_left失败...")
}
assetWriter.startWriting()
assetWriter.startSession(atSourceTime: .zero)
// assetWriter.startSession(atSourceTime: .zero)
}
catch {
@ -134,6 +135,7 @@ class SpatialVideoDataWriter {
input_video.markAsFinished()
assetWriter.finishWriting {
print("assetWriter.finishWriting 可以保存")
completion(true, nil)
}
haveStartedSession = false
@ -146,7 +148,6 @@ class SpatialVideoDataWriter {
//,
func writeVideoData(leftSamplebuffer:CMSampleBuffer,rightSamplebuffer:CMSampleBuffer,audioSamplebuffer:CMSampleBuffer) {
//
guard let leftCVPixelBuffer = CMSampleBufferGetImageBuffer(leftSamplebuffer) ,
let rightCVPixelBuffer = CMSampleBufferGetImageBuffer(rightSamplebuffer) else {