利用 jsDeliver + GitHub 实现免费 CDN 加速静态资源,例如图片、CSS、JS等,相信大家都知道。也有人想过存放视频,但是 jsDeliver 不支持加载超过 20M 的资源,所以视频需要压缩到 20M 以下。如果想要放部电影,那就需要用到 HLS切片
了。这里我用了狐妖小红娘竹业篇做测试,整部视频大小为 1.76G,以 20S 为一段共切了 506 段。
GitHub 并没有太限制项目库大小,所以理论来讲只要保证不会受到 GitHub 警告,你就拥有无限空间。
播放测试
切片命令
我使用的 FFmpeg 工具来切片
- 对视频进行转码(转为 mp4),将视频文件转为视频编码 h.264,音频编码 aac 格式的 mp4 文件,mp4 视频文件不是 h.264 编码到后面切片的时候可能会遇到很多莫名其妙的问题
# infile.mp4 是待转码的文件(可以是其他格式,比如 avi…… 之类的)
# outfile.mp4 是转码输出文件
# libx264 转为 h.264 编码
ffmpeg -i infile.mp4 -c:v libx264 -strict -2 outfile.mp4
- 将 mp4 切片,并生成 m3u8 文件
# output.mp4 需要切片的视频文件
# playlist.m3u8 待生成的 m3u8 文件名
# 5 切片时间,表示隔几秒进行切一个文件
# output%03d.ts 生成切割ts文件名,output%03d.ts 代表生成 output001.ts、output002.ts 这样的格式,03d 可以随意修改,占位符
ffmpeg -i output.mp4 -c copy -map 0 -f segment -segment_list playlist.m3u8 -segment_time 5 output%03d.ts
- 这样就算切片成功了,视频被切割成你想要长度的 ts 文件,只要低于 20M 就可以放入 GitHub 了
Comments | 14 条评论
博主 [email protected]
恭喜国人又玩坏一个
博主 214958962
大佬怎么把m3u8视频直接插入播放呢;我百度了教程是改一个文件;但是那个播放框有点丑;想copy下大佬怎么搞的
博主 Kinoko
@214958962 随便找个播放器接口,或者用potplayer
博主 sky
你好,请问下,我这边引用博主你的 "YourName.m3u8" 提示不能使用,你是将你的名字这些视频切片的Git存储设置为私有仓库吗? 我还想试试引用你的名字 看看效果 望回复
博主 Kinoko
@sky 原来的库被 jsDelivr 拉黑了,重新 Fork 了新库,请把我的仓库 Fork 走,不要直接引用我的链接。
博主 ice
@Kinoko 该评论为私密评论
博主 jim
白嫖不错哦,试试
博主 恰
大佬用什么上传的
博主 Kinoko
@恰 Git 工具啊
博主 卡农
你好,git提示 release包大于50MB,楼主这个你是咋解决的丫,
"Package size exceeded the configured limit of 50 MB."
找到的解决方法是分库,这也太麻烦了吧,我看博主你的名字好几个G都能用,请教一下
博主 Kinoko
@卡农 在库为空的时候创建一个
release
目的是为了能够使用 jsDelivr 访问文件,后面就不需要创建release
了,直接按照如下 URL 访问你的文件https://cdn.jsdelivr.net/gh/MoGuJ/Video-Bed/Your.Name/playlist.m3u8
博主 卡农
@Kinoko 博主你的意思是只需要发布一个release,之后新上传的切片文件都不需要再发布release是嘛,也就是说不加版本号,直接访问最新的资源文件,
but我刚把最新的release删了,不加版本号直接访问试了下,还是提示这个 超过50兆,有点僵硬
博主 鲁道斯丶
大佬播放器用的什么插件啊
博主 Inuoy
学习了