GitHub + jsDelivr视频切片测试

通过结合 jsDeliver 和 GitHub,可以实现免费 CDN 加速静态资源,如图片、CSS 和 JS 等。这一点大家应该都很了解。不过,有些人可能会考虑存放视频,但由于 jsDeliver 不支持超过 20MB 的资源加载,因此视频文件需要压缩到 20MB 以下。如果想要存放整部电影,就需要使用 HLS 切片 技术。在这里,我以《狐妖小红娘:竹业篇》为测试对象,整部视频的大小为 1.76GB,经过切片处理后,每段持续 20 秒,共切分为 506 段。

值得注意的是,GitHub 对项目库大小没有严格的限制,这意味着只要你的项目不违反 GitHub 的使用政策和规定,你基本上可以拥有无限的空间来存储你的资源。

播放测试

切片命令

我使用的 FFmpeg 工具来进行视频切片处理,以下是一些常用的命令示例:

  1. 首先,将视频转码为 MP4 格式,并使用 H.264 编码进行视频处理以及 AAC 编码进行音频处理。请注意,如果 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 文件。只要每个文件的大小低于 20 MB,就可以顺利上传到 GitHub。

评论区
头像
    头像

    恭喜国人又玩坏一个

    头像
    214958962
      

    大佬怎么把m3u8视频直接插入播放呢;我百度了教程是改一个文件;但是那个播放框有点丑;想copy下大佬怎么搞的

      头像
      蘑菇
        
      @214958962

      随便找个播放器接口,或者用potplayer

    头像
    sky
      

    你好,请问下,我这边引用博主你的 "YourName.m3u8" 提示不能使用,你是将你的名字这些视频切片的Git存储设置为私有仓库吗? 我还想试试引用你的名字 看看效果 :wuliulei: 望回复

      头像
      蘑菇
        
      @sky

      原来的库被 jsDelivr 拉黑了,重新 Fork 了新库,请把我的仓库 Fork 走,不要直接引用我的链接。

        头像
        ice
          
        @蘑菇

        被拉黑的依据是撒,播放调用次数太多,还是单个文件切了上传的太多+调用呢

    头像
    jim
      

    白嫖不错哦,试试

    头像

      

    大佬用什么上传的

      头像
      蘑菇
        
      @恰

      Git 工具啊

    头像
    卡农
      

    你好,git提示 release包大于50MB,楼主这个你是咋解决的丫,

    "Package size exceeded the configured limit of 50 MB."

    找到的解决方法是分库,这也太麻烦了吧,我看博主你的名字好几个G都能用,请教一下 {{liulei}}

      头像
      蘑菇
        
      @卡农

      在库为空的时候创建一个 release 目的是为了能够使用 jsDelivr 访问文件,后面就不需要创建 release 了,直接按照如下 URL 访问你的文件 https://cdn.jsdelivr.net/gh/MoGuJ/Video-Bed/Your.Name/playlist.m3u8

        头像
        卡农
          
        @蘑菇

        博主你的意思是只需要发布一个release,之后新上传的切片文件都不需要再发布release是嘛,也就是说不加版本号,直接访问最新的资源文件,

        but我刚把最新的release删了,不加版本号直接访问试了下,还是提示这个 超过50兆,有点僵硬 {{liubixue}}

    头像
    鲁道斯丶
      

    大佬播放器用的什么插件啊

    头像
    Inuoy
      

    学习了 {{se}}