# PyVSR **Repository Path**: lzy-0618/py-vsr ## Basic Information - **Project Name**: PyVSR - **Description**: python 借芯 实现的视频超分 - **Primary Language**: Python - **License**: LGPL-2.1 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-04-04 - **Last Updated**: 2023-04-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # PyVSR --- 简介: 依赖 百度 FastDeploy 实现的效果不咋地的 视频超分程序 ## 1. 安装 :computer: 1. 安装 FastDelploy 在满足 FastDeploy 的条件下 安装fastdeploy 2. 安装 requirements.txt 的中的python包 运行下面shell命令 ```shell pip install -r requirements.txt ``` 3. 安装 ffmpeg python包 ```shell pip install ffmpeg-python ``` 4. 安装 ffmpeg linux 教程如下: - 打开终端,输入以下命令安装FFmpeg ```shell sudo apt install ffmpeg ``` - 如果提示找不到包,则需要先更新软件源列表: ```shell sudo apt update ``` 5. 安装 yaml库 ```shell pip install pyyaml ``` ## 2. 使用说明 :book: - 命令行参数解释 | 参数 | 解释 | 参数设定 | | -------- | -------- | -------- | |'-m' 或 "--model"| 模型的名字 |"BasicVSR_reds_x4" 或 "PP-MSVSR_reds_x4" 或 "EDVR_M_wo_tsa_SRx4"| |'-v' 或 "--video"| 输入视频的名字 |自己设定| |'-c' 或 "--count"| 每个临时视频的视频帧数 |默认为50 可以根据自己的视频大小设定| |'-d' 或 "--device"| 推理设备 |"cpu"或"gpu"| - 命令行示例 ```shell python main.py -m PP-MSVSR_reds_x4 -v vsr_src.mp4 -c 50 -d cpu python main.py --model PP-MSVSR_reds_x4 --video vsr_src.mp4 --count 50 --device cpu ``` ## 3. 项目简介 :rocket: 1. 程序初始化: 命令行解析,设置日志,程序开始运行 2. 提取音频: 对输入视频进行音频提取: - 如果输入是有声视频, 提取音频为music.mp3文件,并进行保存 - 如果输入是无声视频, 不提取音频, 返回布尔值进行标记 3. 视频处理: 将视频的每一帧调整为320*180(为例后期适配推理接口) - 为控制程序占用内存大小, 以count 控制每次处理的视频帧数,并写入一个临时视频文件。 - 临时文件按照"%d.mp4"格式命名,视频帧处理完成后,然后使用 ffmpeg 合并成temp.mp4 - 之后删除所有的临时视频文件 4. 模型超分 和 视频写入磁盘 - 读取temp.mp4文件,然后模型超分 - 将超分的视频帧 写入到 output.mp4文件中 5. 音频合并: - 有声音频: 将提取的音频music.mp3文件和output.mp4文件合并为end.mp4文件 - 无声音频: 根据 提取音频部分返回的布尔值略过此步骤 ## 4. 项目文件介绍 :file_folder: 1. AudioFile 存放提取出音频文件 music.mp3 2. Models 存放超分模型的文件 3. Output 存放超分模型输出视频的文件 4. Tenmp 存放视频处理为320*180时产生的临时视频文件 5. VideoFile 存放需要超分处理的视频文件 6. AudioUtils.py 音频工具类函数文件 7. VideoPorcessor.py 视频处理类文件 8. FrameSR.py 视频超分模型类文件 9. main.py 主程序逻辑文件 10. run.log 程序运行日志 11. error.log 程序推理错误日志 12. configure.yml 配置文件 ## 5. 运行效果 :tada: CPU 超分效果如下: --- ![cpu_before_sr.png](cpu_before_sr.png) ![cpu_after_sr.png](cpu_after_sr.png) GPU 超分效果如下: --- ![gpu_after_sr.png](gpu_after_sr.png)