【AI】动漫视频4倍清晰度批量提升

一、利用到的工具

1、github项目:https://github.com/xinntao/Real-ESRGAN/
2、ffmpeg
3、python批量处理脚本:放在本文最后面了

二、操作步骤

1、首先在自己电脑上安装ffmpeg,并讲ffmpeg添加到环境变量中
2、下载github项目,下载windows版

3、将我们的批量处理python脚本放到下载下来的github项目目录下

4、开始运行python脚本即可。
5、项目效果:

三、python脚本代码

点击查看代码
import os,re,time,subprocess,cv2,shutil
#为什么使用os.stytem,因为os.system是必须要执行完毕才会往后执行,我们这种流程化就需要这种

video_names=os.listdir("input_video")
print("所有需要处理的视频如下:")
print(video_names)
for video_name in video_names:
    print("[+]开始处理视频:{}".format(video_name))
    img_dic = 'tmp_img/' + video_name.rsplit(".")[0]+'/'
    if not os.path.exists(img_dic):    #目录不存在,则根据每个视频创建一个图片目录
        print("[+]视频的图片目录不存在,开始创建目录")
        os.mkdir(img_dic)
        print("[-]目录创建成功!")

    print("[+]开始分割视频为图片")
    stat1 = os.system("ffmpeg -i input_video/{} -qscale:v 1 -qmin 1 -qmax 1 -vsync 0 {}/frame%08d.png ".format(video_name,img_dic))
    # print("stat1>>>{}".format(stat1))
    print("[+]开始对原图片进行4倍清晰度提高处理...")
    stat2 = os.system("realesrgan-ncnn-vulkan.exe -i {} -o {} -n RealESRGANv2-animevideo-xsx4 -s 4 -f png".format(img_dic,img_dic))
    # print("stat2>>>{}".format(stat2))

    print("[+]开始读取当前视频的帧速率...")
    cap = cv2.VideoCapture('input_video/'+video_name)  # 读取视频
    frame_rate = cap.get(5)  # 5代表:CV_CAP_PROP_FPS    是帧速率的意思

    #下面是合并图片+复制声音,前提是上面的命令执行完毕
    print("[+]开始将图片合并为视频,并且添加视频声音...")
    # print(frame_rate)
    print("ffmpeg -r {} -i {}frame%08d.png -i input_video/{} -map 0:v:0 -map 1:a:0 -c:a copy -c:v libx264 -r {} -pix_fmt yuv420p result_video/{}".format(frame_rate,img_dic,video_name,frame_rate,video_name))
    stat3 = os.system("ffmpeg -r {} -i {}frame%08d.png -i input_video/{} -map 0:v:0 -map 1:a:0 -c:a copy -c:v libx264 -r {} -pix_fmt yuv420p result_video/{}".format(frame_rate,img_dic,video_name,frame_rate,video_name))
    if stat3 == 0 :
        print("[+]视频:{}处理完毕,开始删除产生的视频图片...".format(video_name))
        shutil.rmtree(img_dic)     #最后移除初始图片目录,节省空间,必须要用这个,如果用os.remove则失败,因为os.remove无法删除非空文件夹
        print("[+]图片清理成功!")

posted @ 2022-02-27 08:36  painter520  阅读(408)  评论(0编辑  收藏  举报