FFmpeg软硬件编码_视频压缩测试
测试硬件:i5-5200U(Broadwell架构,核显HD Graphics 5500),8G DDR3双通道内存
测试视频信息:
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '拯救姬_MidAutumn2021_原图比例.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf58.29.100
Duration: 00:00:20.03, start: 0.000000, bitrate: 58436 kb/s
Stream #0:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709, progressive), 2784x1440, 58518 kb/s, 30 fps, 30 tbr, 15360 tbn (default)
转为1920x1080,10000kbps
Stream mapping:
Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
Stream #0:1 -> #0:1 (aac (native) -> aac (native))
默认参数(软件编码):ffmpeg -i input.mp4 -b:v 10000k -s 1920x1080 output.mp4
结果:frame= 600 fps= 10 q=-1.0 Lsize= 24165kB time=00:00:20.03 bitrate=9882.1kbits/s speed=0.334x
编码使用Intel QSV硬件加速:ffmpeg -i "input.mp4" -b:v 10000k -s 1920x1080 -c:v h264_qsv "output.mp4"
结果:frame= 600 fps= 40 q=26.0 Lsize= 25669kB time=00:00:20.03 bitrate=10497.0kbits/s speed=1.34x
解码也使用硬件加速:ffmpeg -c:v h264_qsv -i "input.mp4" -b:v 10000k -s 1920x1080 -c:v h264_qsv "output.mp4"
结果:frame= 600 fps= 86 q=26.0 Lsize= 25669kB time=00:00:20.03 bitrate=10497.0kbits/s speed=2.87x
从结果看,相比于软编解码,后二者的速度分别是前者的4倍、8.6倍,CPU占用也有大幅下降,对于5200U这种2c4t的弱鸡CPU来说硬件加速是最理想的压缩方式了。当然,在CPU足够强、有6c12t乃至于8c16t的情况下,收益肯定没这么明显。
最后附上一张QSV支持图,主流的AVC/H.264编解码从2代酷睿Sandy Bridge往后就有支持了,较新的HEVC/H.265则要到7代酷睿才有完整支持,我测试过6代HD Graphics 510不行
