直播基础知识

343 阅读4分钟

视频码率:

     是指视频文件在单位时间内使用的数据流量,也叫码流率。码率越大,说明单位时间内取样率越大,数据流精度就越高,这样表现出来的的效果就是:视频画面更清晰画质更高。

视频帧率:

         通常说一个视频的25帧,指的就是这个视频帧率,即1秒中会显示25帧;视频帧率影响的是画面流畅感,也就是说视频帧率超高,表现出来的效果就是:画面越显得流畅。你也可以这样理解,假设1秒只显1帧,那么一段视频看起来,就是有很明显的卡顿感,不流畅不连惯。当然视频帧率越高,意味着画面越多,也就相应的,这个视频文件的大小也会随之增加,占用存储空间也就增大了。

视频分辨率:

     分辨率就是我们常说的600x400分辨率、1920x1080分辨率,分辨率影响视频图像的大小,与视频图像大小成正比:视频分辨率越高,图像越大,对应的视频文件本身大小也会越大

常见的直播协议有哪些?

目前常见的直播协议有三种:RTMP、 FLV 和 HLS。

  • RTMP:RTMP 协议比较全能,既可以用来推送又可以用来直播,其核心理念是将大块的视频帧和音频帧“剁碎”,然后以小数据包的形式在互联网上进行传输,而且支持加密,因此隐私性相对比较理想,但拆包组包的过程比较复杂,所以在海量并发时也容易出现一些不可预期的稳定性问题。
  • FLV:FLV 协议由 Adobe 公司主推,格式极其简单,只是在大块的视频帧和音视频头部加入一些标记头信息,由于这种极致的简洁,在延迟表现和大规模并发方面都很成熟,唯一的不足就是在手机浏览器上的支持非常有限,但是用作手机端 App 直播协议却异常合适。
  • HLS:苹果推出的解决方案,将视频分成 5-10 秒的视频小分片,然后用 m3u8 索引表进行管理,由于客户端下载到的视频都是 5-10 秒的完整数据,故视频的流畅性很好,但也同样引入了很大的延迟(HLS 的一般延迟在 10-30s 左右)。相比于 FLV, HLS 在 iPhone 和大部分 Android 手机浏览器上的支持非常给力,所以常用于 QQ 和微信朋友圈的 URL 分享。

image.png

常见的点播协议有哪些?

目前常见的点播格式有三种:MP4、HLS 和 FLV。

  • MP4:非常经典的文件格式,在移动终端和 PC 浏览器上的支持度都很好(在 iOS 和大部分 Android 设备上,都可以使用系统浏览器进行播放,在 PC 上可以使用 Flash 控件进行播放),但是 MP4 的视频文件格式比较复杂,所以处理成本高,而且由于索引表复杂度高,导致时长稍大(比如半小时)的 MP4 文件在线播放时加载速度会很慢。
  • HLS:苹果公司力推的标准,在移动终端的浏览器上的支持度较好,但 IE 的支持情况依赖 Flash 的二次开发工作(建议使用腾讯视频云的 Flash 播放器控件),其精简的 m3u8 的索引结构可以规避 MP4 的索引慢问题,如果是用于点播,是非常不错的选择。
  • FLV:Adobe 公司所推的标准,目前直播平台最常用的封装格式,在 PC 端有 Flash 的强力支持,但在移动终端只有 App 实现播放器才有可能支持(或者使用本播放器),大部分手机端浏览器均不支持,目前腾讯视频云的直播录制,采用的就是 FLV 视频格式。

image.png

image.png

参考文献

cloud.tencent.com/document/pr…

cloud.tencent.com/document/pr…

hls 有俩部分组成 m3u8 和 ts

m3u8:描述文件

ts:媒体文件