探索多媒体直播技术|青训营笔记
这是我参与「第四届青训营 」笔记创作活动的第5天
01 视频的基本元素
- 分辨率:纵横方向的像素数量
- 码率/比特率:单位时间传送bit的数目,单位bps,表示单位时间播放连续的美腿如压缩后的音视频的bit数量,也成为了码流; 越高的比特率需要更高的带宽来支撑,否则会带来卡顿、成本等问题;
太低的比特率,可能导致视频画面过度;压缩,模糊不清
-
ffmpeg:视频处理工具
-
ffplay:视频播放工具
-
ffprobe:视频分析工具
-
帧/帧率:刷新率
-
视频数据的封装:将已经编码压缩好的视频轨和音频轨按照一定的格式放到一个文件中;
-
轨道/流:视频流、音频流数据相互交错排列,形成混流;
02 视频压缩
-
颜色空间:YUV另一种颜色数字化表示方式(RGB不利于压缩),将较多的带宽留给黑白信号(亮度),较少的带宽留给彩色信号(色度);
-
压缩:利用视频画面的相关性减少冗余数据;
-
帧内压缩/空间压缩:仅考虑本帧的数据;
-
帧间压缩/时间压缩:基于许多视频或动画的连续前后两帧具有很大的相关性,利用前帧的冗余信息;
-
帧的编码类型:帧内帧(I)+前项预测帧(P)+双向预测帧(B);
不同场景对GOP配置需求不同
03 直播推拉流协议 封装格式:
-
MP4:容器式文件
-
FLV:流式文件
-
CDN(内容分发网络):构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近
-
推流协议
-
实时消息协议RTMP
-
拉流协议
-
HTTP-FLV
-
HTTP Live Streaming(HLS)苹果公司
04 客户端工作及总结 图像采集 图像处理 看播过程 音画同步
工具:videoview/exoplayber/ijkplayer