利用 JsDeliver + GitHub 实现免费 CDN 加速静态资源,例如图片、CSS、JS等,对于存放视频,JsDeliver 不支持加载超过 20M 的资源,所以视频需要压缩到 20M 以下。如果想要放部电影,那就需要用到切片
关于
GitHub 并没有太限制项目库大小,所以理论来讲只要保证不会受到 GitHub 警告,你就拥有无限空间。
不过流量稍微一起来会被jsd给ban掉,而且对github来说,而且这也是一个滥用行为,所以不推荐所有人都搞;
这次只是切了几个mv+电影测试一下,非大流量应用;
jsd走cf之后,基本也只有联通网速还行,电信基本拉胯
原理
使用FFmpeg软件,将mp4格式视频转换成x秒一个的tls文件(为了保证文件大小,图床一般会限制上传的文件大小)以及m3u8的索引文件,将m3u8索引文件与视频切片放在GitHub同一目录下,即可通过jsd调用达到播放目的
FFmpeg切片视频
下载地址
- FFmpeg官网 http://ffmpeg.org/ 注意根据需要的系统下载相对应的版本;
- win系统在软件包中找到主程序ffmpeg.exe ;其他系统自行寻找
- 分享一个FFmpeg的安装和使用 - jack_Meng - 博客园 (cnblogs.com),里面有win系统的下载地址和一些基本用法
- 备份一份 2022.01.17的win. 蓝奏云
设置FFmpeg
配置FFmpeg环境变量
- 先进入bin目录获取路径:D:\ffmpeg-win64\bin
- 打开系统开始菜单--右击计算机--点击属性--选中高级系统设置--选择高级--选择环境变量设置
- 在系统变量里选择path,选择编辑,将FFmpeg的bin目录的路径D:\ffmpeg-win64\bin;加进去,记得加上分号,点击“确定”保存,即配置完成。
使用命令行窗口检验是否安装成功
- win+R打开cmd
- cd进入存放目录
- 输入ffmpeg 回车 如果显示的是它的版本信息之类的一些,那就说明已经安装完成了。
转码
- 对要切的视频进行转码(转为 mp4),将视频文件转为视频编码 h.264,音频编码 aac 格式的 mp4 文件,mp4 视频文件不是 h.264 编码到后面切片的时候可能会遇到很多莫名其妙的问题。
- 推荐格式工厂,小白一键操作
切片命令
- 用ffmpeg把abc.mp4文件转换为abc.ts文件:
ffmpeg -y -i abc.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb abc.ts
- 再用ffmpeg把abc.ts文件切片并生成playlist.m3u8文件,5秒一个切片:
ffmpeg -i abc.ts -c copy -map 0 -f segment -segment_list playlist.m3u8 -segment_time 5 abc%03d.ts
5表示5秒一个切片,可以自行更改(单个大小要在20m以下)
playlist.m3u8可以自行改成xxx.m3u8 ,如更改则最终组成链接时需要对应的更改文件名
上传Github
- 将切好的m3u8索引文件和全部的tlc文件上传到github里面,放在同一文件目录里面。
- 最终完成视频链接为https://cdn.jsdelive.net/gh/GitHub用户名/库名/文件目录/playlist.m3u8
成果
PS:电脑配置太低的播放会卡
Comments NOTHING