f:
cd F:\Videos
ffmpeg -ss 00:00:04 -t 00:00:14 -i f完整动画.avi -vcodec copy -acodec copy StartCartoon.mp4
4.Movies文件夹下,右键->Import new Asset,选择刚才做好的视频StartCartoon.mp4。
Render Mode 包含了多种视频渲染的方式可供选择,包括Camera Far Plane,Camera Near Plane,Render Texture,Material Override,Api Only。
1、Camera Far Plane:基于摄像机的渲染,渲染在摄像机的远平面上,需要设置用于渲染的摄像机,同时可以修改alpha通道的值做透明效果,可用于背景播放器。
2、Camera Near Plane:基于摄像机的渲染,渲染在摄像机的近平面上,需要设置用于渲染的摄像机,同时可以修改alpha通道的值做透明效果,可用作前景播放器。
3、Render Texture:将视频画面保存在Render Texture上,以供物体或者RawImage使用,可以用来做基于UGUI的播放器。
4、Material Override:将视频画面复制给所选Render的Material。需要选择具有Render组件的物体,可以选择赋值的材质属性。可制作360全景视频和VR视频。
5、Api Only: 待研究。
其中Camera Far Plane,Camera Near Planehe和Render Texture可以通过设置Aspect Ratio来选择自适应分辨率的方式.Audio Output Mode用于音频的播放,None表示不播放音频,Audio Source表示使用Audio Source进行播放,Direct字面理解应该是直接通过视频来播放。我们需要新建一个AudioSource物体用于音频播放,Audio Source的Clip不需赋值,其余参数可调。
Audio Output Mode 选择Audio Source,然后还要创建一个Audio Source组件(Add Component->Audio->Audio Source,默认配置即可),挂载到Audio Source里,不然视频是没有声音的。
using UnityEngine;
using UnityEngine.Video;
public class StartMenu : MonoBehaviour
{
public VideoPlayer VideoPlayer; //1.声明一个VideoPlayer对象
// Use this for initialization
void Start()
{
VideoPlayer = GetComponent(); //2.初始化VideoPlayer对象
VideoPlayer.loopPointReached += EndReached; //当前clip播放完成调用的事件
VideoPlayer.audioOutputMode = VideoAudioOutputMode.AudioSource; //设置声音输出模式
VideoPlayer.SetTargetAudioSource(0, GetComponent());
VideoPlayer.IsAudioTrackEnabled(0);
VideoPlayer.Play(); //开始播放视频
}
// Update is called once per frame
void Update()
{
if (VideoPlayer.isPlaying)
{
//视频正在播放时,如果播放完毕或者点击屏幕,则停止播放。
if (VideoPlayer.clip.name == "StartCartoon" && (ulong)VideoPlayer.frame >= VideoPlayer.frameCount)
{
//判断是否播放完毕
VideoPlayer.Stop(); //停止播放
}
if (Input.GetMouseButtonDown(0))
{
//点击鼠标左键(触摸屏幕)
VideoPlayer.Stop();
}
}
}
private void EndReached(VideoPlayer source)
{
//todo: 在此处写视频播放完毕后的处理代码
}
}
3.最后将Video Player拖入脚本的VideoPlayer对象。