iOS中的方式視頻輸出方式是AVFoundation
嗎?iOS中的方形視頻輸出
我使用OpenGL處理視頻的每個幀(CMSampleBuffer
)。每幀
被旋轉,所以我需要裁剪和旋轉CMSampleBuffer
。但我不知道該怎麼做,所以我相信有一種方法可以通過在AVCaptureVideoDataOutput
中設置屬性(videoSettings
)來獲得已裁剪和旋轉的幀。
我用Google搜索了一下,用google搜索了一下,但什麼都沒發現。 swift中的代碼示例非常棒。
更新:斯威夫特
我充滿最終的解決方案:
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
captureSession = AVCaptureSession()
captureSession!.sessionPreset = AVCaptureSessionPreset640x480
let backCamera = AVCaptureDevice.defaultDeviceWithMediaType(AVMediaTypeVideo)
var error: NSError?
var input: AVCaptureDeviceInput!
do {
input = try AVCaptureDeviceInput(device: backCamera)
} catch let error1 as NSError {
error = error1
input = nil
}
if error == nil && captureSession!.canAddInput(input) {
captureSession!.addInput(input)
stillImageOutput = AVCaptureStillImageOutput()
stillImageOutput!.outputSettings = [AVVideoCodecKey: AVVideoCodecJPEG, kCVPixelBufferPixelFormatTypeKey: Int(kCVPixelFormatType_32BGRA)]
if captureSession!.canAddOutput(stillImageOutput) {
captureSession!.addOutput(stillImageOutput)
}
}
videoOutput = AVCaptureVideoDataOutput()
videoOutput!.videoSettings = [kCVPixelBufferPixelFormatTypeKey: Int(kCVPixelFormatType_32BGRA), AVVideoWidthKey : 100, AVVideoHeightKey: 100]
videoOutput!.setSampleBufferDelegate(self, queue: dispatch_queue_create("sample buffer delegate", DISPATCH_QUEUE_SERIAL))
if captureSession!.canAddOutput(self.videoOutput) {
captureSession!.addOutput(self.videoOutput)
}
videoOutput!.connectionWithMediaType(AVMediaTypeVideo).videoOrientation = AVCaptureVideoOrientation.PortraitUpsideDown
videoOutput!.connectionWithMediaType(AVMediaTypeVideo).videoMirrored = true
captureSession!.startRunning();
}
它的鏡像和完美的我旋轉視頻輸出!但它不是裁剪!
非常感謝你,它完美無缺! – vkalit
你能告訴我,我該如何快速裁剪實時視頻?不是作家。 – vkalit
嗨鑄造,你有消息的方式嗎?我有一些問題需要了解opencv等。與你交談會很愉快 –