Unity3d Windows播放视频(视频流)功能组/插件支持对比

前言

目前作者常开发的系统就是智能工厂、园区,数字孪生系统等,经常用到播放各种视频的功能,而且甲方经常有部署好的各种监控系统,如果接入到系统就涉及到各种视频流的格式rtsp、rtmp、m3u8等。所以经常遇到各种播放视频插件的问题,现在主要用的就是AVPro Video 和 UMP等,
如果播放本地视频还是推荐自带的Video Player组件。本文主要针对windows平台的播放组/插件的一个使用对比和总结,各种版本可能随着迭代更新的变化可能支持功能也会变化,仅供大家参考。

VideoPlayer 组件

本地视频支持
http://..com/resource/**.mp4 这种在线视频支持

其它视频流不支持,如m3u8不支持:
在这里插入图片描述
rtmp也不支持:
在这里插入图片描述

AVPro Video

流媒体视频支持不是很好,之前尝试过的确会存在播放不出来流媒体的情况。

在这里插入图片描述
这个插件是大家最常用的,价格不算便宜,播放功能也是很稳定,之前项目上使用播放本地、在线视频,暂未发现异常。

UMP Pro

目前在用的插件,总的来说支持算是全面的:

在这里插入图片描述

不过有很多问题,如偶发的停止播放时程序卡顿,最好使用2.0.3版本,还有打包后的播放问题网上可以查到解决办法,还有最惨的一点是插件很久没更新了,不知道是不是没有人在维护了:

在这里插入图片描述

VLC for Unity (Windows)

基于LibVLCSharp实现的插件,目前个人测试了0.1.3版本,体验感觉很不好,文档比较少(虽然是白嫖的 )。
本地视频支持
http://..com/resource/**.mp4 这种在线视频支持
视频流的播放情况:rtmp播放还是比较快速,m3u8 有打不开的情况,rtsp评论如斯:

在这里插入图片描述
内存占用也会很高:
在这里插入图片描述

还有一点我尝试在同一个MediaPlayer 中切换播放视频,发现一直未成功,可能是我的方法不对。当然其它监听事件:如缓冲、错误等也是没有的。
测试之后,我下载了免费试用版,尝试了m3u8、rtmp、rtsp视频流的播放感觉效果不错。
切换视频播放功能也能正常,代码如下:

		mediaPlayer?.Stop();
		mediaPlayer?.Dispose();
		mediaPlayer = null;
		mediaPlayer = new MediaPlayer(libVLC);
if (mediaPlayer.Media != null)
			mediaPlayer.Media.Dispose();
		var trimmedPath = path.Trim(new char[]{
    
    '"'});
		mediaPlayer.Media = new Media(libVLC, new Uri(trimmedPath));
		Play();

可能最新版(0.1.5)的会好用很多,这个试用版的话就是有水印。

FFmpeg for Unity

在这里插入图片描述

这里进行了1.10.3版本的测试,
本地视频支持,http://..com/resource/**.mp4 在线视频支持(但有没播放出来的情况),视频流m3u8、rtmp支持,rtsp不支持。
还有个比较严重的问题的,在视频流切换的过程之中,这个程序是卡死的状态,切换成功后才恢复。
切换脚本如下:

 vplayer.StopFfmpeg();
 vplayer.InputPath = VidUrls[idx];
 vplayer.StartFfmpeg();

还有包体较大250多m。

猜你喜欢

转载自blog.csdn.net/qq_33789001/article/details/125165348