利用jsdelivr和github来存储视频
发布于 2021-04-04 05:10
前言:在一个个人博客上,图片视频等资源的储存至关重要。
对于图片来说可以利用别人搭建好的图床例如sm.ms,或者利用jsdelivr
与picgo
的github
,以及gitee
等等都可以
但如果是视频,就没有那么方便了,各种储存方案价格昂贵,所以我们选择放弃,好的本文结束了但是我们可以利用jedelivr和github来储存
什么是m3u8
m3u8是苹果公司推出的视频播放标准,是m3u的一种,只是编码格式采用的是UTF-8。
m3u8准确来说是一种索引文件,使用m3u8文件实际上是通过它来解析对应的放在服务器上的视频网络地址,从而实现在线播放。使用m3u8格式文件主要因为可以实现多码率视频的适配,视频网站可以根据用户的网络带宽情况,自动为客户端匹配一个合适的码率文件进行播放,从而保证视频的流畅度。
面临的问题
- Github上传限制
20M
(网页) - Jsdelivr对加速资源的限制
20M
- Jsdelivr对
MP4
等视频格式的解码并不让人满意
上传限制
使用git bash
推荐新建一个仓库,专门用来储存视频
再git clone
到本地,取名随意,后文称此文件夹为A
#(呲牙)
在目录下新建一个bat
格式的文件,内容如下:
git add .git commit -m"%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%"git branch -M mastergit push -u origin master
双击bat即可强制推送本地全部内容到Github仓库。使用Git方式上传,可以摆脱20M上传大小的限制。
jsdelivr对mp4的解析不行
测试:https://cdn.jsdelivr.net/gh/TianZonglin/Ubuntu-Installog/dd.mp4
PS: 链接是使用的程序萌部落
jsdelivr的加速资源大小限制
以下就是本文的重点
利用FFmpeg,从以下下载
https://www.gyan.dev/ffmpeg/builds/ffmpeg-git-full.7z
在A
中右键选择 Git_Bash_here(没有?请花亿分钟百度下然后重装下git
)
- 将
ffmpeg.exe
拖入其中,并回车,可以看见会弹出ffmpeg的信息 - 或者将这个文件夹添加到环境变量中(推荐)方法自行百度
添加环境变量
执行切片
第一步:mp4转成ts格式,一对一转换,转换后大小没什么变化。
ffmpeg -y -i 你的名字.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb 你的名字.ts
第二步,按间隔分片,1对N,下面的5即“每个分片5秒”,可以自己切换。
ffmpeg -i 你的名字.ts -c copy -map 0 -f segment -segment_list playlist.m3u8 -segment_time 5 你的名字%03d.ts
[tip type="warning" title="注意"]
这里如果直接输入ffmpeg是不能用的,我们首先拖动 ffmpeg.exe 到黑框中,这时会在 gitbash 中出现个路径,然后把上面的命令(ffmpeg后面的)复制到路径之后即可运行。
所以推荐将它添加到环境变量。
关于mp4的格式,请查看[王友元同学的文章]
(http://www.moetuan.cn/554.html)
第三步
删掉或移除原视频和转换后的ts视频(两个最大的视频文件),如下图
最后使用upload.bat
上传
如何使用
- typecho和wordpress可以使用dplayer插件
- Hexo见程序萌部落
dplayer插件(typecho)
一定要把 HLS支持
打开