SceneKitVideoRecorder
Example
To run the example project, clone the repo, and run pod install
from the Example directory first.
Apps using SceneKitVideoRecorder
Send a PR to add your app here
Installation
SceneKitVideoRecorder is available through CocoaPods. To install it, simply add the following line to your Podfile:
pod 'SceneKitVideoRecorder'
To install Swift 4 branch add the following line to your Podfile:
pod 'SceneKitVideoRecorder', :git => 'https://github.com/svtek/SceneKitVideoRecorder.git', :branch => 'swift4'
Usage
Add NSMicrophoneUsageDescription
to info.plist
Add below code to your view controller
var recorder: SceneKitVideoRecorder?
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
if recorder == nil {
var options = SceneKitVideoRecorder.Options.default
let scale = UIScreen.main.nativeScale
let sceneSize = sceneView.bounds.size
options.videoSize = CGSize(width: sceneSize.width * scale, height: sceneSize.height * scale)
recorder = try! SceneKitVideoRecorder(withARSCNView: sceneView, options: options)
}
}
@IBAction func startRecording (sender: UIButton) {
self.recorder?.startWriting().onSuccess {
print("Recording Started")
}
}
@IBAction func stopRecording (sender: UIButton) {
self.recorder?.finishWriting().onSuccess { [weak self] url in
print("Recording Finished", url)
}
}
Performance tips
Here is a piece of Apple sample code
if let camera = sceneView.pointOfView?.camera {
camera.wantsHDR = true
camera.wantsExposureAdaptation = true
camera.exposureOffset = -1
camera.minimumExposure = -1
}
The line camera.wantsHDR = true
and camera.wantsExposureAdaptation = true
causes a huge drop in video recording performance. You should remove or disable it for video recording.
Author
Omer Karisman Product Manager @ MojiLaLa |
Sahin Boydas Co-Founder @ MojiLaLa |
---|
Inspired from
noppefoxwolf, [email protected]
License
SceneKitVideoRecorder is available under the MIT license. See the LICENSE file for more info.