本文分析了某商业公司视频压缩产品的技术特点,和当前市场上视频压缩技术的现状。
结论:大部分公司的视频压缩技术和ffmpeg等常见视频工具的能力无本质区别,在充分的知识储备后灵活使用压缩参数比设定好参数的压缩产品品质更好。
个人评价:在不改变分辨率和帧率的前提下压缩码率得到的清晰度和ffmpeg压缩算法比没有明显优势,ffmpeg在灵活运用参数的情况下理论清晰度更高(同样视频总大小I帧数据量能更大)。
视频压缩技术在各大视频网站上均得到了灵活的使用,根据影视飓风已下架的视频,显示视频各大网站会将1080p的视频压缩到码率600k左右,同时提高锐化。数字琥珀公司的策略类似,移动场景的摄像头设置在600k左右,易压缩场景设置在略高于300k,从而达到轻微损失清晰度但是不影响观感的效果。但是设备无法自动判断当前场景需要多少码率,需要提前设置。
根据VMAF标准0-1m的码率对人眼对清晰度的判断影响巨大,所以对于少数场景,600k的码率可能不够。在300k的码率压缩时,运动场景极易出现马赛克。
VMAF标准低于20分为劣质,20-40分为不佳,40-60分为好,60-80分为优质,80-100分为卓越
值得注意的是除当前的各种ai修复技术外,任何的视频重编辑都会降低视频的信息量,视频压缩过程不可逆。从单纯的技术不降低清晰度的前提下压缩视频大小,最有效的方法是采用h265或者AV1等高性能编码方案(不改变清晰度降低30%-50%大小),适当降低帧率和分辨率是更好的(微信发视频)。但是商业角度上,宣传不改变这些参数更容易不被感知(各大视频网站)。
一、数据来源
某商业公司提供了一段由他们公司压缩的监控视频,包括压缩前和压缩后。
作者使用ffmpeg压缩了相同视频进行相同大小的压缩进行对比分析。
二、数据分析
视频信息:1920*1080分辨率,20帧的帧率
视频原数据为142M,由某商业公司压缩后的数据为18.2M,压缩未改变视频格式,分辨率,帧率等基本信息。
监控视频画面如下:
为一栋大楼顶端监控大部分面积为相对固定的大楼建筑,小部分场景为动态的道路。
视频编码有利方面固定场景较多,不利方面建筑画面复杂,I帧需要较大的数据量。
视频压缩数据分析
单帧数据分析:
压缩前
压缩后
从单帧的数据截图上对比,压缩后的视频保留了绝大部分的数据信息总体观感上视频没有边糊。
但是放大看在部分场景有算法涂抹例如下面的树,这种涂抹影响不大。
**影响大的方面:**原视频很明显看到画面中正在下雨,仔细看发现行人正在撑伞,但是下雨的信息在视频压缩后完全消失
编码细节分析:
原视频采用了固定间隔来编码I帧,大概2秒一个I帧,压缩视频采用的是可变I帧间隔,且减小了I帧数量,I帧数量由301降低到31,压缩了10倍
数据大小方面,原视频的I帧大小均在240k左右,p帧大小8-53k,取一段时间的平均为12.5k
压缩后数据I帧大小140k左右,P帧大小大的有20k,大部分为1k多一点,平均为2.5k
从数据上看,在轻微劣化视频图像画面后,能减少P帧的大小,加上减少I帧达到了视频压缩的目的。
和ffmpeg压缩对比
使用ffmpeg将视频比特率调到和某商业公司压缩的视频差不多的大小,得到了差不多压缩率的视频,对比下来观感上差不多,理论上ffmpeg更清晰些。
对于此场景的下雨细节,2种压缩方法都很难保留,需要达到1m左右才能保留。
结论:从测试视频上看,某商业公司的压缩算法对比常见的编解码软件的视频压缩并没有算法技术上的优势
以下是单帧视频对比
某商业公司压缩
FFmpeg压缩:
某商业公司压缩
压缩后数据I帧大小140k左右,P帧大小大的有20k,大部分为1k多一点,平均为2.5k
Ffmpeg压缩:I帧数量24,平均大小189k,p帧平均大小几十b到29k,平均大小3k
ffmpeg压缩还会生成B帧平均大小为0.46k
从数据结果上看,FFmpeg的I帧数据保留更多,还使用了B帧编码,进一步的降低视频大小,从视频本身细节来看2个视频均为轻微损伤了清晰度,保留了绝大部分细节。