这是我参与「第四届青训营 」笔记创作活动的第5天
课程笔记
视频的基本元素
像素:是指在由一个数字序列表示的图像中的一个最小单位,称为像素,通常表现为一个小方格。每个像素有自己的颜色值,一般为RGB 三原色来表示。
RGB三原色:每种颜色都可用三个变量来表示-红色绿色以及蓝色的强度。记录及显示彩色图像时,RGB是最常见的一种方案。它们的取值,R、G、B分别从0到255,一共256个等级。
分辨率:指的是纵横方向的像素数量,一般表示为:宽高 (or 长宽),720*1080等
码率 / 比特率:表示单位时间内传送 bit 的数目,单位bps,表示是单位时间播放连续的媒体如压缩后的音视频的bit数量,也称为码流。
帧率:每秒传输帧数通俗来讲就是指动画或视频的画面数、帧率。每秒钟帧数越多,所显示的动作就会越流畅。
封装:对于任何一部视频来说,只有图像,没有声音,肯定是不行的。所以,视频编码后,加上音频编码,要一起进行封装。
视频压缩
视频播放的本质:将视频画面从封装文件中进行解码、渲染
GIF VS MP4
- GIF 图与 MP4 有点相似,都是包含了一组会动态图像的文件
- 相同内容的 GIF 和 MP4 文件体积相差非常大,GIF 会比 MP4 大上好几倍,主要原因是 GIF 缺少帧间编码,无法有效地利用图像间的相关信息
帧内压缩 / 空间压缩
当压缩一帧图像时,仅考虑本帧的数据而不考虑相邻帧之间的冗余信息,这实际上与静态图像压缩类似。
帧间压缩 / 时间压缩
帧间压缩(Interframe compression)也称为时间压缩(Temporal_compression),是基于许多视频或动画的连续前后两帧具有很大的相关性(即连续的视频其相邻帧之间具有冗余信息)的特点来实现的。
视频编码格式 H264 VS H265
-
H265 压缩比更高,需要更多的算力
-
H264 : AVC 更普及
-
H265 : HEVC 更小体积
直播推拉流协议
CDN:Content Delivery Network
建立并覆盖在Internet 之上,由分布在不同区域的边缘节点服务器群组成的分布式网络。通过智能调度将用户请求到最接近用户的服务节点,降低用户访问延迟,提升可用性。
边缘节点:指在靠近用户的网络边缘侧构建的业务平台,提供存储、计算、网络等资源,将部分关键业务应用下沉到接入网络边缘,以减少网络传输和多级转发带来的宽度和时延损耗
推拉流协议
- RTMP
- HTTP-FLV:HTTP + FLV
- HLS
课后总结
视频的基本元素
- 分辨率
- 帧率
- 码率
- 视频轨道
视频压缩
-
I、P、B 帧的特点
-
GOP 的概念
直播推拉流协议
对比不同视频场景的技术方案选取
对比 FLV 和 MP4 的封装特点
-
Moov:Movie Box,存储 mp4 的 metadata,一般位于mp4文件的开头。
-
mvhd:Movie Header Box,mp4文件的整体信息,比如创建时间、文件时长等
-
trak:Track Box,一个mp4可以包含一个或多个轨道(比如视频轨道、音频轨道) 以上资料来源于:【Android 客户端专场 学习资料二】第四届字节跳动青训营 - 掘金 (juejin.cn)