心路历程:博主接到任务:做一版可发布的webgl版的数字可视化项目。着重点就是海康监控与webgl的兼容问题,博主在网上搜了一堆方案,还是有可取的地方,为了方便以后使用,博主记录一下心路历程。博主博主第一次写日志,希望对广大网友有所帮助;
重要信息前置:以下是博主个人总结,希望有所帮助
1.webgl最大发布包大小上限2G
2.webgl不支持UMP视频播放插件(导致海康RTSP取码流就不能播放)
3.unity自带字体不支持,可使用TextMeshProUGUI插件
4.不支持多线程
5.不支持Debug调试
6.不支持socket通信,Newtonsoft.json,如果需要网络通信需要使用www或unitywebrequest,RestClient
7.颜色空间(Color Space)不支持Linear
8.不支持postprocess(后期)
9.不支持HDRP渲染通道
PS:由于webgl不支持UMP,博主到目前为止没有找到可支持播放rtsp取码流格式的unity插件,博主网搜了很多,都是利用VLCPlayer播放器(还有WebServer,RTSPtoWebServer/RTSPtoWeb.exe)进行播放视频,而不是内嵌在unity中,所以博主最终放弃了RTSP 和RTMP,如果有大大研发出了一款支持RTSP和RTMP取码流可发布webgl版的欢迎留言
1.webgl发布设置:
平台选择以及设置,直接上图:
2.player settings
2.AVProVideo+播放海康视频流m3u8
博主是按照这篇文章进行步步操作的,里面步骤很详细,着重点是4和5步骤,博主懒,就不写了。
直接上链接:(1条消息) Unity WebGL 播放视频流m3u8_菜菜ANY的博客-CSDN博客
3.场景模型的内存大小优化
一听到优化博主就很头疼,更过分的是金主爸爸要求不能遮挡剔除,不能使用LOD,等等。。。 一个头两个大,博主就开始翻遍其它博主大大的日志,这几篇就很不错,网友们可以看看:
(1条消息) 基于Unity开发WebGL项目加载AB包(一)_unity webgl 资源加载_梵高先森丶的博客-CSDN博客
(1条消息) Unity中发布WebGL的内存_泼孩的博客-CSDN博客
博主在这里总结一下博主的优化方案:
方案1:减小模型材质贴图的maxsize,这个变化是很明显的,原理就是压缩图片,博主发现压缩之后模型也没有多大的区别,网友们参考即可,博主是没有办法了......
由于时间有限,博主是从模型的贴图进行优化的,以下两张图片,第一张是模型材质原贴图,
最大MaxSize是8192,内存大小42.7MB,一张贴图那么大,是不是很过分?博主发现模型同事给的材质贴图,法线贴图内存都好大,于是博主 改成了1024,图片内存瞬间变成了0.7MB。一张贴图减小那么多?那么整个场景呢?于是博主苦逼的开始了压缩图片的路程。。。。。。
最终打包出来原先2G多的webgl包,让博主压缩成了800MB的包。。。。。。
方案2:这个是针对模型同事或者会maya max的程序猿们,需要在maya max里对模型进行减面,减面过程可自行百度,博主本次优化没有进行模型减面,因为博主压缩图片之后就够用了。
4.webgl发布读取StreamingAssets文件夹里的配置文件
PS:由于Webgl不支持IO,所以不可以使用JsonConvert.SerializeObject将对象重新序列化,WebGL仅仅支持Unity自身的序列化,不支持外部的其他序列化方式。
在这里可以参考一下这位博主大大的方案,【Unity3D日常开发】Unity3D中打包WEBGL后读取本地文件数据 (taodudu.cc)本人参考了UnityWebRequest网络请求的方法,在这里博主使用的RestClient.Request的请求方式直接获取的streamingAssets里的配置文件,直接上代码:(博主有时间会写一份详细的webgl读取streamingAssets里的配置文件)
public override void Awake()
{
base.Awake();
string path = Path.Combine(Application.streamingAssetsPath, "configURL.txt");
RestClient.Request(new RequestHelper
{
Method = "GET",
Uri = path,
}).Then(mresponse =>
{
Debug.LogError(mresponse.Text);
}).Catch(err => { Debug.LogError("--------------" + err.Message); });
}
希望对大家有所帮助,仅以此文记录博主的历程。
以下是博主自己研发的项目,包含XChart2.5.0 AVProVideo AssetBundle打包工具 自定义字体文章来源:https://www.toymoban.com/news/detail-562638.html
百度网盘:链接:https://pan.baidu.com/s/17_U76eNkvEpf-HzwuOKirA
提取码:1234
--来自百度网盘超级会员V5的分享文章来源地址https://www.toymoban.com/news/detail-562638.html
到了这里,关于Unity +Webgl+AVProVideo+海康监控M3U8取码流+XChart的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!