如果你尝试过渲染一段视频,或者做直播推流,一定会知道有H.264这么个东西,后来又出现了个H.265,这又是什么呢?其实他们都属于视频的编码格式,而我们平时所说的MP4、AVI、FLV、MOV这些,都属于封装格式,也就是一个水瓶子,
水瓶子里能装的液体有很多,那么能封装的编码格式也就各式各样了。封装格式把视频、音频、媒体信息、字幕等统统灌进去,但并不能决定我们的视频质量。而编码格式是一种压缩方式。
如果你坐拍一段视频,那么基本只有你的嘴在动,背景基本没有变化,这时候要是每一帧画面都全面记录一次,那么没拍多久你硬盘就满了。比方说不压缩的1080P60帧,一秒钟就能占用300+MB,非常恐怖。
而H264是一种帧间编码,只记录每一帧之间的变化,后期解码的时候只要在上一帧基础上算出变化就可以了,不仅大幅度缩小体积,还能保持比较好的画质。经过压缩后的1080P60也就占用小几十MB。
当然,不同的封装方式对应的编码格式也是不同的,常见的封装-编码格式表:
【MP4】H265、H264、MPEG4...【AVI】MPEG2、AC1、H264、DIVX、XVID...【MOV】MPEG2、H264、XVID...【WMV】WMV、AC1...【WebM】VP8、VP9...【RM/RMVB】RV、RM...【TS/PS】MPEG2、H264、MPEG4...【MKV】所有视频编码格式
不同的编码器虽然有微小的差别,但决定画质的,往往还是码率,码率越大,就意味着保存的信息量越多。
H264被MPEG组织称为AVC(Advanced Video Codec/先进视频编码),用来替代原有的MPEG4P2(DIVX、XVID),这些编码器也都是开源的。如果要转换的视频格式双方,都支持同一种编码器,那就可以直接把文件丢进FFmpeg、MediaCoder等软件中,一瞬间就可以转好。
iPhone的视频设置中的“兼容性最佳”对应的就是H264,而“高效”对应的就是H265。它属于下一代MPEG-H标准而非MPEG-4,比H264有着更强的压缩效率,被称为HEVC(High Efficiency Video Coding/高效视频编码)
H265使用了“块的四叉树划分结构”,从16x16像素的固定宏块,升级成了8x8 ~ 64x64的自适应划分,并加入了各种自适应预测、变换等编码技术,算法也经过优化,同码率下理论占用空间节省了50%足足一半,动态画面表现会更加清晰。
既然优点这么多,为什么还没有替代H264呢?甚至网络上依然都是H264。这是因为H265对性能要求不低。
源头上,压制H265的电脑成本不低;市面上,虽然已经有一些新手机、电视、CPU都支持硬解H265了,但更多的现存老设备都不能向上支持硬解,软解更吃不消。要是出个视频,只有买新设备才能看,那也太不公平了对吧。
另一方面,H265的商业授权费太贵,市场都没成熟呢,网络视频站点更不乐意花大钱推。但国内IDC带宽成本比较高,能降低一半的流量,无论对我们用户,还是对运营商,都是很香的,相信再过几年,H265就会迎来破土成芽的日子吧。