我现在用的HandBrake做视频二次压缩H.264->H.265,在我本机上测试过,情况如下:
CPU编码 Medium预设 固定质量21RF可以做到损失1-6%平均画质换取30%或以上左右的压缩空间;
CPU QSV编码 Balanced预设 固定质量26QP,能做到同样效果;
NV CUDA编码 Medium预设 固定质量32,能做到同样效果;
以上仅针对原视频为 H.264 Main Profile。
如果源视频为H.264 High Profile的话,重编码后文件大小不减反增。
要知道损失5%或以上画质是很严重的,我觉得大概是1080->720的级别。
注:损失X%画质,经由网飞的vmaf程序进行帧比较得出,比较的数学模型在该项目的Github地址上有。
楼主可以下载ffmpeg和vmafossexec自行测试比较,下面给出我用的比较脚本。
另外,那个帖子是:[大姐姐保存指南2nd]简单易懂的H265视频编码测试 :[url]https://bbs.nga.cn/read.php?tid=21816165&fav=92fbf77c[/url]
D:\Tools\ffmpeg\ffmpeg.exe
#1.截断视频 ffmpeg.exe -ss [起点] -i "source.mp4" -vcodec copy -t [持续时间] "target.mp4"
D:\Tools\ffmpeg\ffmpeg.exe -ss 00:18:00 -i "D:\1080.mp4" -vcodec copy -t 00:00:30 "D:\source.mp4"
#2.转换YUV420
D:\Tools\ffmpeg\ffmpeg.exe -y -i "D:\source.mp4" -pix_fmt yuv420p -vsync 0 "D:\reference.yuv"
D:\Tools\ffmpeg\ffmpeg.exe -y -i "D:\sourceCPU.mp4" -pix_fmt yuv420p -vsync 0 "D:\sourceCPU.yuv"
D:\Tools\ffmpeg\ffmpeg.exe -y -i "D:\sourceNV.mp4" -pix_fmt yuv420p -vsync 0 "D:\sourceNV.yuv"
D:\Tools\ffmpeg\ffmpeg.exe -y -i "D:\sourceCPUQSV25.mp4" -pix_fmt yuv420p -vsync 0 "D:\sourceCPUQSV25.yuv"
#3.1比较 1080视频
D:\Tools\ffmpeg\vmafossexec.exe yuv420p 1920 1080 "D:\reference.yuv" "D:\sourceCPU.yuv" "D:\Tools\ffmpeg\model\vmaf_v0.6.1.pkl" --log D:\logCPU.xml
D:\Tools\ffmpeg\vmafossexec.exe yuv420p 1920 1080 "D:\reference.yuv" "D:\sourceCPUQSV25.yuv" "D:\Tools\ffmpeg\model\vmaf_v0.6.1.pkl" --log D:\logCPUQSV25.xml
#3.2比较4K视频
D:\Tools\ffmpeg\vmafossexec.exe yuv420p 3840 2160 "D:\reference.yuv" "D:\sourceCPUQSV25.yuv" "D:\Tools\ffmpeg\model\vmaf_4k_v0.6.1.pkl"--log logCPUQSV25_4K.xml
VMAF比较分数:
[img]https://img.nga.178.com/attachments/mon_202208/18/9aQ2q-9st3Z1hT3cS1gi-rf.jpg[/img]
文件:
16926/25608=66.097%压缩率
[img]https://img.nga.178.com/attachments/mon_202208/18/9aQ2q-b7lvK1bT3cSq6-7f.jpg[/img]
VMAF比较分数 CPU=21RF ...
<?xml version="1.0"?>
<VMAF version="1.5.1">
<params model="vmaf_v0.6.1.pkl" scaledWidth="1920" scaledHeight="1080" subsample="1" num_bootstrap_models="0" bootstrap_model_list_str="" />
<fyi numOfFrames="899" aggregateVMAF="94.4427" execFps="14.4504" timeTaken="62.213" />
<frames>
<frame frameNum="0" adm2="0.989363" motion2="0" vif_scale0="0.779524" vif_scale1="0.97149" vif_scale2="0.986466" vif_scale3="0.992475" vmaf="93.7796" />
<frame frameNum="1" adm2="0.988507" motion2="0.419083" vif_scale0="0.771703" vif_scale1="0.965888" vif_scale2="0.983264" vif_scale3="0.990353" vmaf="93.8198" />
<frame frameNum="2" adm2="0.986261" motion2="0.443378" vif_scale0="0.762546" vif_scale1="0.95998" vif_scale2="0.979947" vif_scale3="0.988545" vmaf="93.0567" />
<frame frameNum="3" adm2="0.987811" motion2="0.603608" vif_scale0="0.756542" vif_scale1="0.959421" vif_scale2="0.980088" vif_scale3="0.988652" vmaf="93.6201" />
<frame frameNum="4" adm2="0.984697" motion2="0.65378" vif_scale0="0.744713" vif_scale1="0.951903" vif_scale2="0.975609" vif_scale3="0.98606" vmaf="92.5883" />
<frame frameNum="5" adm2="0.984117" motion2="0.791097" vif_scale0="0.739259" vif_scale1="0.94901" vif_scale2="0.974129" vif_scale3="0.985217" vmaf="92.504" />
<frame frameNum="6" adm2="0.986619" motion2="0.790197" vif_scale0="0.739405" vif_scale1="0.952135" vif_scale2="0.976466" vif_scale3="0.986883" vmaf="93.2907" />
<frame frameNum="7" adm2="0.985911" motion2="0.446163" vif_scale0="0.737504" vif_scale1="0.950787" vif_scale2="0.975612" vif_scale3="0.986385" vmaf="92.6075" />
<frame frameNum="8" adm2="0.98523" motion2="0.446163" vif_scale0="0.722957" vif_scale1="0.945826" vif_scale2="0.97293" vif_scale3="0.984766" vmaf="92.21" />
<frame frameNum="9" adm2="0.992341" motion2="1.44955" vif_scale0="0.826912" vif_scale1="0.982304" vif_scale2="0.9914" vif_scale3="0.995106" vmaf="96.8135" />
<frame frameNum="10" adm2="0.990787" motion2="1.4393" vif_scale0="0.803542" vif_scale1="0.968041" vif_scale2="0.983193" vif_scale3="0.99024" vmaf="95.6452" />
<frame frameNum="11" adm2="0.988436" motion2="1.36047" vif_scale0="0.785933" vif_scale1="0.959983" vif_scale2="0.978912" vif_scale3="0.987863" vmaf="94.6225" />
<frame frameNum="12" adm2="0.988398" motion2="1.36047" vif_scale0="0.769189" vif_scale1="0.956017" vif_scale2="0.977201" vif_scale3="0.987003" vmaf="94.4605" />
<frame frameNum="13" adm2="0.985496" motion2="1.27545" vif_scale0="0.757046" vif_scale1="0.947503" vif_scale2="0.97185" vif_scale3="0.983797" vmaf="93.2048" />
<frame frameNum="14" adm2="0.984244" motion2="1.27545" vif_scale0="0.750384" vif_scale1="0.943231" vif_scale2="0.969679" vif_scale3="0.982527" vmaf="92.7267" />
<frame frameNum="892" adm2="0.974771" motion2="3.2758" vif_scale0="0.705805" vif_scale1="0.931309" vif_scale2="0.962522" vif_scale3="0.977923" vmaf="92.5294" />
<frame frameNum="893" adm2="0.972036" motion2="3.2758" vif_scale0="0.689321" vif_scale1="0.919198" vif_scale2="0.955416" vif_scale3="0.973817" vmaf="91.2821" />
<frame frameNum="894" adm2="0.973897" motion2="3.49815" vif_scale0="0.68943" vif_scale1="0.930316" vif_scale2="0.96445" vif_scale3="0.979496" vmaf="92.8272" />
<frame frameNum="895" adm2="0.971619" motion2="3.43038" vif_scale0="0.679772" vif_scale1="0.91738" vif_scale2="0.955709" vif_scale3="0.974136" vmaf="91.4213" />
<frame frameNum="896" adm2="0.96799" motion2="3.43038" vif_scale0="0.6653" vif_scale1="0.909292" vif_scale2="0.951193" vif_scale3="0.971752" vmaf="90.2475" />
<frame frameNum="897" adm2="0.97385" motion2="3.9073" vif_scale0="0.675526" vif_scale1="0.926099" vif_scale2="0.963379" vif_scale3="0.979202" vmaf="93.2456" />
<frame frameNum="898" adm2="0.975806" motion2="4.15953" vif_scale0="0.681287" vif_scale1="0.928349" vif_scale2="0.964371" vif_scale3="0.979644" vmaf="94.0617" />
</frames>
</VMAF>
VMAF比较分数 CPUQSV=25QP ...
<?xml version="1.0"?>
<VMAF version="1.5.1">
<params model="vmaf_v0.6.1.pkl" scaledWidth="1920" scaledHeight="1080" subsample="1" num_bootstrap_models="0" bootstrap_model_list_str="" />
<fyi numOfFrames="899" aggregateVMAF="96.6813" execFps="15.1726" timeTaken="59.2516" />
<frames>
<frame frameNum="0" adm2="0.992571" motion2="0" vif_scale0="0.842123" vif_scale1="0.98451" vif_scale2="0.992705" vif_scale3="0.996025" vmaf="95.0657" />
<frame frameNum="1" adm2="0.990892" motion2="0.419083" vif_scale0="0.820141" vif_scale1="0.975052" vif_scale2="0.987624" vif_scale3="0.993051" vmaf="94.7627" />
<frame frameNum="2" adm2="0.988294" motion2="0.443378" vif_scale0="0.804352" vif_scale1="0.968264" vif_scale2="0.98392" vif_scale3="0.990902" vmaf="93.8714" />
<frame frameNum="3" adm2="0.988489" motion2="0.603608" vif_scale0="0.796432" vif_scale1="0.966481" vif_scale2="0.983243" vif_scale3="0.990606" vmaf="94.0689" />
<frame frameNum="4" adm2="0.986289" motion2="0.65378" vif_scale0="0.787193" vif_scale1="0.962965" vif_scale2="0.981283" vif_scale3="0.98965" vmaf="93.4848" />
<frame frameNum="5" adm2="0.990063" motion2="0.791097" vif_scale0="0.801543" vif_scale1="0.972306" vif_scale2="0.986872" vif_scale3="0.992913" vmaf="95.0271" />
<frame frameNum="6" adm2="0.986345" motion2="0.790197" vif_scale0="0.772922" vif_scale1="0.957539" vif_scale2="0.978701" vif_scale3="0.988319" vmaf="93.4428" />
<frame frameNum="7" adm2="0.985579" motion2="0.446163" vif_scale0="0.76213" vif_scale1="0.952693" vif_scale2="0.975967" vif_scale3="0.986852" vmaf="92.5762" />
<frame frameNum="8" adm2="0.985123" motion2="0.446163" vif_scale0="0.746477" vif_scale1="0.949513" vif_scale2="0.974629" vif_scale3="0.986335" vmaf="92.3781" />
<frame frameNum="9" adm2="0.982985" motion2="1.44955" vif_scale0="0.761419" vif_scale1="0.953106" vif_scale2="0.974705" vif_scale3="0.985261" vmaf="93.1455" />
<frame frameNum="10" adm2="0.986936" motion2="1.4393" vif_scale0="0.798433" vif_scale1="0.971867" vif_scale2="0.985585" vif_scale3="0.991737" vmaf="95.0498" />
<frame frameNum="884" adm2="0.979493" motion2="2.14557" vif_scale0="0.746058" vif_scale1="0.948562" vif_scale2="0.972501" vif_scale3="0.984366" vmaf="93.1087" />
<frame frameNum="885" adm2="0.985886" motion2="2.30681" vif_scale0="0.780767" vif_scale1="0.972317" vif_scale2="0.98651" vif_scale3="0.992449" vmaf="96.054" />
<frame frameNum="886" adm2="0.978799" motion2="2.50352" vif_scale0="0.746363" vif_scale1="0.946251" vif_scale2="0.97111" vif_scale3="0.983736" vmaf="93.2973" />
<frame frameNum="887" adm2="0.977843" motion2="2.56758" vif_scale0="0.73461" vif_scale1="0.939779" vif_scale2="0.967509" vif_scale3="0.981784" vmaf="92.8418" />
<frame frameNum="888" adm2="0.976426" motion2="2.98329" vif_scale0="0.729538" vif_scale1="0.939545" vif_scale2="0.967361" vif_scale3="0.981649" vmaf="93.0446" />
<frame frameNum="889" adm2="0.977624" motion2="3.24073" vif_scale0="0.732804" vif_scale1="0.939761" vif_scale2="0.96723" vif_scale3="0.981105" vmaf="93.5805" />
<frame frameNum="890" adm2="0.984871" motion2="3.52381" vif_scale0="0.772288" vif_scale1="0.970057" vif_scale2="0.985283" vif_scale3="0.99179" vmaf="97.2754" />
<frame frameNum="891" adm2="0.978917" motion2="3.40962" vif_scale0="0.737992" vif_scale1="0.943252" vif_scale2="0.969567" vif_scale3="0.982584" vmaf="94.304" />
<frame frameNum="892" adm2="0.974314" motion2="3.2758" vif_scale0="0.715246" vif_scale1="0.932587" vif_scale2="0.963246" vif_scale3="0.978803" vmaf="92.5327" />
<frame frameNum="893" adm2="0.97644" motion2="3.2758" vif_scale0="0.720108" vif_scale1="0.937305" vif_scale2="0.966539" vif_scale3="0.980936" vmaf="93.3184" />
<frame frameNum="894" adm2="0.976092" motion2="3.49815" vif_scale0="0.72258" vif_scale1="0.93674" vif_scale2="0.965457" vif_scale3="0.980008" vmaf="93.3988" />
<frame frameNum="895" adm2="0.982855" motion2="3.43038" vif_scale0="0.749729" vif_scale1="0.96314" vif_scale2="0.982171" vif_scale3="0.99028" vmaf="96.4264" />
<frame frameNum="896" adm2="0.973959" motion2="3.43038" vif_scale0="0.715876" vif_scale1="0.935076" vif_scale2="0.965152" vif_scale3="0.980344" vmaf="92.8611" />
<frame frameNum="897" adm2="0.975522" motion2="3.9073" vif_scale0="0.71407" vif_scale1="0.937396" vif_scale2="0.967429" vif_scale3="0.981818" vmaf="94.0172" />
<frame frameNum="898" adm2="0.977049" motion2="4.15953" vif_scale0="0.711374" vif_scale1="0.941485" vif_scale2="0.970558" vif_scale3="0.983736" vmaf="94.963" />
</frames>
</VMAF>