LoginSignup
10
8

More than 5 years have passed since last update.

iOSで撮影した動画をFirebaseに保存する方法

Last updated at Posted at 2019-04-06

背景

iOSで撮影した動画をFirebaseなどに保存する方法を調べても、日本語の記事が出てこなかったので、ここにまとめることにしました。

準備

初めにFirebaseの設定がすんでいることが前提です。
また、Firebase Storageを用いるのでこちらもルールも含めて設定しておいてください。
もちろんpodもインストールしておくこと。

動作環境

swift4.2.1

アプリ内で撮影された動画の基本

アプリ内で撮影された動画は、基本的にアプリ内に保存されることになる。保存された動画のパスは、例えば、NSURLという値で指定される。
以下のコードは、動画の撮影を行うときのものである。fileoutputにNSURL型のfileURLを指定して録画を開始している。

func Record() {
            if !isRecording {
                // 録画開始
                let paths = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)
                let documentsDirectory = paths[0] as String
                let filePath : String? = "\(documentsDirectory)/temp.mp4"
                let fileURL : NSURL = NSURL(fileURLWithPath: filePath!)
                fileOutput.startRecording(to: fileURL as URL, recordingDelegate: self)

                isRecording = true

            } else {
                // 録画終了

                fileOutput.stopRecording()
            }
        }

このようにSwiftでは、アプリ内にNSURLで指定される形で撮影された動画が保存されることになる。

ファイルパスを指定してUpload

この構造を知っていれば後は、パスを指定してFirebaseにアップロードすればいい。
今回は、動画をmp4でアプリ内に保存されていることからfirebase Databaseではなく、Firebase Storageに保存することになる。
保存は、以下のように行えば良い。

まず、次をimportする。


import Firebase
import FirebaseStorage

そのあとに、撮影の終了のタイミングで


func fileOutput(_ output: AVCaptureFileOutput, didFinishRecordingTo outputFileURL: URL, from connections: [AVCaptureConnection], error: Error?) {

            let storageReference = Storage.storage().reference().child("\(UseID!).mp4")

            // Start the video storage process
            storageReference.putFile(from: outputFileURL as URL, metadata: nil, completion: { (metadata, error) in
                    if error == nil {
                        print("Successful video upload")
                    } else {
                        print()
                    }
                }
            )
          }

というように処理すればアップロードが可能です。

10
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
8