SadTalker数字人增加视频输出mp4质量精度

最近在用数字人简易方案,看到了sadtalker虽然效果差,但是可以作为一个快速方案,没有安装sd的版本,随便找了个一键安装包

设置如上

使用倒是非常简单,但是出现一个问题,就是输出的mp4都出马赛克了

界面上却没有一个可以调节mp4生成质量的地方(并非换脸效果),

先说结论

进入SadTalker\src\utils修改videoio.py

python 复制代码
cmd = r'ffmpeg -y -hide_banner -loglevel error -i "%s" -i "%s" -vcodec mpeg4 -crf 24 -b:v 400M "%s"' % (video, audio, temp_file)

添加的就是-crf 24 -b:v 400M 用来提高输出质量

另外一个可有可无的修改地方就是(我也忘记有没有用了)SadTalker\src\facerender里的animate.py

python 复制代码
imageio.mimsave(path, result,  fps=float(25),codec='libx264', quality=10)

imageio是借助FFmpeg快速读写视频图片

大致就是这两个位置

搜索过程

如果语音时间长了视频效果就更差了,于是进入代码搜索

python 复制代码
gen_video = gr.Video(label="视频输出", format="mov").style(width=256)

里面就gr就是gradio是一个界面库,没有什么可改的,改进去就变成改别人的库了

进入src看看gradio_demo.py这个最大的文件

里面看到cmd = r"ffmpeg -y -hide_banner -loglevel error -i %s %s"表示有视频处理的东西

随后进入src.facerender.animate找到imageio.mimsave处理过程,但是光是改这个并没有用,测试了很多次

突然发现关键一句

python 复制代码
save_video_with_watermark(path, new_audio_path, av_path, watermark= False)

这个注释掉了就报错了,然后发现save_video_with_watermark这个方法会在视频生成后,继续对生成的视频处理,然后生成一个低质量的覆盖原始文件,虽然报错,但是能输出一个未压缩的正常mp4文件,但是也没有音频合进去

然后通过from src.utils.videoio import save_video_with_watermark找到了videoio文件,主要是用来合成水印和音频的,水印是默认不开的,但是这个转换过程会降低视频质量

原句r'ffmpeg -y -hide_banner -loglevel error -i "%s" -i "%s" -vcodec mpeg4 "%s"'作用

问了gpt以后

python 复制代码
这个命令是一个使用 ffmpeg (一种广泛使用的多媒体处理工具)的命令行字符串,用于将两个输入文件转换并编码为一个输出文件。让我们逐部分来解释这个命令:

ffmpeg:

这是命令的开始,调用 ffmpeg 程序。
-y:

这个选项表示自动覆盖输出文件。如果没有这个选项,当输出文件已经存在时,ffmpeg 会询问是否覆盖。
-hide_banner:

这个选项用来隐藏启动时的版权和版本信息等输出。这使得输出更加清晰,只显示重要的信息。
-loglevel error:

这个选项设置日志的级别。error 表示只有错误信息会被打印出来,这有助于减少不必要的日志输出。
-i "%s":

-i 代表输入文件。"%s" 是一个占位符,将在命令执行时被具体的文件路径替换。由于这个占位符出现了两次,这意味着命令将接收两个输入文件。
-vcodec mpeg4:

-vcodec 指定了视频编解码器。在这里,它设置为使用 mpeg4 编解码器进行视频编码。
"%s":

这是第三个占位符,代表输出文件。当命令执行时,它会被输出文件的路径替换。
相关推荐
Loo国昌18 分钟前
【LangChain1.0】第九阶段:文档处理工程 (LlamaIndex)
人工智能·后端·python·算法·langchain
抠头专注python环境配置1 小时前
基于Python与深度学习的智能垃圾分类系统设计与实现
pytorch·python·深度学习·分类·垃圾分类·vgg·densenet
愈努力俞幸运1 小时前
flask 入门 token, headers,cookie
后端·python·flask
梦想是成为算法高手1 小时前
带你从入门到精通——知识图谱(一. 知识图谱入门)
人工智能·pytorch·python·深度学习·神经网络·知识图谱
用什么都重名1 小时前
Conda 虚拟环境安装配置路径详解
windows·python·conda
阿也在北京1 小时前
基于Neo4j和TuGraph的知识图谱与问答系统搭建——胡歌的导演演员人际圈
python·阿里云·知识图谱·neo4j
计算机徐师兄1 小时前
Python基于知识图谱的胆囊炎医疗问答系统(附源码,文档说明)
python·知识图谱·胆囊炎医疗问答系统·python胆囊炎医疗问答系统·知识图谱的胆囊炎医疗问答系统·python知识图谱·医疗问答系统
北冥码鲲1 小时前
【保姆级教程】从零入手:Python + Neo4j 构建你的第一个知识图谱
python·知识图谱·neo4j
B站计算机毕业设计超人1 小时前
计算机毕业设计Python+大模型音乐推荐系统 音乐数据分析 音乐可视化 音乐爬虫 知识图谱 大数据毕业设计
人工智能·hadoop·爬虫·python·数据分析·知识图谱·课程设计