这个原理可能很多人都知道的了,但迫于本人第一次见到,还是想和大家分享一下。
根据我自己的理解,第三方动漫网站通常都是利用国内某些平台上传点过滤不当或者不做限制来做自己的视频 cdn ,从而省下大笔的流量开销。 以前看到很多都是直接上传整集番剧到单一文件,最近发现还有把 ts 切片当做图片上传的,也算是一种骚操作吧。我个人喜欢直接在播放页面截取 m3u8 用 ffmpeg 下载下来看,但是发现给 ffmpeg 喂进去之后提示找不到视频流,但是 potplayer 喂进去能正常播放,出于好奇就手动把文件下下来分析了一下。
https://img01.sogoucdn.com/net/a/04/link?appid=100520145&url=https://baipiao.yximgs.com/bs2/courseHead/135537572915594917
在播放页面 f12 截取找到 m3u8 ,随便下载一段文件
将后缀直接改成 ts 之后播放器打开只会一直显示一张白色的 png 图片,也没有声音,看得出来是文件解析不对。
手动打开文件之后发现可看到 PNG 的头部,但并不是标准的 FF D8 开头,文件结尾也找不到 FF D9 。同时也存在 ffmpeg 头,说明这段 png 头是手动添加上去的,通过本地生成的 ts 文件进行对比之后手动删除无用的 png 头即可播放。
那么问题来了,为什么单独下载下来更改后缀为 ts 无法播放,但是把 m3u8 直接放入播放器内又能正常播放呢,按道理来说播放器也是下载切片播放的吧?
搜了一下,yximgs.com 是快手的域名,前面的 sougoucdn 是给这段文件加速的?另外链接里的 baipiao (白嫖)难道是内部有人专门给他创建的子域名么?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
https://study.congcong.us/t/838743
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.