解决moviepy保存的视频画质不清晰问题

参考:

https://blog.csdn.net/mhack5200/article/details/128666918

https://www.cnblogs.com/LaoYuanPython/p/13643497.html

moviepy 函数库很坑,默认值比较低,要提高保存图像的清晰度,提高bitrate就好,这点指定 4000k 或者 8000k 就行了

如,bitrate='8000k'

具体如下:

python 复制代码
clip_list=[]
for num in range(len(fullpathlist)):
    fullpath = fullpathlist[num]
    clip = VideoFileClip(fullpath)
    clip = clip.fx(vfx.fadein,0.4).fx(vfx.fadeout,0.4)   #淡入淡出效果,渐入渐出
    clip_list.append(clip)                              #合在一个list
 
clips = concatenate_videoclips(clip_list)     #将所有片段拼接一起,要是用 
                                               clip.CompositeVideoClip话是将片段放在一个画面 
                                                中,会同时播放
 
clips.write_videofile(outputpath, codec='h264_nvenc', threads=15, bitrate='8000k',
                                   ffmpeg_params=[
                                       '-tile-columns', '6', '-frame-parallel', '0',
                                       '-auto-alt-ref', '1', '-lag-in-frames', '25', '-g',
                                       '128', '-pix_fmt', 'yuv420p', '-row-mt', '1'])

ImageSequenceClip 是 moviepy 库中的一个类,用于从一系列图像创建一个视频剪辑。以下是这个类的一些主要初始化参数:

python 复制代码
iterable: 这是一个迭代器或列表,其中包含要转换为视频的图像的文件名或路径。图像将按照它们在迭代器/列表中的顺序进行播放。
fps: 这是一个浮点数,表示每秒应播放多少帧图像。默认值是 None,这意味着它将尝试从图像的文件名中推断出帧率(如果文件名包含数字序列的话)。
durations: 这是一个列表,与 iterable 中的图像一一对应,表示每个图像的显示时间(以秒为单位)。如果未提供此参数,则所有图像的显示时间都将为 1/fps 秒。
load_images: 这是一个布尔值,表示是否立即加载所有图像。如果为 True,则在创建 ImageSequenceClip 对象时将加载所有图像,这可能会占用大量内存。如果为 False,则图像将在需要时按需加载,这可能会降低性能但减少内存使用。默认值是 True。
with_mask: 这是一个布尔值,表示是否使用图像的 alpha 通道(如果存在)作为遮罩。如果为 True,则图像的透明部分将不会显示。默认值是 False。
ismask: 这是一个布尔值,表示这个剪辑是否应该被当作一个遮罩来使用。如果为 True,则这个剪辑将只包含黑白图像,其中白色表示可见部分,黑色表示不可见部分。默认值是 False。
transparent: 这是一个布尔值或颜色值,表示如果图像具有该颜色,则应将其视为透明。这通常用于处理没有 alpha 通道的图像。默认值是 False。
logger: 这是一个可选的日志记录器对象,用于记录有关图像加载和处理的信息。
preload: 这与 load_images 类似,但 preload 参数的取值可以是 "auto"、"eager" 或 "lazy"。"auto" 将根据图像的数量和大小自动选择是否预加载图像,"eager" 将立即加载所有图像,而 "lazy" 则会在需要时按需加载图像。
注意:上述参数可能会随着 moviepy 库的更新而发生变化,因此建议查阅最新的 moviepy 文档以获取最准确的信息。

另外,值得注意的是,我在编写这个回答时,ImageSequenceClip 的 __init__ 方法并没有直接接受上述所有参数。一些参数(如 load_images、with_mask、ismask、transparent)实际上是 ImageClip 类的参数,而 ImageSequenceClip 是从 ImageClip 派生的。因此,在创建 ImageSequenceClip 对象时,这些参数可能会通过其他方式(例如,通过设置 ImageClip 对象的属性)来间接使用。再次强调,建议查阅最新的 moviepy 文档以获取最准确的信息。
相关推荐
揽秀亭长1 小时前
音频转简谱实测:AI扒谱与传统制谱方式有什么区别
人工智能·音视频
ai产品老杨1 小时前
越界检测算法接入 AI 视频分析平台的流程与误报优化指南
人工智能·算法·音视频
阿图灵3 小时前
OpenCV 实用技巧三连:视频转图片、图片转视频、Pillow 与 OpenCV 互转
图像处理·python·opencv·计算机视觉·音视频·pillow
SEONIB_Explorer3 小时前
VEONIB 电商 UGC 视频自动化生产实战指南
人工智能·自动化·音视频·跨境电商·视频制作·veonib
美狐美颜SDK开放平台4 小时前
直播APP开发技术详解:视频美颜SDK在人脸识别、美型算法与渲染优化中的应用
人工智能·音视频·美颜sdk·直播美颜sdk·第三方美颜sdk
禹亮科技4 小时前
110㎡纵深长桌会议室音视频工程方案复盘|上海制药企业精装场景无改造亿联+耳目达落地实践
音视频·视频会议解决方案
乐橙开放平台19 小时前
养老 SaaS 笔记:setMessageCallback 事件桥接 + msgType 映射 P0/P1,先 ACK 再分流值班流
笔记·物联网·音视频·智能家居
H03111698519 小时前
关于当前主流知识库工具在分类整理学习资料场景下的选用参考
人工智能·信息可视化·音视频
tedcloud12319 小时前
Awesome DSH Plugin 怎么用?给 DeepSeek Harness 搭建自己的插件生态
大数据·linux·服务器·人工智能·音视频
2601_961593421 天前
视频放大模糊不清?Topaz Video AI v1.7.0 Mac 版高效修复
人工智能·macos·音视频