为什么ffmpeg用libx264压片无法跑满cpu?
dwing吧
全部回复
仅看楼主
level 12
3900x,crf模式,没有自己设置线程数,我记得ffmpeg默认开的线程数应该是cpu超线程数的2倍,没有理由跑不满啊,压片只有大概70左右的占用,只有同时压两个才能跑满cpu。
但是用megui时候可以跑满cpu,是因为megui直接调用x264,还是因为megui默认设置了线程数?
另外想问下x264线程数对压片速度的提升是线性的吗?对画质影响大吗?比如我买个3990x,设置128个线程去压片,速度会很快吗?画质降低会很严重吗?
2020年09月11日 05点09分 1
level 12
264最大16线程足矣,多开吧
2020年09月11日 05点09分 2
请问下16线程的说法来源是哪里?
2020年09月11日 05点09分
@vg勇夺ti🍺 可能是因为不是所有运算都能多线程 部分数据只能同时给一个线程 (如需要参考前一部分运算出来的数据)线程数量达到一定程度编码速度不会增加
2020年09月11日 07点09分
16核心照樣跑滿,分辨率要4K或以上。
2020年09月27日 05点09分
level 6
用veryslow 就满了
线程太多画质压缩率都会小幅下降
2020年09月11日 14点09分 3
就是用的veryslow
2020年09月11日 16点09分
@vg勇夺ti🍺 那用x265
2020年09月12日 05点09分
@flyabcdefg321 我的需求只能264
2020年09月12日 08点09分
level 1
我多核也遇到了这个问题
2022年10月10日 08点10分 5
level 8
锐龙R9-7900X也遇到了,CPU占有率平均大概在35%
2023年07月09日 14点07分 6
level 12
隔了这么久还有人回帖,说下我的解决办法吧
就是从时间上分割视频,然后同时压,最后再合并起来
注意每一段要用相同的参数压才能确保合并不出问题,音频可以不分割,跟合并后的视频mux即可
2023年09月01日 13点09分 7
请问怎么能分割、合并的精确呢?因为帧的问题,合并时在合并点范围总有重复的画面(帧)。
2024年01月10日 04点01分
@TunkCN 从关键帧切啊
2024年01月11日 16点01分
@vg勇夺ti🍺 是从关键帧切的啊,尝试了很多次,偶尔能完美拼接,大部分都会多一帧甚至好几帧。有没有文章讲这个啊?
2024年01月31日 02点01分
level 3
你好我也有压片需要,请问配一台双路E5 需要多少线程才能压制4k h265?还是说上个I9才可以?我用i7压1080p+265就非常痛苦了,
2024年07月20日 13点07分 8
没有能不能,只有快慢
2024年07月20日 16点07分
@Mr-Z♂ 是啊,就是问速度大概多少,0.0几的速度 和不能有什么区别,反正我是不用这速度压。
2024年07月21日 10点07分
@天黑来上网 直接参考passmark多核跑分就行,E5 2699A V4多核跑分25654,i7-14700k多核跑分53473,速度两倍左右不会差太多。i7带核显可以试试用显卡压视频,av1约等于265。毕竟,你追求这些个极限,没人给你发钱对不对?
2024年07月23日 07点07分
@邪恶马赛克 第一批的这些av1硬件编码普遍不行,有可能和它自己的hevc差不多甚至不如
2024年07月23日 17点07分
level 10
无法复现你的问题。13700k 24线程是吃满的。以前用5900x也没发现吃不满。
可以试试handbrake,这个虽然底层也是ffmpeg,但是实现还是有区别。
2024年07月25日 08点07分 9
R9-7900X也是24线程,试了下handbrake,1080p x265 slow 2pass,总体在60%左右跳动。但比ffmpeg好了,ffmpeg通常在40%左右。
2024年11月19日 15点11分
level 1
接我楼中楼的回复:
测试设备:12800hx+4070移动
测了三个片子:
GBC1专第一首和第七首,1080p两个
地球脉动第三季第六集前10分钟,4k一个
第一张图是测试速度预设的总表,固定了crf,我从中选择了 medium、p4、9(stvav1)来进行CRF的测试
下面三张是CRF/ CQ 从18到40的测试,每个视频分别压出来180多个测试视频,筛选出VMAF分接近x264 crf24的结果,此时画质相同,对比体积即可知道编码器高下
结论:
libx264、h264_qsv、h264_nvenc全部出局,因为太差了,我在第三张图都不筛选后两个的结果了,影响我观看其他编码器的柱子
但H.264至少是兼容性的保底选择,比如wallpaper可能需要h264,不能完全丢掉,那看情况选h264_nvenc cq28,其次libx264 crf24吧
libx265、libsvtav1保有一定实力,x265可以被av1的preset9代替了,因为svtav1调快速度预设几乎不影响画质,但x265会有些影响所以只能调中等速度medium,导致x265既不比svtav1快,也不比svtav1质量好,陷入这种尴尬的境地。唯一阻碍av1的是对于老手机没av1硬解的人不好。
hevc_qsv,x265加速青春版
hevc_nvenc,x265加加速更青春版
av1_nvnec,进步极大,他比之svtav1,就不像hevc_nvenc对比h265还要考虑情况了,不用去想要不要体积多1%~8%换来速度翻个四倍,av1_nvnec基本和svtav1五五开,我体积最多大2%,速度快四倍,不快白不快,有N卡必压av1_nvenc好吧。
h264和h265的amf我也测了,h264_amf比h264_qsv还差,hevc_amf小于等于x264,感觉没啥说的,就不放图了。
下图是国外老哥测试的编码器性能:svtav1 > x265 > av1_nvenc > hevc_nvenc >= av1_amf > x264 > hevc_amf > h264_nvenc >=hevc_qsv > h264_qsv > h264_amf
链接:https://goughlui.com/2024/02/25/video-codec-round-up-2023-part-18-conclusion/他这里只比较了压缩率,没有比较速度。然后他选的速度预设和我的也不同(我得考虑日用的嘛),所以和我测的结果也有些小不同,比如hevc_qsv他的比较低,我测的其实还算能用,反正比x264更好
我推荐:av1_nvenc > hevc_nvenc > svtav1 > hevc_qsv = x265
算上速度我依然推荐 av1_nvenc > hevc_nvenc > svtav1 > hevc_qsv = x265
等我完善下我的《多编码器多预设批处理脚本》的代码,我会再分享一下,也做个这种码率和VMAF的横纵坐标图出来。做个懒人专栏和懒人一键包,到时候大伙可以测自己的东西了
2024年11月19日 14点11分 11
Intel 核显编码 HEVC,我记得挺强的呀,veryslow 预设能有 x265 medium 水平,怎么现在排倒数了。。不会全是 medium 预设测的吧。。[汗]
2024年11月19日 17点11分
@无名_啊 我不是列出那个测速度预设的图了,可以看到hevc_qsv在veryfast到veryslow的情况下,得分只有0.2的变化,并不多,所以我为什么老是说slow没意义,我为什么全部用medium测,我如果测7个速度预设 22个CRF值 8个编码器,乘起来我要压1200个视频,我有三个不同的视频就要压3600个测试
2024年11月20日 05点11分
@无名_啊 所以我是先选定了合适的速度预设,再去测CRF值的,每个只用压180多个,三个不同的源视频压540多个测试视频就行了,当然做测试要严谨,如果有时间放那两三天让他压3600多个视频出来也行。这些1080p视频测vmaf挺快的,有上百fps速度,
2024年11月20日 05点11分
但是那个4k的地球脉动我测试VMAF只有21fps,测了一两天才测完180个视频,要是测上千个,等个一两周吧
2024年11月20日 05点11分
1