• Stars
    star
    256
  • Rank 158,691 (Top 4 %)
  • Language
    Swift
  • License
    MIT License
  • Created about 7 years ago
  • Updated almost 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Record your SceneKit and ARKit scenes easily.

SceneKitVideoRecorder

SceneKitVideoRecorder

Version Downloads License Platform Build Status

Example

To run the example project, clone the repo, and run pod install from the Example directory first.

Apps using SceneKitVideoRecorder

Surreal AR Arrow

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
Twitter Dribble Github
Sahin Boydas

Co-Founder @ MojiLaLa
LinkedIn

Inspired from

noppefoxwolf, [email protected]

License

SceneKitVideoRecorder is available under the MIT license. See the LICENSE file for more info.

More Repositories

1

VideoThumbnailViewKit

Video Thumb ScrollView
Swift
359
star
2

Sendy-Docker

Dockerized sendy.co
PHP
203
star
3

leveros-phone-number-fixer

Leveros based phone number fixer
JavaScript
161
star
4

ARKitEnvironmentMapper

A library that allows you to generate and update environment maps in real-time using the camera feed and ARKit's tracking capabilities.
Swift
95
star
5

MacBookPrices

CSS
34
star
6

serverless-microsoft-teams-gitlab-connector

This is a serverless gitlab connector for microsoft teams
JavaScript
22
star
7

rails-graphql-generator

Generate GraphQL Types and Mutations For Rails Apps
Ruby
21
star
8

EasyFacebook

This library is deprecated. Facebook has improved their SDK drastically since then.
Objective-C
20
star
9

react-native-woopra

Promise based Woopra library for react-native
JavaScript
15
star
10

RecordButton

A record button with progress and start/stop animation and sound in Swift
Swift
14
star
11

serverless-in-app-purchase-validator

JavaScript
13
star
12

developers

Curated list of links to become a great software developer for non-us developers
9
star
13

itunes-sales-client

Fastlane sales and analytics client
Ruby
8
star
14

serverless-simple-sms

Java
8
star
15

desktime-reporting

Reports for Desktime App
C#
8
star
16

MonkeyinElectron

Tamper Monkey in Steroids works in Electron
JavaScript
8
star
17

gulp-revision

Customizable asset revisioner for gulp.
JavaScript
7
star
18

serverless-node-mailer

A lambda function to send emails by lambda invoke
JavaScript
7
star
19

http-proxy-for-local-development

Streamlining the development server urls
JavaScript
7
star
20

serverless-youtube-to-gif

Lambda serverless youtube to gif
7
star
21

elastic-search-json-api

6
star
22

LayeredConfigurator

TypeScript
6
star
23

rails-graphql-generator-demo

Rails GraphQL Generator Demo
Ruby
6
star
24

capistrano-azure

Ruby
6
star
25

smart-app-banner-for-download-app

CSS
6
star
26

deeplinking-mobile-browsers-to-native-app

5
star
27

HumbleAlertView

Temporary and unobtrusive translucent alert view for iOS
Swift
5
star
28

sidekiq-filters

5
star
29

gem-version-update-easy

Ruby
5
star
30

sidekiq-cleaner

Sidekiq Cleaner
5
star
31

Azure-NotificationHub

Azure Notification Hub Helper
C#
4
star
32

serverless-transparency-detection

Java
3
star
33

continuous-staging

Ruby
2
star
34

react-native-app-indexing

Java
2
star
35

react-native-android-sharer

Java
1
star