还未完善,录制合成视频、音频有掉帧的情况
This commit is contained in:
parent
c67eecd78d
commit
9186712d4f
Binary file not shown.
@ -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>
|
||||||
|
|||||||
@ -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?//测试使用
|
||||||
|
|||||||
@ -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 {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user