惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

K
Kaspersky official blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
V
Visual Studio Blog
F
Full Disclosure
B
Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
L
Lohrmann on Cybersecurity
月光博客
月光博客
I
Intezer
博客园 - 三生石上(FineUI控件)
Hacker News - Newest:
Hacker News - Newest: "LLM"
D
Darknet – Hacking Tools, Hacker News & Cyber Security
博客园_首页
P
Proofpoint News Feed
C
Check Point Blog
N
News | PayPal Newsroom
H
Heimdal Security Blog
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
G
GRAHAM CLULEY
WordPress大学
WordPress大学
C
CERT Recently Published Vulnerability Notes
Y
Y Combinator Blog
Recorded Future
Recorded Future
Application and Cybersecurity Blog
Application and Cybersecurity Blog
T
Tailwind CSS Blog
W
WeLiveSecurity
L
LINUX DO - 热门话题
Microsoft Azure Blog
Microsoft Azure Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Schneier on Security
Schneier on Security
爱范儿
爱范儿
Martin Fowler
Martin Fowler
U
Unit 42
T
Troy Hunt's Blog
S
Securelist
V
V2EX
V2EX - 技术
V2EX - 技术
MongoDB | Blog
MongoDB | Blog
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
博客园 - 聂微东
人人都是产品经理
人人都是产品经理
M
MIT News - Artificial intelligence
T
Tor Project blog
Cisco Talos Blog
Cisco Talos Blog
罗磊的独立博客
小众软件
小众软件
阮一峰的网络日志
阮一峰的网络日志
Vercel News
Vercel News

yyhhyyyyyy

Surge for Mac 配置教程:自用配置详解与 iOS 版差异 Surge for iOS 配置教程:自用配置文件逐段详解(General / 策略组 / 规则) Mac小企鹅输入法+雾凇拼音配置指南:从安装到同步 Winodws 双网卡实现内外网分流 VSCode 配置Ruff Cursor修改垂直布局 Clash Party/Clash Verge Rev/Sparkle 覆写与扩展脚本指南 解决 WSL2 与 Tunnel 模式网络冲突:MTU 设置妙招 Mihomo 配置教程:从零写一份完整配置文件(DNS / TUN / 分流规则详解) TUN 模式详解:System / gVisor / Mixed 三种堆栈的区别与选择 Tailscale+Headscale+自建Derp踩坑记录 解决Moviepy剪辑视频画面卡帧,但有声的问题 Surge Or Mihomo通过WireGuard回家 重装系统 -- Windows11 Win10/11配置fnm:解决PowerShell脚本运行受限问题 Ai 原画系统 基于社交媒体大数据的智慧政务系统 Miniconda安装教程 Doker-compose 网络互通 建立菲律宾台风损害模型
解决MoviePy保存视频时的视频质量降低问题
yyhhyyyyyy · 2024-08-14 · via yyhhyyyyyy

1. 起源

最近在折腾自动化剪辑视频的时候,发现我原视频视频质量看起来还ok,至少肉眼看过去还好,但是经过moviepy处理后保存下来的视频却质量降低了很多,会有很多噪点的产生。其实最直观的就是,传进去的视频大小是100MB,出来的视频就只有不到10MB,很明显就是被压缩了。

2. 解决方案

moviepy导出时的编码需要指定,且文件后缀也有一定要求。

先简单阐述下:

不同的编码器支持不同的容器格式(也称为封装格式)。以下是一些常见的编码器及其通常支持的容器格式:

  1. H.264 无损模式 :通常使用 .mp4.mkv 容器。
  2. H.265/HEVC 无损模式 :通常使用 .mp4.mkv 容器。
  3. ProRes:通常使用 .mov 容器。
  4. DNxHD/DNxHR:通常使用 .mov 容器。

代码附上:

H.264 无损模式(.mp4 容器)

video_clip.write_videofile(
    output_file + ".mp4",
    audio_codec="aac",
    temp_audiofile_path=output_dir,
    threads=params.n_threads or 2,
    logger=None,
    codec="libx264",
    ffmpeg_params=["-qp", "0"],  # 无损模式
    fps=video_clip.fps
)

H.264 无损模式(.mkv 容器)

video_clip.write_videofile(
    output_file + ".mkv",
    audio_codec="aac",
    temp_audiofile_path=output_dir,
    threads=params.n_threads or 2,
    logger=None,
    codec="libx264",
    ffmpeg_params=["-qp", "0"],  # 无损模式
    fps=video_clip.fps
)

H.265/HEVC 无损模式(.mp4 容器)

video_clip.write_videofile(
    output_file + ".mp4",
    audio_codec="aac",
    temp_audiofile_path=output_dir,
    threads=params.n_threads or 2,
    logger=None,
    codec="libx265",
    ffmpeg_params=["-qp", "0"],  # 无损模式
    fps=video_clip.fps
)

H.265/HEVC 无损模式(.mkv 容器)

video_clip.write_videofile(
    output_file + ".mkv",
    audio_codec="aac",
    temp_audiofile_path=output_dir,
    threads=params.n_threads or 2,
    logger=None,
    codec="libx265",
    ffmpeg_params=["-qp", "0"],  # 无损模式
    fps=video_clip.fps
)

ProRes(.mov 容器)

video_clip.write_videofile(
    output_file + ".mov",
    audio_codec="aac",
    temp_audiofile_path=output_dir,
    threads=params.n_threads or 2,
    logger=None,
    codec="prores",
    fps=video_clip.fps
)

请根据自己的需求选择合适的编码器和容器格式。当然也可以考虑使用 .mp4 容器,因为它是常见的格式,并且大多数编码器都支持。(不过偶尔mp4不太好用,moviepy没法直接保存