Ich beziehe mich auf die AVScreenShack Beispiel. Ich habe sogar die Vorschau-Funktion los, um zu sehen, ob es verbessert. Aber das Frame-Skipping ist sehr gut sichtbar. Ich dachte, dass mein Computer nicht stark genug ist, aber als ich den QuickTime Player zum Aufzeichnen des Bildschirms verwendete, war das Video seidig glatt.Warum bekomme ich eine langsamere Bildrate während des Capturing Screen in OSX?
Wie kann ich den folgenden Code verbessern, um eine hohe fps-Ausgabe zu erhalten?
func startRecording(){
mSession = AVCaptureSession()
mSession?.sessionPreset = AVCaptureSessionPresetHigh
let displayId : CGDirectDisplayID = CGMainDisplayID()
let session : AVCaptureSession
if mSession != nil {
session = mSession!
}else{
return
}
let input : AVCaptureScreenInput = AVCaptureScreenInput(displayID: displayId)
input.minFrameDuration = CMTimeMake(1, 35)
if let rect = delegate?.cropRect() {
input.cropRect = rect
}
if session.canAddInput(input) {
session.addInput(input)
}else{
return
}
mMovieFileOutput = AVCaptureMovieFileOutput()
if session.canAddOutput(mMovieFileOutput) {
session.addOutput(mMovieFileOutput!)
}
mSession?.startRunning()
mMovieFileOutput?.movieFragmentInterval = kCMTimeInvalid
mMovieFileOutput?.startRecording(toOutputFileURL: URL(fileURLWithPath:"/Users/Tester/Desktop/capture.mov"), recordingDelegate: self)
}
Es ist glatter als zuvor, aber immer noch nervös. Das einzige, was ich nicht verstehe, ist, dass das menschliche Auge Frames überspringen kann, wenn die fps unter 24 gehen. Ich bin mir nicht sicher, was hier passiert. – Bavan
Bavan - nur FYI, das ist veraltet (ich erinnere mich, als ich ein Kind war). Diese Quelle sagt, dass die durchschnittliche Bevölkerung 45 FPS erkennen kann, 25%, die mehr als 60FPS sehen können und einige (ausgebildete Kampfpiloten), die über 220FPS erkennen können https://www.reddit.com/r/askscience/comments/1vy3qe/how_many_frames_per_second_can_the_eye_see /? st = iqbi33ce & sh = ea892b27 Einige Benutzer, Sie können eins sein, erkennen überspringende Bilder bei 60FPS. –