本课程主要从
- 音视频采集
- 音视频编码
- 音视频协议封装传输
- 音视频协议解封装
- 音视频解码
- 音视频播放
关于Jessibuca
- 官网地址:jessibuca.com
- Demo: Demo
- Doc:Doc
- Github地址:Github
关于JessibucaPro
- 地址:JessibucaPro
- Demo: Demo
- AI:AI
- 插件:插件
第三章:音视频封装传输
主要是将音视频传输到流媒体服务器上面去。
直播
flv
FLV 是 FLASH VIDEO 的简称, FLV流媒体格式是一种新的视频格式,全称为Flash Video。
优缺点
优点
- 基于http协议,可以在一定程度上避免防火墙的干扰,可以很好地兼容HTTP302跳转,做到灵活调度。
缺点
- 延迟较高
rtmp(rtsp)
RTMP(Real Time Messaging Protocol) 是由 Adobe 公司基于 Flash Player 播放器对应的音视频 flv 封装格式提出的一种,基于TCP 的数据传输协议。
优缺点
优点
- 本身具有稳定、兼容性强、高穿透的特点。
- 延迟低
缺点
- web端不支持
webrtc
WebRTC 是一个支持网页浏览器进行实时语音对话或视频对话、进行实时数据传输(Web Real-Time Communication)的 JavaScript API。
优缺点
优点
- 低延迟
缺点
- 不支持移动端
webrtc传输的demo:transfer-by-webrtc
websocket
WebSocket是一种网络传输协议,可在单个TCP连接上进行全双工通信,位于OSI模型的应用层。
优缺点
优点
- websocket支持服务器推送消息,这带来了及时消息通知的更好体验。
缺点
- 服务器长期维护长连接需要一定的成本
- 各个浏览器支持程度不一
- websocket 是长连接,受网络限制比较大,需要处理好重连,比如用户进电梯或电信用户打个电话网断了,这时候就需要重连
websocket 传输的demo:transfer-by-websocket
点播
hls
HLS 由 TS 和 M3U8 两部分组成:
- .m3u8 文件:以 UTF-8 编码的 m3u 文件。
- .ts 视频文件:一个 m3u8 文件对应着若干个 ts文件。
优缺点
优点
- 穿墙能力强:由于HLS是基于HTTP协议的,因此HTTP数据能够穿透的防火墙或者代理服务器HLS都可以做到,基本不会遇到被防火墙屏蔽的情况。
- 切换码率快(清晰度):自带多码率自适应,客户端可以选择从许多不同的备用源中以不同的速率下载同样的资源,允许流媒体会话适应不同的数据速率。客户端可以很快的选择和切换码率,以适应不同带宽条件下的播放。
- 负载均衡:HLS基于无状态协议(HTTP),客户端只是按照顺序使用下载存储在服务器的普通TS文件,做负责均衡如同普通的HTTP文件服务器的负载均衡一样简单。
缺点
- 延时相对较高,延时包含了 TCP 握手、m3u8 文件下载与解析、ts 文件下载与解析等多个步骤。虽然可以缩短列表的长度和限制单个 ts 文件的大小来降低延迟,但是会造成请求次数增加,服务器压力增大。
- 文件碎片化严重:对于点播服务来说, 由于 TS 切片通常较小, 海量碎片在文件分发, 一致性缓存, 存储等方面都有较大挑战.
webm
WebM 由 Google 提出,是一种专为 Web 设计的开放,免版税的媒体文件格式。WebM 文件包含使用 VP8 或 VP9 视频编解码器压缩的视频流和使用 Vorbis 或 Opus 音频编解码器压缩的音频流。
优缺点
优点
- 许可——这种视频格式的主要优势之一是它是免版权的。诸如MP4(H.264)之类的格式存在各种许可问题,但是WebM凭借其开源许可使事情变得简单。
- 质量——关于VP8,VP9与H.264,H.265的质量有几种意见。但他们中的大多数人都同意,质量在某种程度上是平等的。
- 大小——由于技术的作用是压缩文件,使得WebM的整体大小比MP4小得多,WebM视频的访问量更大,文件可以快速从网上下载。
缺点
- 与其兄弟相似,WebM的主要缺点是浏览器兼容性。到目前为止,Safari和IE尚未完全支持WebM。
- 较少的媒体播放器支持WebM视频或需要安装组件或插件。
- WebM视频无法在大多数便携式设备上播放。但这正在改变。
mp4
在MP4文件格式中,整个视频容器都是由多个box和子box组成,根据box类型主要分为3大类:视频类型(ftyp)、视频数据(mdat)、视频信息(moov)。视频信息(moov)用来描述视频数据(mdat)。
优缺点
优点
- 兼容性非常好,几乎所有的设备都支持mp4格式。
缺点
- 占用空间较大。