swift WebRTC 屏幕录制帧率低

我的帧率低是因为时间戳设置为1s了,需要手动设置一下偏移量

    // MARK: 屏幕共享
    func startSharingScreen(renderer: RTCVideoRenderer) {
        guard let videoSource = screenCapture else {
            return
        }
        var tempTimeCount = 0
        let recoder = RPScreenRecorder.shared()
        recoder.startCapture { (buffer, type, error) in
            switch (type){
            case .video:
                let pixelBuffer:CVPixelBuffer = CMSampleBufferGetImageBuffer(buffer)!
                let rtcPixelBuffer = RTCCVPixelBuffer(pixelBuffer: pixelBuffer)
                let timeStampNs = UInt64(CMTimeGetSeconds(CMSampleBufferGetPresentationTimeStamp(buffer)) + Double(tempTimeCount)) * NSEC_PER_SEC
                let videoFrame = RTCVideoFrame(buffer: rtcPixelBuffer, rotation: ._0, timeStampNs: Int64(timeStampNs))
                videoSource.capturer(self.videoCapturer!, didCapture: videoFrame)
                tempTimeCount += 1
                //print(timeStampNs)
                break
            case .audioApp:
                break
            case .audioMic:
                break
            @unknown default:
                break
            }
        } completionHandler: { (error) in
            if (error != nil){
                print("startSceenCapture completionHandler 出错\(error!)")
            }
        }
        
        self.localVideoTrack?.add(renderer)
    }
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容