术语:
容器(Container):容器就是一种文件格式,比如flv,mkv等。包含下面5种流以及文件头信息。
流(Stream):是一种视频数据信息的传输方式,5种流:音频,视频,字幕,附件,数据。
帧(Frame):帧代表一幅静止的图像,分为I帧,P帧,B帧。(下文介绍)
编解码器(Codec):是对视频进行压缩或者解压缩的工具。
复用(mux):把不同的流按照某种容器的规则放入容器。
解复用(demux):把不同的流从某种容器中解析出来。
视频编码方式
硬编码:使用非CPU进行编码,如显卡GPU、专用的DSP、FPGA、ASIC芯片等
软编码:使用CPU进行编码,软编码通常使用:ffmpeg+x264
编码的流程:
采集--> 获取到视频帧--> 对视频帧进行编码 --> 获取到视频帧信息 --> 将编码后的数据以NALU方式写入到文件
视频编码协议:
H. 264:低码率,高质量,高容错 。(编码单位固定16*16)开源实现:ffmpeg、openh264、x264。
H. 265:能达到H.264两倍之压缩率,可支持4k分辨率,最高到8k。(编码单位8*8-64*64)开源实现:ffmpeg、libde265、x265。
二者比较:H.265更为先进,同样画质的