# m3u8video **Repository Path**: likangle/m3u8video ## Basic Information - **Project Name**: m3u8video - **Description**: m3u8视频工具 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2019-06-26 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # m3u8video ### 介绍 kotlin实现,借助ffmpeg进行视频上传,转换为m3u8格式后返回播放地址 - 仅支持MP4格式 - 支持分片上传 - 支持断点续传秒传 ### 软件架构 kotlin版springboot ### 安装教程 先要安装ffmepg并添加到环境变量,不添加则需要指定ffmpeg命令位置,修改springboot的 `ffmpeg.path`配置,然后运行jar包即可 ### 接口说明 > `http://ip:9100/probe` 视频信息探测接口。根据视频标识获取该视频的上传状态,返回值有两种。 参数: - flag: 视频的唯一标识,一般使用md5值 返回值: - 视频已上传过:返回视频访问的信息 ``` { "payload": { "video": "http://localhost:9100/?f=NjU3ZTJiYjM3ZDJmODMxZjZiNWExNGI4ZWVkZWVlNWM=", "m3u8": "http://localhost:9100/v1/657e2bb37d2f831f6b5a14b8eedeee5c/index.m3u8", "cover": "http://localhost:9100/v1/657e2bb37d2f831f6b5a14b8eedeee5c/cover.png", "sign": "NjU3ZTJiYjM3ZDJmODMxZjZiNWExNGI4ZWVkZWVlNWM=" // 获取视频信息的标识 }, "success": true, "message": null, "status": 200, "timestamp": 1561747171 } ``` - 视频上传一部分:返回视频上传状态信息 ``` { "payload": { "stats": 0, // 上传到第几片了 "flag": "657e2bb3d2f831f6b5a14b8eedeee5c" }, "success": true, "message": null, "status": 200, "timestamp": 1561747238 } ``` > `http://ip:9100/upload` 视频上传接口,提供断点续传 参数: - file:待上传的文件 - flag:视频的唯一标识,一般使用md5值 - stats:当前上传的文件片数,从0开始(断点续传需要) - total:文件总片数(断点续传需要) 返回值: - 在不进行断点续传情况下 ``` { "payload": { "progress": 1, "video": "http://localhost:9100/?f=MTIzMTY1NDEyc2Rm", "m3u8": "http://localhost:9100/v1/123165412sdf/index.m3u8", "cover": "http://localhost:9100/v1/123165412sdf/cover.png", "sign": "MTIzMTY1NDEyc2Rm" }, "success": true, "message": null, "status": 200, "timestamp": 1561747504 } ``` - 断点续传,每个断点返回 ``` { "payload": { "progress": 0.5 // 上传进度 }, "success": false, "message": null, "status": 404, "timestamp": 1561747504 } ``` > `http://ip:9100/info` 通过视频标识获取视频信息 参数: - sign:视频标识,在上传完毕后返回的 返回值: ``` { "payload": { "video": "http://localhost:9100/?f=MTIzMTY1NDEyc2Rm", "m3u8": "http://localhost:9100/v1/123165412sdf/index.m3u8", "cover": "http://localhost:9100/v1/123165412sdf/cover.png", "sign": "MTIzMTY1NDEyc2Rm" }, "success": true, "message": null, "status": 200, "timestamp": 1561747751 } ``` ### 断点续传测试页面 ``` http://ip:9100/up ```