视频切片并上传到GitHub

韩小韩
2020-06-03 / 3 评论 / 1,194 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2020年06月03日,已超过383天没有更新,若内容或图片失效,请留言反馈。
利用 jsDeliver + GitHub 实现免费 CDN 加速静态资源,例如图片、CSS、JS等,相信大家都知道。也有人想过存放视频,但是 jsDeliver 不支持加载超过 20M 的资源,所以视频需要压缩到 20M 以下。如果想要放部电影,那就需要用到 HLS切片 了。这里我用了狐妖小红娘竹业篇做测试,整部视频大小为 1.76G,以 20S 为一段共切了 506 段。

GitHub 并没有太限制项目库大小,所以理论来讲只要保证不会受到 GitHub 警告,你就拥有无限空间。

GitHub视频切片

GitHub切片视频播放测试

[dplayer url="https://cdn.jsdelivr.net/gh/MoGuJ/Video-Bed/Your.Name/playlist.m3u8" pic="" autoplay="true" /]

切片命令

我使用的 FFmpeg 工具来切片

  1. 对视频进行转码(转为 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
  1. 将 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
  1. 这样就算切片成功了,视频被切割成你想要长度的 ts 文件,只要低于 20M 就可以放入 GitHub 了
    GitHub视频切片
0

评论 (3)

取消
  1. 头像
    HH Z
    Windows 10 · Google Chrome

    哇这个可以啊,我想把这个功能做进我之前做的辣个file2link里,或许就能解决文件大小限制了....
    不过如果是大文件我估计就没法直接加载了

    回复
    1. 头像
      韩小韩 作者
      Windows 10 · QQ Browser
      @ HH Z

      可以!

      回复
  2. 头像
    今日头条新闻
    Windows XP · Google Chrome

    文章还不错支持一下

    回复