在线免费网站建设平台,手机制作报价单app,苏州企业网站制作开发,有没有专业做电视测评的网站网络摄像头使用的是海康威视的#xff0c;关于如何使用Ump插件播放海康威视rtsp视频流#xff0c;请参考我的这篇文章 内部有ump插件的下载链接 untiy接入 海康威视网络摄像头
录屏使用的插件是 AVPro movieCapture 4.6.3版#xff0c; 插件和完整工程的下载链接放在本文的…网络摄像头使用的是海康威视的关于如何使用Ump插件播放海康威视rtsp视频流请参考我的这篇文章 内部有ump插件的下载链接 untiy接入 海康威视网络摄像头
录屏使用的插件是 AVPro movieCapture 4.6.3版 插件和完整工程的下载链接放在本文的最后
录制摄像头的实现思想为 1 ump通过一个在RenderTexture上绘制图像来播放画面 2 movieCapture支持从纹理中获取画面 3 我们只需要使用Graphics.Blit()函数将一个纹理绘制到另一个纹理即可
核心脚本为以下三个
RecoderManger是我们自己写的用于打通ump和AVPro movieCapture之间的连接 CaptureFromTexture是AVPro movieCapture中用于从纹理中录像的脚本挂上就行不用做任何调整 UniversalMediaPlayer是Ump插件提供的脚本用于拉取网络摄像头的视屏
Ump里的预制体RawImage用于用于提供一个临时的容器ump会新建一个RenderTexture并给Rawimge的mainTexture属性赋值面板上显示的属性名为textureRecoderManger获取这个RenderTexture然后将图案绘制到CaptureFromTexture里的_texture属性里这样就就完成了录像
程序打开sampleScene直接运行即可录屏停止运行即可保存录像代码里有详细注释这里不再赘述
using RenderHeads.Media.AVProMovieCapture;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UMP;public class RecoderManager : MonoBehaviour
{public int _textureWidth 1024; //视频的宽public int _textureHeight 768; //视频的高private CaptureFromTexture movieCapture null; //录像机private UniversalMediaPlayer ump;//ump用于拉取网络摄像头的视频//外部rawImagepublic RawImage rawImage;//录像用的渲染纹理private RenderTexture _texture;/// summary/// 录像保存的路径/// /summaryprivate string filePath ;/// summary/// 录像保存的文件夹名追在在路径之后/// /summarypublic string folderName ;/// summary/// 视频降低多少分辨率以 _textureWidth _textureHeight 制定的宽高为基础/// /summarypublic CaptureBase.DownScale downScale CaptureBase.DownScale.Half;/// summary/// 视频的前缀名/// /summarypublic string fileNamePrefix ;/// summary/// 视频流的地址/// /summarypublic string RTSPAddress ;private void Start(){ump GetComponentUniversalMediaPlayer();movieCapture GetComponentCaptureFromTexture();//如果视频流是空的直接返回if (string.IsNullOrEmpty(RTSPAddress)){print(视频流地址为空停止录像);return;}//设置拉取的视频流ump.Path RTSPAddress;ump.Play();//设置渲染纹理_texture new RenderTexture(_textureWidth, _textureHeight, 0, RenderTextureFormat.ARGB32, RenderTextureReadWrite.Linear);_texture.filterMode FilterMode.Bilinear;_texture.Create();if (movieCapture){movieCapture.SetSourceTexture(_texture);}//设置录像机的属性filePath Application.streamingAssetsPath /RecoderVideo/folderName/;movieCapture.OutputFolderPath filePath;//视频的保存路径 路径不存在会自动创建movieCapture.FilenamePrefix fileNamePrefix;//视频的名字的前缀movieCapture.ResolutionDownScale downScale; //降低分辨率 //开始录像movieCapture.StartCapture(); rawImage.gameObject.SetActive(false); // RawImage的作用是提供中转用的RenderTexture禁用即可}private void OnDestroy(){if (_texture ! null){RenderTexture.Destroy(_texture);_texture null;}movieCapture.StopCapture();}private void Update(){UpdateTexture();}private void UpdateTexture(){Graphics.Blit(rawImage.mainTexture, _texture); //将纹理1 绘制到 纹理2 上此处为将网络摄像头的画面绘制到录像用的纹理上}
}
资源免积分下载 AVPro movieCapture 4.6.3