微信视频抓包图
背景
微信里有视频号,任选一个视频,即开始播放,拖动进度条播放也较为流畅。
通过抓包发现,下载的是 mp4 格式的视频。
分别抓包了两个短视频:
第一个视频 1 分钟,大小 2m 左右。
第二个视频也是 1 分钟,大小 20m 左右。
微信视频播放应该用的就是普通 https 协议下载播放是吧
(如果理解不正确,请斧正。)
问题
我正在做移动端的视频点播(类似微信的视屏号)。
看微信视频号播放好像是压缩了视频,仅使用 https 解决,在请求头中加入 range 来判断需要视频哪部分的数据。具体微信怎么做的不清楚。
我是音视频小白,上面可能存在不正确的描述,请大牛指导一下,应该用什么技术做这个视频点播功能?
对于需要完整下载才能开始播放的原因是你没有处理好视频文件的metadata数据,一般转码生成的mp4文件,metadata数据是放置在文件末尾的,因为这些数据是启动播放必须的,所以要缓冲完整才能开始播放(这对本地文件来说,没有什么影响,但对在线播放来说影响巨大),由此为在线点播准备的mp4视频文件,需要在编码存储为文件时,把metadata数据放置在文件开头位置,这个各种编码工具中都有对应设置,也有专门的工具来调整。
现在为了兼容性,绝大多数视频点播服务的实质还是http(s)类服务,只是真实点播文件的URI,现在有一些认证鉴权处理过程,以防止非法访问。
微信实际上是用的TLS 协议,这个是类http(s)类服务,或者说是新一代的http(s)类服务。
至于http(s)类服务服务中,支持mp4的在线点播,是很成熟的技术啦,你可以参考nginx的mp4模块来实现。