Unity3d利用opencv保存游戏视频
2016-08-08 10:57
330 查看
脚本MyVideoWriter.cs
将脚本拖给摄像机或任何物体,按S键开始录制,再按一次结束录制,关闭程序后,可以查看保存下来的游戏视频。
注意:保存下来的只有视频而没有音频,opencv是一个机器视觉库,为了精简起见,没有提供音频有关的操作。
using UnityEngine; using System.Collections; using OpenCvSharp; using OpenCvSharp.CPlusPlus; using System.IO; /* author:bluebean date:2016.8.8 all rights reserved */ public class MyVideoWriter : MonoBehaviour { VideoWriter writer; int w = 0; int h = 0; //VideoWriter参数 string fileName ; FourCC fourcc = FourCC.XVID; double fps = 50; Size size; bool isWriting = false; Texture2D img; // Use this for initialization void Start () { w = Screen.width; h = Screen.height; Size size = new Size(w, h); fileName = Application.streamingAssetsPath + "/output.avi"; img = new Texture2D(w, h,TextureFormat.RGB24,false,false); writer = new VideoWriter(); writer.Open(fileName, fourcc, fps, size, true); } // Update is called once per frame void Update () { if (Input.GetKey(KeyCode.S)) { isWriting = !isWriting; } if (isWriting) { StartCoroutine(startWriteVideo()); } } IEnumerator startWriteVideo() { Debug.Log("start write"); while (isWriting) { yield return new WaitForEndOfFrame(); img.ReadPixels(new UnityEngine.Rect(0, 0, w, h), 0, 0, true);//read pixels from screen to texture img.Apply(); Mat tmp = new Mat(h, w, MatType.CV_8UC3, img.GetRawTextureData()); Cv2.CvtColor(tmp, tmp, ColorConversion.BgrToRgb); Cv2.Flip(tmp, tmp, FlipMode.X); writer.Write(tmp); } Debug.Log("end write"); yield return null; } void OnDestroy() { writer.Release(); } }
将脚本拖给摄像机或任何物体,按S键开始录制,再按一次结束录制,关闭程序后,可以查看保存下来的游戏视频。
注意:保存下来的只有视频而没有音频,opencv是一个机器视觉库,为了精简起见,没有提供音频有关的操作。
相关文章推荐
- TensorFlow实现人脸识别(2)------利用opencv在视频中识别人脸并且保存
- 利用opencv类库在MFC显示摄像头视频并且保存摄像头视频
- 利用OpenCV进行【视频的读取】与【保存视频文件或者图像】源码!~
- Unity3D 游戏引擎之IOS截屏 话筒录音 录制截屏视频保存沙盒(另类实现方法 )
- 利用opencv类库在MFC显示摄像头视频并且保存摄像头视频
- OpenCV学习——读取usb摄像头或视频并按帧保存
- Opencv保存摄像头视频&&各种编码器下视频文件占用空间对比
- 利用OpenCV的VideoCapture类实现视频读操作
- 利用OpenCV的VideoWriter类实现视频的写操作
- 利用opencv进行usb相机的视频捕获
- opencv 摄像头录取视频保存图像
- 用opencv抽取视频的帧并保存为连续的图片
- Opencv videowriter保存的视频只有几K
- javacpp-opencv图像处理之1:实时视频添加文字水印并截取视频图像保存成图片,实现文字水印的字体、位置、大小、粗度、翻转、平滑等操作
- 利用opencv捕获usb摄像头并写入视频文件
- Unity3D研究院之两种方式播放游戏视频(二十五)
- opencv读取视频,摄像头,保存视频代码
- 用Opencv保存视频文件avi
- opencv利用摄像头抓取视频方法-ubuntu
- 水滴游戏视频-UNITY软件外包、UNITY3D软件开发、UNITY3D游戏开发