利用 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

配置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:电脑配置太低的播放会卡

Tara

缘分天注定

届ける言葉を今は育ててる
最后更新于 2022-03-17