感谢,B站的flv.js 代码贡献,合成部分是全搬FLV.JS的 那个写的比较完善了。
看这个之前,首先要有时间,有耐心。因为制作时候要读取二进制。会很枯燥,会经常数错字位。
浏览器的 直接video 标签。
优点:
1、免去深度学习 mp4.h264 内部结构封装好直接使用,能在火狐,谷歌,苹果直接使用。
2、直接赋值视频地址就可以使用
缺点:
1、错误类型只有一种。
2、缓存只有几s 存留
3、容易盗链或者修改链接
4、只能跑固定3种视频格式
5、不能置入加密视频
6、不允许外部下载视频数据赋值给video标签
解码mp4 转入
优点:
1、src 视频地址不能修改
2、支持加密视频,切割视频等多种奇特方式。
3、视频类型理论是不限
4、多种报错情况可制作
5、目前这个版本有全视频缓存
6、理论,加官方api 能在安卓
缺点:
1、谷歌内核浏览器体验比较好,其次火狐,safaier不支持,火狐主要是fetch的机制自己乱改,可能不会去刻意去兼容火狐, 安卓支持是最好的,4.4版本以上,ios 要9版本以上
2、需要了解处理视频的编码格式 盒子对应处理,没有轮子,必须自己弄。
AipaiVideoDataMain.js为主目录。
建立本地服务器。运行项目。
这里没有使用 worker 多线程,没有完善的 mp4 stbl (一个弄了N个处理版本,我大半年的东西,这个版本的处理是有问题的,超级标准的视频,在git里面的那个标准视频是正常使用的) 盒子。
此项目使用的是本地视频文件。内部盒子是最标准简单类型。
支持P帧,支持获取一小段显示播放,你们自己去处理便宜量解码。
能解比较正规的视频。 一些特殊的盒子,需要根据你视频解码服务器支持来处理。
Git 仓库
https://github.com/yu305306/aipaiFFrag.git
后续会制作代码教程。