经常在各种影视站看到图床切片的视频,研究了下。

首先看效果(新人练手项目,代码很烂,重在思路)

视频仅提供示例,随便下的一个视频

本文不提供相关接口,仅做技术复现!

前期准备

需要首先安装 ffmpeg 并配置到环境变量(使用命令行输入 ffmpeg 可以正常打开的那种)
https://www.gyan.dev/ffmpeg/builds/

https://github.com/BtbN/FFmpeg-Builds/releases

目录结构

项目分为以下几部分

  1. 对 mp4 文件进行格式转换,转成单个 ts 文件
  2. 对 单个 ts 文件进行转换,转成 m3u8 文件和 ts 切片文件
  3. 对 ts 切片文件进行重构,使其具有 PNG 文件格式的文件头
  4. 上传图床并根据返回的结果重写之前 m3u8 文件。

一、文件转换部分

mp4 转 单个 ts

二、生成 m3u8 文件

单个 tsm3u8

三、ts 文件格式处理部分

首先重命名为 PNG 后缀

重写覆写 ts文件头,使其拥有 PNG 文件头

11

PNG 文件头 16 进制数据如下(放在项目目录命名为 PNG

四、文件上传以及重写 M3U8 文件

文件上传

提取返回的 url

重写 m3u8 文件

五、串联以上代码的入口函数

需要自行创建文件夹及准备文件

  • ./ts_single/
  • ./ts_all/
  • ./ts_rewrite/
  • ./video.mp4
  • ./PNG

完整代码
(无上传接口版本)