video - 为什么用ffmpeg渲染后文件大小没有减小?
问题描述
问题:渲染某个视频后,ffmpeg
文件大小从 4GB 增加到 6GB。
原始视频:EE1.mkv
FFMPEG 命令:ffmpeg -i EE1.mkv -c:a copy -c:v libx264 -crf 23 -preset medium -profile:v high out.mp4
问题:为什么文件大小增加了?我究竟做错了什么?
!细节!
几年后,我制作了大约 30 个游戏视频(130GB),在当前的 covid-19 情况下,我开始录制我的在线课程(大约 40 个视频或 150GB)。现在因为我的 1TB 外置硬盘空间不足,我开始使用ffmpeg
. 之前我只使用obs-studio
并没有很好的参数进行记录。
我正在使用CBR
录制模式,5000KB 或 15000KB 比特率,不同的 x264 预设和配置文件,因为我也在试验它们。通常具有高调的超快预设。所以我想用ffmpeg
using CRF 23
、medium preset 和 high profile 转换所有这些视频。请注意,当我使用它录制时,obs-studio
它设置为 matroska 格式 ( .mkv
) 录制。
当我使用这些设置渲染我的在线课程视频时,我设法在相同质量的情况下实现了 10 倍更好的压缩。在渲染我的游戏视频时,我设法在相同质量的情况下实现了高达 3 倍的更好压缩。然而,有一个视频,当使用相同的参数渲染时,文件大小会增加。
EE1.mkv应以 15000KB 码率录制,CBR
具有超快预设和高配置文件。此外,该视频中录制的游戏Empire Earth
需要大约 8000KB 才能看起来不错。不需要超过 8000KB 的所有内容。
谢谢大家的帮助。
解决方案
我发现解决问题的方法是:
- 首先,您需要知道要压缩的视频的目标比特率。
在这种情况下,我通过录制相同的游戏CRF 23
并查看它达到的比特率来做到这一点。 - 然后我尝试
CBR
用不同的值渲染视频,CRF
并寻找那些比特率与目标比特率相似的值。
在这种情况下是CRF 32
。实际上这个过程很痛苦,所以我正在尝试学习QP
速率控制,因为它可能是比CRF
. 我还是个新手ffmpeg
。此外,这种情况仅发生在我以CBR
mode 录制的某些视频以及当我尝试使用CRF
.
推荐阅读
- vb.net - Visual Studio 2012 到 2017 VB 代码“使用 ..As..”BC30002 错误
- installation - 安装 Xcode 10.2 beta 命令行工具和其他工具时遇到问题
- vim - 如何在执行映射时防止搜索突出显示
- javascript - 激活和停用 EventListener JS vanilla
- javascript - 在滚动导航栏上,颜色没有改变。如何让它发挥作用?
- python - 如何为 http 请求连接库?
- ansible - How to uncomment multiple lines in a file using Ansible playbook
- java - 如何使用java解决查询firebase中的非法字符
- r - 按列分组,保持最小值,并列连接选定值
- python - 跟进问题:pick_event to get a point using matplotlib