# videoCut **Repository Path**: YaleXin/video-cut ## Basic Information - **Project Name**: videoCut - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-03-23 - **Last Updated**: 2024-03-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 运行说明 ## 安装依赖 ```shell pip install -r requirements.txt ``` > 建议使用虚拟环境 ## 导入数据库 创建数据库`video_cut_data`,并将本地`mysql.sql`导入 修改`database_util.py`中相关配置参数 ## 运行 ```shell python -m flask run ``` # 接口说明 ## 剪辑接口(需要登录) 使用 GET 方式访问下面的地址 ```shell http://127.0.0.1:5000/cut?url=https://cdn.yalexin.top/testCut.mp4&start=0.6&end=7.8 ``` ### 参数说明 - `url`:必填项,指明待剪辑的原视频 - `start`:选填项,剪辑起始时间戳,以秒为单位,以浮点数形式给出,不提供该参数时表明从视频的开头进行 - `end`:选填项,剪辑结束时间戳,以秒为单位,以浮点数给出,不提供该参数表明从视频的结尾作为结束,特别的,end=-1代表从视频的结尾作为结束 ### 正确响应实例 ```json { "code": 200, "data": { "detial": "ok, you can get get http://127.0.0.1:5000/ans?name=1711186723.9448307.mp4" }, "message": "ok" } ``` ### 错误响应实例 ```json { "code": 500, "data": { "detail": "end_time < start_time!" }, "message": "fail" } ``` 其中`detail`指明原因 ### 运行截图 重定向登录界面: ![屏幕截图 2024-03-24 103410.png](img/1.png) 密码错误界面 ![](img/2.png) 剪辑正确页面 ![](img/3.png) ## 获取结果接口(需要登录) 以 GET 方式访问下面的地址 ```shell http://127.0.0.1:5000/ans?name=1711186723.9448307.mp4 ``` ### 参数说明 `name`:结果视频的名字,该名字可从 cut 接口的返回值中获取 ### 正确响应实例 返回二进制视频文件 ### 错误响应实例 ```json { "code": 500, "data": { "detail": "name is None!" }, "message": "fail" } ``` 其中`detail`指明原因 ### 运行截图 ![](img/4.png) ## 获取剪辑记录结果接口 ### 运行截图 ![](img/5.png) ## 笔试得分点评价 总计10个得分点,每个得分点自评如下 1. 全部完成(完成剪辑任务) 2. 全部完成(持久化用户提交记录) 3. 全部完成(鉴别用户身份) 4. 未完成(查询剪辑进度),未来可以通过多线程的方式,剪辑任务作为一个线程,定时向主线程汇报进度,主线程将进度传递给前端 5. 未完成(主动推送),未来可以通过邮箱服务方式,任务完成后,将邮件发送给用户即可 6. 部分完成(错误处理机制) 7. 部分完成(良好文档) 8. 部分完成(部署),未来可以将所有配置相关存放在yml文件中 9. 部分完成(代码管理),commit应该要细化,而不是一次性提交过多代码 10. 未完成(单元测试),未来编写测试代码