Unity VideoPlayer做的播放器,重复播放一定次数后,一定几率导致视频画面卡死 (导出的exe)

       如题的问题经过反复测试之后,起初将问题锁定在的的的的的VideoPlayer的效率问题以及UDP的多线程问题上。

       但是经过反复比对排除了UDP多线程出现错误导致卡死的可能。

       后续测试中,发现播放中的程序的CPU占用非常高,每个EXE占用CPU会达到23%以上,当程序多开或者单个程序运行,一定几率会使某一个的EXE播放画面停止,但是程序还在运行,测试输出的数字还在不断变化,当点击退出程序时,程序无响应,死掉了。

       多方查询无果后,朋友提醒视频导入时默认不转码的,并且视频画面卡死可能与视频有关

       选中视频后,在检查面板中将转码勾选上,将编解码器选为自动,然后点击应用,转码过程中UNITY3D抛出有一个坏帧的警告(可能是客户给的视频有问题,并且每次视频卡死,都卡死在第一帧,这个坏帧可能就是嫌疑犯)。

 

        转换完成后导出测试,每个EXE的CPU占用率降低到8%左右,并且卡死的情况一直没有出现。

总结:究竟是不是这几个原因(1.没有进行视频转码,2。视频有坏帧,3 videoplayer的效率问题,4.cpu占用率过高)导致的视频卡死,还需要在进行多次验证,但是将视频转码后再用,会提高效率是肯定的,最起码CPU占用率降低了

以上经验可能有诸多错误,希望路过大神顺手斧正,不胜感激。

2020/10/15 14:24 :

       Unity自带的视频播放器存在诸多问题,推荐大家使用Avpro插件进行视频播放,已经在诸多项目中进行过验证,播放很稳定,并且支持网络视频、4K视频的长时间播放。偶尔会出现编码格式不支持的问题,用格式工厂转下码即可。新版本的AVpro支持录制电脑屏幕,功能还是比较强大的。

      Avpro是付费插件,AssetStore中有售,大伙可趁打折入手,很好用。

       

评论 26
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值