Ich habe es geschafft, Code zu schreiben, der die Kamera öffnet und das Video in der Vorschau anzeigt. Ich möchte nun die Rahmen von dem Ausgang erfassen ideal als H.264 codiert an einen Server sendenAusgabe von AVCaptureSession in Swift zum Senden an den Server
Hier ist, was ich habe:
import UIKit
import AVFoundation
class ViewController: UIViewController {
let captureSession = AVCaptureSession()
var previewLayer : AVCaptureVideoPreviewLayer?
// If we find a device we'll store it here for later use
var captureDevice : AVCaptureDevice?
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
captureSession.sessionPreset = AVCaptureSessionPresetHigh
let devices = AVCaptureDevice.devices()
// Loop through all the capture devices on this phone
for device in devices {
// Make sure this particular device supports video
if (device.hasMediaType(AVMediaTypeVideo)) {
// Finally check the position and confirm we've got the back camera
if(device.position == AVCaptureDevicePosition.Back) {
captureDevice = device as? AVCaptureDevice
if captureDevice != nil {
println("Capture device found")
beginSession()
}
}
}
}
}
func beginSession() {
var err : NSError? = nil
captureSession.addInput(AVCaptureDeviceInput(device: captureDevice, error: &err))
if err != nil {
println("error: \(err?.localizedDescription)")
}
previewLayer = AVCaptureVideoPreviewLayer(session: captureSession)
self.view.layer.addSublayer(previewLayer)
previewLayer?.frame = self.view.layer.frame
captureSession.startRunning()
}
}
Das Öffnen der Kamera erfolgreich, und ich kann das Material eine Vorschau .
Ich habe diesen Objective-C-Code gefunden, der aussieht, als ob er die Ausgabe bekommt, aber ich weiß nicht, wie man ihn in swift umwandelt. Es verwendet AVCaptureVideoDataOutput, AVAssetWriter, AVAssetWriterInput und AVAssetWriterInputPixelBufferAdaptor, um Frames in eine H.264-codierte Filmdatei zu schreiben.
Can use AVCaptureVideoDataOutput and AVCaptureMovieFileOutput at the same time?
Kann jemand helfen, konvertieren oder geben Sie mir Hinweise, wie aus meinem aktuellen Code um den Rahmen zu bekommen?
Die Dokumentation für diese Art von Dingen fehlt für die schnelle. Es ist ziemlich frustrierend. –
Haben Sie eine Lösung gefunden? –
versuchen Sie, Code aus [Kann AVCaptureVideoDataOutput und AVCaptureMovieFileOutput gleichzeitig zu konvertieren?] (Http://stackoverflow.com/questions/4944083/can-use-avcapturevideodataoutput-and-avcapturemoviefileoutput-the-same-time)) zu schnell? –