From 2d3a61b5438415c7338d1a6c6ae1ead4aa5864f0 Mon Sep 17 00:00:00 2001 From: bluesea <307723040@qq.com> Date: Mon, 11 Mar 2024 16:18:43 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=85=A8=E5=AE=9E=E7=8E=B0=E9=9F=B3?= =?UTF-8?q?=E9=A2=91=E6=AD=A3=E5=B8=B8=E5=90=88=E5=B9=B6=E8=BF=9B=E5=85=A5?= =?UTF-8?q?=E8=A7=86=E9=A2=91=EF=BC=8C=E5=85=B3=E9=94=AE=E7=82=B9=E5=9C=A8?= =?UTF-8?q?=E4=BA=8EisRealTime=E9=9C=80=E8=A6=81=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E4=B8=BAtrue?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../VRVideoTransformController.swift | 2 +- .../Project/Util/SpatialVideoConvertor.swift | 14 +++++++------- .../SwiftProject/Project/Util/VideoWriter.swift | 12 ++++-------- 3 files changed, 12 insertions(+), 16 deletions(-) diff --git a/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/VRVideoTransformController.swift b/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/VRVideoTransformController.swift index d1bc200..eb1a4ee 100644 --- a/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/VRVideoTransformController.swift +++ b/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/VRVideoTransformController.swift @@ -592,7 +592,7 @@ extension VRVideoTransformController { print(progress) // DispatchQueue.main.async { [weak self] in if(progress > 0.99){ - DispatchQueue.main.asyncAfter(deadline: .now() + 2) { + DispatchQueue.main.asyncAfter(deadline: .now() + 20) { // 要执行的任务 self.exportVideo(url: outputVideoURL, outputURL: outputURL, width: width, height: height,codecType:codecType, dataRate: dataRate, horizontalDisparity: horizontalDisparity, horizontalFieldOfView: horizontalFieldOfView) { exportedAsset in DispatchQueue.main.async { diff --git a/SwiftProject/SwiftProject/Project/Util/SpatialVideoConvertor.swift b/SwiftProject/SwiftProject/Project/Util/SpatialVideoConvertor.swift index 803f177..44056fd 100644 --- a/SwiftProject/SwiftProject/Project/Util/SpatialVideoConvertor.swift +++ b/SwiftProject/SwiftProject/Project/Util/SpatialVideoConvertor.swift @@ -161,8 +161,8 @@ class SpatialVideoConvertor { let time = CMSampleBufferGetOutputPresentationTimeStamp(nextSampleBuffer) if vw == nil { - vw = VideoWriter(url: outputFile, width: Int(cwidth), height: Int(cheight), orientation: orientation, sessionStartTime: CMTime(value: 1, timescale: 30 ), isRealTime: false, queue: .main) -// vw = VideoWriter(url: outputFile, width: Int(cwidth), height: Int(cheight), orientation: orientation, sessionStartTime: CMTimeMake(value: 0, timescale: 1), isRealTime: false, queue: .main) +// vw = VideoWriter(url: outputFile, width: Int(cwidth), height: Int(cheight), orientation: orientation, sessionStartTime: CMTime(value: 1, timescale: 30 ), isRealTime: true, queue: .main) + vw = VideoWriter(url: outputFile, width: Int(cwidth), height: Int(cheight), orientation: orientation, sessionStartTime: CMTimeMake(value: 0, timescale: 1), isRealTime: true, queue: .main) } _ = vw!.add(image: newpb!, presentationTime: time) print( "Added frame at \(time)") @@ -176,17 +176,17 @@ class SpatialVideoConvertor { } -// let vw2 = vw! -// await vw!.addAudio(assetTrackOutput: output_audio){ -// _ = try! await vw2.finish() -// } + let vw2 = vw! + await vw!.addAudio(assetTrackOutput: output_audio){ + _ = try! await vw2.finish() + } print( "status - \(assetReader.status)") print( "status - \(assetReader.error?.localizedDescription ?? "None")") print( "Finished") - _ = try await vw!.finish() +// _ = try await vw!.finish() } diff --git a/SwiftProject/SwiftProject/Project/Util/VideoWriter.swift b/SwiftProject/SwiftProject/Project/Util/VideoWriter.swift index 6888a47..961b587 100644 --- a/SwiftProject/SwiftProject/Project/Util/VideoWriter.swift +++ b/SwiftProject/SwiftProject/Project/Util/VideoWriter.swift @@ -56,10 +56,10 @@ class VideoWriter { // 创建音频输入 // let outputSettings_Audio:[String:Any] = [ -// AVFormatIDKey:kAudioFormatLinearPCM, -// AVLinearPCMIsBigEndianKey:false, -// AVLinearPCMIsFloatKey:false, -// AVLinearPCMBitDepthKey:16, +// AVNumberOfChannelsKey: 2, +// AVSampleRateKey: 44100, +// AVFormatIDKey:kAudioFormatMPEG4AAC, +// AVEncoderAudioQualityKey: AVAudioQuality.min.rawValue // ] let outputSettings_Audio = [ @@ -122,10 +122,7 @@ class VideoWriter { else { print("不是audio类型...") } - try! await Task.sleep(nanoseconds: 200_000_000) } - -// } print("audio读取完毕。。。。") await callback() print("audio func 执行完毕。。。。...") @@ -168,7 +165,6 @@ class VideoWriter { func finish() async throws -> AVAsset? { print("开始调用finish...") -// return nil writerInput_Audio.markAsFinished() writerInput.markAsFinished() print("VideoWriter: calling writer.finishWriting()")