数字音视频基础
音视频构成:文件名,图像,声音,字幕播放一个视频文件的流程:
文章图片
三原色
- 由于人类肉眼有三种不同颜色的感光体,因此所见的色彩空间通常可以由三种基本色表达,这三种颜色被称为 三原色
- 叠加型:红色、绿色、蓝色。
- 消减型:品红色、黄色、青色。
- R、G、B(红、绿、蓝)
- Y、U、V (Y为亮色,U、V为色差)
其中yuv rgb 互转 公式 及算法Y
表示明亮度(Lumina nce或Luma),也就是灰阶值;
而U
和V
表示的是色度,作用是描述影响色彩及饱和度,用于指定像素的颜色
采样格式(YUV分量不同)
数字视频的采样格式有:
- 4:4:4 –色差分量没有下采样
- 4:2:2 – 色差分量进行水平下采样没有垂直下采样
- 4:1:1 – 色差分量进行了4:1的水平下采样没有垂直下采样
- 4:2:0 – 色彩分量分别进行2:1的水平和垂直下采样
视频动画原理
- 帧:视频的一个画面
- 帧率:单位时间内,从图像序列中所能获取的完整图片的数量,单位是fps(帧/秒)
- 视频分辨率:图像大小(横向zongxiang)
- 采样率:将模拟信号转换成数字信号时的采样频率,也就是单位时间内采样的多少点,一个采样点数据有多少个比特。单位Hz
- 码率:单位时间内传输的数据位数,通常以kbps或Mbps为单位
- 时间戳
- Windows视频采集技术
- Directshow
- VFW(Video for Windows)
- Directshow
- 基于com实现,提供了一系列视频数据操作接口
- 重要接口ISampleGrabberCB
STDMETHODIMP BufferCB(double dbISampleTime,byte *pBuffer,long IBufferSize);
- 摄像头原始数据
YUV,RGB - 按照ITU601的建议,传输1秒钟的PAL制式信号的原始数据量为:
720*576*16*25/8 = 20736000 byte = 20MB/s
1GB硬盘存:1GB/20MB = 51s的节目 - 结论:要使数字电视信号适合于实际存储和传输,必须压缩数据。
- 前提:压缩后图像质量要满足视觉要求;
将视频像素数据(RGB,YUV等)压缩成为视频码流,从而降低视频的数据量
常见视频编码格式:
文章图片
音频编码数据
将音频采样数据(PCM等)压缩成为音频码流,从而降低音频的数据量
常见音频编码格式:
文章图片
视频像素数据
保存了屏幕上每个像素点的像素值。 常见的像素数据格式有RGB24, RGB32, YUV420P,YUV422P,音频采样数据
YUV444P等。压缩编码中一般使用的是YUV格式的像素数据,最为常 见的格式为YUV420P。
保存了音频中每个采样点的值。 音频采样数据体积很大,一般情况下一首4分钟的PCM格式的 歌曲体积为:视频压缩标准发展史
4*60*44100*2*2=42.3MByte PS:这里假定采样率为44100Hz,采样精度为16bit。
视频压缩标准发展历史(一)
国际视频压缩标准
视频编码与压缩技术发展史
封装格式
【数字音视频基础】
文章图片
- 封装格式
TS,AVI,MKV,Mpeg,MOV,M2T等等,不同的封装方式就像是不同的盒子,高清视频要用它装起来才能呈现给观众。
- 录音(PCM) —> 音频数据压缩(aac) —> 封装(mp4,mkv,flv…)
- 录像(YUV420) —> 视频数据压缩(h264) —> 封装(mp4,mkv,flv…)
- 文件播放
- 本地(网络)视频 —— 解协议(http,rtmp,file) —— 解封装(mp4,mlv,avi,wmv,…) —— 视频解码(h264,h263,h265…) —— 图像数据到显卡
- 音频解码(aac,g729,g711…) —— 声音数据至声卡
- 视频采集(YUV420) ——> 视频压缩(H264/H265 NALU) ——> 缓冲区 ——> RTP/RTMP传输(rtp包) ——> 网络传输(UDP,IP包) ——> INTERNET ——>UDP,IP解包 ——>RTP解包(NALU)——> 缓冲区 ——> H264/H265视频解码(YUV420) ——> 视频播放(YUV)
- 音视频相关知识学习博客:雷霄华
- 视频采集:DirectShow(api)
- 视频剪辑: 格式工厂,会声会影
- 视频播放器: potplayer,vlc,ffplay;
- 视频编解码工具: ffpmeg + api