为什么视频转码时 CPU 闲置了 30%?

2019-07-27 20:31:29 +08:00
 moonkiller
要把一段视频转换下分辨率
才发现好慢,好费风扇:哇哇响;
时间也好慢…,竟然要几十分钟。

但是打开性能监控器查看了下,CPU 利用率稳定在 70%;
为什么不跑满啊 0,0

用的 App 是 Wondershare 的万能格式转换器
4340 次点击
所在节点    macOS
11 条回复
yuzo555
2019-07-27 20:53:44 +08:00
用 ffmpeg 试试
mumbler
2019-07-27 20:55:43 +08:00
现在 CPU 是多核的,转码核心一般都是单线程,你可以同时转 2 个,3 个肯定就满了

ffmpeg 可以开多线程,但质量会有影响,建议不要开启
celeron533
2019-07-27 22:28:40 +08:00
所以宁可同时转多个视频,也不要所有视频排好队一个个开多线程转。
moonkiller
2019-07-27 22:38:07 +08:00
@mumbler
@celeron533
酱紫啊 多谢科普👀
beijiaoff
2019-07-28 00:01:18 +08:00
转码是个很复杂的事情,不同的编码器,配置参数有巨大的影响。
估计是这个软件估计不占用所有的资源吧。因为占用所有资源是很简单的事,选择调用所有核心就完了。
它留一些资源让你做其他事情不至于太卡。
现在都是多核电脑,ffmpeg 肯定要开多线程的,4 倍 8 倍的速度提升谁不要。不影响质量,质量是另外的参数决定的。
minami
2019-07-28 00:23:23 +08:00
视频编码器主要依赖分片来实现多线程,所以即使开了多线程也很难占满 CPU,正常
另外 H265 的多线程效率比 H264 高,清晰度损失也低
panda1001
2019-07-28 08:13:21 +08:00
io 对 cpu 利用率的影响
Sasasu
2019-07-28 08:45:24 +08:00
内存比你想想的要慢很多
MonoLogueChi
2019-07-28 10:32:38 +08:00
@beijiaoff 多线程会影响质量,只是在线程数较少的时候对质量的影响看不出来,线程数越多影响越大,而且更多的线程数对转码速度的提升也没有太明显的效果。转码有一条隐藏的规定,线程数不要超过 16
beijiaoff
2019-07-28 13:42:36 +08:00
@MonoLogueChi 是因为多线程是对画面进行分区导致分区边界搜索像素运动只能限定在自己的范围内导致不够优化的原因吗?
MonoLogueChi
2019-07-28 17:12:32 +08:00
@beijiaoff 我也不知道是什么原因,反正别人都是这么说的。我只是会用转码工具,参数对结果的影响也是看的文档,具体原理也没深究过

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/586779

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX