多媒体直播技术笔记 | 青训营笔记

174 阅读3分钟

今天是我参加【第四届青训营】笔记创作活动第10天

像素是组成图像的最小单位,每个像素本质上就是代表颜色的值,一般就是用RGB三原色来表示。RGB三原色具体指的是红色、绿色和蓝色,通过每种颜色的强度映射成的十六进制组合数就用来表示像素值,就是颜色的量化表示。

分辨率是由纵向和横向的像素堆积的数量决定。像素基数越大则分辨率代表越高,显示的图像画面越清晰。

码率/比特率,表示单位时间内传送bit的数目,单位为bps。通过改变码率可以让视频文件在保持帧率、分辨率的情况下减少文件体积。

帧为视频或者动画中的每一张画面,大量的帧构成视频和动画。

帧率表示每秒传输的帧数。

视频封装,将编码压缩好的视频轨和音频轨按照一定的格式放到一个文件中,封装之后再上传,就可以通过视频播放器进行解码观看。

视频压缩

帧内压缩/空间压缩

当压缩一帧图像时,仅考虑本帧的数据,将一张图画中的一些相似的像素保存一部分并将多余的丢弃,所以帧内压缩采用有损压缩。

帧间压缩/时间压缩

是基于多视频或动画的连续前后两帧具有很大的相关性的特点来实现,比如再连续的帧中画面可能并没有发生太多的变化。通过比较时间轴上不同帧之间的数据实施压缩,进一步提高压缩比,一般是无损压缩。I帧表示帧内帧,P帧表示向前预测帧,B帧表示双向编码帧,可以参考和插入在它之前和之后发生的相邻帧中,所以它可以显著降低帧的大小,同时保持视频质量。B帧能够利用空间冗余和时间冗余,使得在视频压缩中非常有用。

不同类型的帧组合成GOP,多个GOP组合构成完整的视频,如果改变进度后,不在同一个GOP中,需要从所在位置的GOP的I帧开始解码。

视频编码格式

H264:AVC更普及 H265:HEVC更小体积

直播推拉流协议

CDN:建立并覆盖在Internet之上。由于分布在不同区域的边缘节点服务器群组成的分布式网络。通过智能调度将用户请求到最接近用户的服务节点。

封装格式:MP4

Moov:存储mp4的metadata,一般位于mp4文件的开头。 mvhd:mp4文件的整体信息,比如创建时间、文件时长等。 trak:一个mp4可以包含多个轨道(视频轨道、音频轨道等)。

封装格式:FLV

FLV是一个二进制文件,由文件头和多个tag组成。tag分为三类:audio(音频流)、video(视频流)和script(脚本流)。

推拉流协议

RTMP、HTTP-FLV和HLS。

RTMP实时消息协议。TCP协议,低延迟,技术成熟,不支持H265,停止更新,使用1935端口,会被防火墙阻挡。FLV网络视频格式,协议友好,格式简单,便于分发。HLS苹果公司提出基于HTTP的流媒体网络传输协议。

标题:【Android 客户端专场 学习资料二】第四届字节跳动青训营 - 掘金

网址:juejin.cn/post/712345…