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

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

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

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

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

       选中视频后,在检查面板中将Unity VideoPlayer做的播放器,重复播放一定次数后,一定几率导致视频画面卡死 (导出的exe)_第1张图片转码勾选上,将编解码器选为自动,然后点击应用,转码过程中UNITY3D抛出有一个坏帧的警告(可能是客户给的视频有问题,并且每次视频卡死,都卡死在第一帧,这个坏帧可能就是嫌疑犯)。

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


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

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

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

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


       

你可能感兴趣的:(C#基础,团结优化,视频播放器)