前提
Android,iOsの両環境で動作する動画撮影アプリの作成を考えています。
画像だけが取得できればそれでよく、音声は必要としていません。
現状は両環境で開発できるUnityを使用しています。
カメラから画像の取得、保存までは実装できました。
ただ、そこから画像を動画に変換し保存する方法が分かりません。
現状は音声が必要ないので画像を連続撮影し、それを繋げたものを動画化できればいいかと言う風に考えています。
実現したいこと
- 画像⇒動画の変換をUnityを用いてAndoroid,iOSで行う方法
- あるいはそもそも他の方法でunityを用いて動画の撮影、保存が可能な方法
該当のソースコード
下記の「saveTexture()」で画像の保存は出来ています。
C#
1using System.Collections; 2using System.Collections.Generic; 3using System.IO; 4using UnityEngine; 5using UnityEngine.UI; 6 7public class mainScript : MonoBehaviour 8{ 9 public RawImage rawImage; 10 WebCamTexture webCam; 11 WebCamDevice[] devices; 12 int selectCamera = 0; 13 14 15 // Start is called before the first frame update 16 void Start() 17 { 18 //カメラデバイス取得 19 devices = WebCamTexture.devices; 20 selectCamera = 0; 21 webCam = new WebCamTexture(devices[selectCamera].name, 480, 360, 30); 22 rawImage.texture = webCam; 23 webCam.Play(); 24 } 25 26 public void saveTexture() 27 { 28 webCam.Pause(); // カメラを停止 29 Texture2D texture = new Texture2D(webCam.width, webCam.height, TextureFormat.ARGB32, false); 30 texture.SetPixels(webCam.GetPixels()); 31 texture.Apply(); 32 33 byte[] bin = texture.EncodeToJPG(); 34 Object.Destroy(texture); 35 36 // ファイルを保存 37 File.WriteAllBytes(Application.persistentDataPath + "/test.jpg", bin); 38 webCam.Play(); 39 } 40 41}
試したこと
AssetでOpenCV plus Unityを使用しようと導入しましたが、Matファイルからグレースケール化などは出来たもののAsset内にVideoioが無いようでVideowriterが使用できず動画作成はできませんでした。
OpenCV for unityと言うAssetは有料のため、まだ試していません。
補足情報(FW/ツールのバージョンなど)
unity2021.3.5f1
VisualStudio 2019
windows 10

あなたの回答
tips
プレビュー