前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >UC浏览器视频播放缓存以及视频下载分析

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

作者头像
音视频开发进阶
发布2020-05-26 15:38:19
3.5K0
发布2020-05-26 15:38:19
举报
文章被收录于专栏:进击的多媒体开发

PC时代,浏览器几乎是上网的唯一入口,那时候,得浏览器得天下,大家都想守住这个流量入口,为自家的服务导流。移动互联网时代,繁多的App分割了浏览器的流量,浏览器失去了平台流量的入口地位,沦为一个普通的上网工具,但是浏览器的灵魂注入了很多App中,微信是一个“浏览器”,头条也是一个“浏览器”。因为它们都有“浏览网页”服务的诉求。

这儿有点小小的跑题,本文我们主要分析一下UC浏览器的视频播放缓存功能和视频下载功能。对比一下UC浏览器和QQ浏览器的视频下载:图1是UC浏览器的截图,图2是QQ浏览器的截图。

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

我们简单分析一下UC浏览器的apk包,反解一下apk文件,然后分析其中用到了什么技术。UC浏览器的版本是UCBrowser_V12.5.4.1034.apk,使用AndroidStudio分析一下apk包的总结构。

发现了6个dex文件,还有很多lib so,如下:

其中在classes5.dex中发现如下的代码:com.uc.vturbo包名下面有一些关键类。

从名字上面已经比较清晰了,这是P2P下载的管理类,那么UC浏览器是否真的使用P2P下载了?

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

查看其中一个文件夹中的内容如下:

其中3f707cb48e86b496dd0708a5bdaf3b7d088a45dd_hh0039 是种子文件,3f707cb48e86b496dd0708a5bdaf3b7d088a45dd_vx00454是 M3U8索引文件。

其中种子文件如下:

这里种子文件对应的分片内容正好对应 M3U8的分片内容:

UC视频利用的了本地代理实现了边下边播的技术:通过下面的抓包可以发现。

可以很清晰的看到很多127.0.0.1的请求,这就是在手机上搭建了一个本地代理,然后通过本地代理去服务器请求数据,播放器再从本地代理服务器上取数据。

解析tracker信息,然后利用P2P下载技术去追踪视频的种子文件。

抓包发现发起了很多请求:

10.12.65.96是本机的IP,发现server端的IP不断在变化,这次这是P2P的技术将client作为资源分发的工具,所以才能发现请求同域名的资源,请求的server端的IP不断在变化。仔细分析一下这些IP,发现这些IP都是在我附近的IP。如果是直接从视频源服务器上拉取数据,那server端的IP应该是固定的。

下面分解一下如何解析torrent文件。

总结

  • UC浏览器使用本地代理实现边下边播,这个技术是如何实现边下边播的,下面会单独出文章分析一下。
  • UC浏览器使用P2P实现视频下载。P2P下载方式是一种稀释服务器压力的一种高效的下载方式,越多节点加入,下载越快。
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-05-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 音视频开发进阶 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档