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

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"> landmarkType = "7">
</BreakpointContent> </BreakpointContent>
</BreakpointProxy> </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> </Breakpoints>
</Bucket> </Bucket>

View File

@ -31,7 +31,7 @@ import CoreMotion
class CCSpatialShootController: BaseController { 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" let kNowTimeToUserDefaultKey_SpatialShootController:String = "kNowTimeToUserDefaultKey_SpatialShootController"
var wideAngleCameraDevice:AVCaptureDevice?//使 var wideAngleCameraDevice:AVCaptureDevice?//使

View File

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