Unity3d利用opencv保存游戏视频
脚本MyVideoWriter.cs
using UnityEngine;
using System.Collections;
using OpenCvSharp;
using OpenCvSharp.CPlusPlus;
using System.IO;
/*author:bluebeandate:2016.8.8all rights reserved*/
public class MyVideoWriter : MonoBehaviour {
    VideoWriter writer;
    ;
    ;
    //VideoWriter参数
    string fileName ;
    FourCC fourcc = FourCC.XVID;
    ;
    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(, , w, h), , , 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是一个机器视觉库,为了精简起见,没有提供音频有关的操作。
Unity3d利用opencv保存游戏视频的更多相关文章
- 利用OpenCV进行H264视频编码的简易方式
		在Python下,利用pip安装预编译的opencv库,并实现h264格式的视频编码. 1. 安装OpenCV $ pip install opencv-python 建议在python虚拟环境下安装 ... 
- Opencv保存摄像头视频&&各种编码器下视频文件占用空间对比
		打开视频文件或摄像头视频需要使用Opencv中的VideoCapture类,保存视频或摄像头视频到本地磁盘,需要使用Opencv中的VideoWriter类,使用都很简单,这篇文章就记录一下Video ... 
- opencv保存视频
		利用opencv提供的方法,从摄像头获取视频,并保存为.avi格式文件. win8.1,opencv248,vs2013下测试 #include<opencv\cv.h> #include ... 
- 基于opencv下对视频的灰度变换,高斯滤波,canny边缘检测处理,同窗体显示并保存
		如题:使用opencv打开摄像头或视频文件,实时显示原始视频,将视频每一帧依次做灰度转换.高斯滤波.canny边缘检测处理(原始视频和这3个中间步骤处理结果分别在一个窗口显示),最后将边缘检测结果保存 ... 
- 摄像头脸部识别 (1)opencv 抓取视频数据并保存
		摄像头脸部识别 (1)opencv 抓取视频数据并保存 基于python 和 opencv 3.4.0 (兼容 opencv 2.X 参考注释),详细如代码 import numpy as np im ... 
- opencv::将两幅图像合并后,在同一个窗口显示;并将合并的图像流保存成视频文件
		/** * @file main-opencv.cpp * @date July 2014 * @brief An exemplative main file for the use of ViBe ... 
- 【转】Unity3D研究院之两种方式播放游戏视频
		http://www.xuanyusong.com/archives/1019 Unity3D中播放游戏视频的方式有两种,第一种是在游戏对象中播放,就好比在游戏世界中创建一个Plane面对象,摄像 ... 
- C# 利用 OpenCV 进行视频捕获 (笔记)
		原文:C# 利用 OpenCV 进行视频捕获 (笔记) 简介 这个项目是关于如何从网络摄像头或者视频文件(*.AVI)中捕获视频的,这个项目是用C#和OPENCV编写的. 这将有助于那些喜欢C#和Op ... 
- 【坦克大战】Unity3D多人在线游戏(泰课的坦克大战--旋转的螺丝钉)
		[坦克大战]Unity3D多人在线游戏 http://www.taikr.com/my/course/937 1.NetworkManager的介绍: 说明:选择固定生成时会自动寻找有StartPos ... 
随机推荐
- ASP.NET MVC WEBAPI第一次接触
			asp.net 的MVC4 WEBAPI的出现已经有段时间了.最近因为做自己的一些小玩儿,要做一个API,正好可以学习一下这个WEBAPI. WEBAPI项目的创建我就不啰嗦,先来看看webapi的路 ... 
- MySQL的索引类型和左前缀索引
			1.索引类型: 1.1B-tree索引: 注:名叫btree索引,大的方面看,都用的是平衡树,但具体的实现上,各引擎稍有不同,比如,严格的说,NDB引擎,使用的是T-tree,但是在MyISAM,In ... 
- iOS图片编辑功能实现
			图片加标签:标签可以编辑 https://github.com/shumingli/waterMark 1. 编辑效果;图片可以放到.缩小.旋转 2. 保存相册效果 
- mysql系统数据库
			mysql系统数据库主要存储了一些存储MySQL服务的系统信息表.一般情况下mysql库的表都是MYASIM引擎,除非个别情况.mysql库的表的作用大致可以分为以下几类: (1)授权系统表 (2)系 ... 
- NodeJS 错误处理最佳实践
			NodeJS的错误处理让人痛苦,在很长的一段时间里,大量的错误被放任不管.但是要想建立一个健壮的Node.js程序就必须正确的处理这些错误,而且这并不难学.如果你实在没有耐心,那就直接绕过长篇大论跳到 ... 
- Java入门记(四):容器关系的梳理(上)——Collection
			目录 一.Collection及子类/接口容器继承关系 二.List 2.1 ArrayList 2.1.1 序列化的探讨 2.1.2 删除元素 2.1.3 调整大小 2.2 Vector和Stack ... 
- 【英语魔法俱乐部——读书笔记】 2 中级句型-复句&合句(Complex Sentences、Compound Sentences)
			[英语魔法俱乐部——读书笔记] 2 中级句型-复句&合句(Complex Sentences.Compound Sentences):(2.1)名词从句.(2.2)副词从句.(2.3)关系从句 ... 
- VSS记住用户名和密码
			计算机-属性-高级系统设置-环境变量 新建两个环境变量如下: SSUSER(VSS的用户名) SSPWD(VSS的密码) 
- 如何使用Javascript判断浏览器终端设备
			WEB开发中如何通过Javascript来判断终端为PC.IOS(iphone).Android呢? 可以通过判断浏览器的userAgent,用正则来判断手机是否是ios和Android客户端 var ... 
- Masonry学习笔记
			1.边距 [bottomView mas_makeConstraints:^(MASConstraintMaker *make) { make.left.equalTo(self.view).offs ... 
