1.连续的图像变化每秒超过24帧(frame,fps)画面以上时,根据视觉暂留原理,人眼无法辨别单幅的静态画面,看上去是平滑连续的视觉效果,这样连续的画面叫做视频。
2.视频帧:一帧表示一张画面。
3.帧率:即单位时间内帧的数量,单位为:帧/秒 或 fps(frame per second)。
4.色彩空间:
(1)RGB:三基色,可以混合出所有的颜色。
(2)YUV:也叫YCbCr, 这是一种亮度与色度分离的色彩格式。
1)Y:亮度,就是灰度值。除了表示亮度的信号外,还含有较多的绿色通道量;
2)U:蓝色通道与亮度的差值;
3)V:红色通道与亮度的差值。
5.采用YUV的优势:
人眼对亮度敏感,对色度不敏感,因此减少部分UV的数据量,人眼无法感知出来,这样可以通过压缩UV的分辨率,在不影响观感的前提下,减少视频的体积。
6.音频数据的承载方式最常用的是脉冲编码调制,即PCM。
根据奈奎斯特采样定理:为了不失真地恢复模拟信号,采样频率应该不小于模拟信号频谱中最高频率的2倍。
PCM的采样步骤一般如下:
模拟信号 -> 采样 -> 量化 -> 编码 -> 数字信号。
7.采样率和采样位数:
(1)采样率,即采样的频。
(2)采样位数:采样器会采用一个固定为位数来记录采样值,通常有8位、16位、32位采样位数。采样位数越多,记录的值约精确,还原度越高,但是占用的硬盘空间越大。
8.码率:是指一个数据流中每秒钟能通过的信息量,单位bps(bit per second)。
码率 = 采样率 * 采样位数 * 声道数。
9.硬解码和软解码:
首先要有的知识储备:在手机或者PC上,都会有CPU、GPU或者解码器等硬件。通常,我们的计算都是在CPU上进行的,也就是我们软件的执行芯片,而GPU主要负责画面的显示(可以提供硬件加速)。下面再来看软解码和硬解码:
软解码:就是指利用CPU的计算能力来解码,通常如果CPU的能力不是很强的时候,一则解码速度会比减慢,二则手机或PC可能出现发热的现象。但是,由于使用同一的算法,兼容性会很好。
硬解码:指的是利用专门的解码芯片来加速解码。通常硬解码的解码速度会快很多,但是由于硬解码由各个厂家实现,质量参差不齐,兼容性较差。
10.正常人耳的音频范围一般约为16Hz~16kHz。
11.直播系统解决方案:
(1)视频采集与编码:FFmpeg
(2)直播流服务器:SRS或Nginx(Rtmp/hls)
(3)播放器:网页端Video.js + vlc (或者自己开发基于WebAssembly技术的网页端视频解码库,使用webgl+canvas实现网页无插件播放器)
学习资料参考 && 致谢:
1.https://ke.qq.com/course/list/%E7%A6%8F%E4%BC%98%E5%AD%A6%E8%8B%91?page=1