UC浏览器视频播放缓存以及视频下载分析

1,440 阅读2分钟

UC浏览器的视频下载界面

QQ浏览器的视频下载界面

可以比较明显的看出来,UC浏览器的视频下载速度是比较快的,这个是为什么了?需要研究一下UC浏览器的视频下载是怎么做的?

UC浏览器竞品分析

我们简单分析一下UC浏览器的apk包: UC浏览器的版本是UCBrowser_V12.5.4.1034.apk 使用AndroidStudio分析一下apk包的总结构: 发现有6个dex包,还有很多lib文件; 其中在classes5.dex中发现如下的代码:com.uc.vturbo包名下面有一些关键类 从名字上面已经比较清晰了,这是P2P下载的管理类,那么UC浏览器是否真的使用P2P下载了?

下载一个视频,发现在/sdcard/Android/data/com.UCMobile/files/.videocache文件夹下面有3个文件:

查看其中一个文件夹中的内容如下: 其中3f707cb48e86b496dd0708a5bdaf3b7d088a45dd_hh0039 是种子文件,3f707cb48e86b496dd0708a5bdaf3b7d088a45dd_vx00454是 M3U8索引文件。 其中种子文件如下: 这里种子文件对应的分片内容正好对应 M3U8的分片内容:

UC视频利用的了本地代理实现了边下边播的技术:

解析tracker信息,然后利用P2P下载技术去追踪视频的种子文件。 抓包发现发起了很多请求: 10.12.65.96是本机的IP,发现server端的IP不断在变化,这次这是P2P的技术将client作为资源分发的工具,所以才能发现请求同域名的资源,请求的server端的IP不断在变化。

torrent文件是怎么解析的?下回分解。

总结