持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第5天,点击查看活动详情。
前一段时间下了一个最新的vlc开发包,3.0.17 win64位,直接在以前的工程中替换,发现了这样一个问题!
不是视频视频问题,而是在使用libvlc_new
初始化资源时,很慢!真的是太慢了,不过只限于第一次加载时慢,等多加载几次之后就很快了。
我很不明白,为什么一个初始化资源那么慢?而且第一次很慢,是不是vlc在内部做了缓存呢?
介于是二次开发,无法查看内部代码,这一切都是我的猜想而已。
vlc初始化这么慢,放到程序中就直接卡住了,展示效果肯定不如意。网上查阅很多资料,询问:为什么使用libvlc_new会很慢,结果铺天盖地的都是libvlc_new函数内部参数的讲解,简直是牛头不对马嘴,好心累!
只好自己查一查是为啥了,程序运行后根据vlc输出的日志发现了一丝蛛丝马迹,也不知道自己理解的是不是可行?因为网上我也没查询到有效地资料,如果有知道的大佬可以告知下,十分感谢!
接着说我的理解吧!
查看了vlc初始化输出发现了,vlc一共加载了496个模块
main libvlc debug: plug-ins loaded: 496 modules
是不是因为加载文件过多导致的呢?结果真相了,上网查询,果然有人对vlc中plugins文件夹做过裁剪,将程序中不必要的资源删除。
对此,我对vlc中pluins文件夹做了测试处理,整理出了两个版本。
版本1:精简版
可以播放本地视频、网络视频
版本2:稍微复杂模式
可以播放本地视频、网络视频、缓存网上视频
因为有些功能需求,会在播放视频时,一边播放一边缓存到本地,尝试了一下午,中午将这两个版本对应的文件夹筛选出来了!真是不容易!
版本1的文件夹,如下图所示:
版本2的文件夹,如下图所示:
如果有需要的可以尝试,帮助大家伙解决问题!
我是中国好公民st,一名C++开发程序猿~