Udało mi się napisać kod otwierający kamerę i wyświetlający podgląd wideo. Teraz chcę uchwycić ramki z wyjścia wysłać do serwera idealnie zakodowany jako H.264Uzyskaj dane wyjściowe z AVCaptureSession w Swift, aby wysłać je na serwer
Oto co mam:
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()
}
}
Ten otwarty aparat pomyślnie i mogę obejrzeć nagranie .
Znalazłem ten kod Celu C, który wygląda tak, jakby otrzymywał wynik, ale nie wiem, jak przekonwertować go na szybki. Używa AVCaptureVideoDataOutput, AVAssetWriter, AVAssetWriterInput i AVAssetWriterInputPixelBufferAdaptor do zapisywania klatek do pliku filmowego zakodowanego w H.264.
Can use AVCaptureVideoDataOutput and AVCaptureMovieFileOutput at the same time?
Czy ktoś może pomóc przekształcić ją lub dać mi wskazówki, jak dostać się do klatki z mojego aktualnego kodu?
Brakuje dokumentacji dla tego typu rzeczy. To dość frustrujące. –
Czy znalazłeś rozwiązanie? –
Czy próbujesz przekonwertować kod z [Można użyć AVCaptureVideoDataOutput i AVCaptureMovieFileOutput w tym samym czasie?] (Http://stackoverflow.com/questions/4944083/can-use-avcapturevideodataoutput-and-avcapturemoviefileoutput-at-the-same-time) na szybkie? –