一、背景
直播行业大概在10年前就开始兴起了,秀场直播和游戏直播是pc时代比较成功的应用场景。现阶段,移动互联网的大规模普及,流量价格越来越便宜,移动视频直播异常火爆,随着各行各业的不断融合,直播带货超高的营业额,明星艺人、销售、秀场网红的涌入,直播行业迎来了空前的繁荣发展。从pc直播到渐渐火爆的移动直播,直播技术也在不断地更新迭代,趋于成熟。
本文从直播流的选择、交互优化、快速迭代等方面介绍携程直播技术。
二、直播原理
视频直播流程如下图。简单来说,推流端通过视频采集功能,把采集到的视频画面经过一系列的业务特效处理后,进行视频编码推送。拉流端使用流播放器把视频画面播放出来。
- 采集:视频采集的主要采集源:摄像头、屏幕录制、视频文件推流
- 处理:视频采集后得到原始数据,为了增强一些现场效果,需要在编码前进行处理(logo、美颜、变声)
- 编码:编码性能、编码速率和编码压缩比直接影响整个流媒体传送的用户体验和传送成本
- 推流:推流是直播的第一步。推流协议的选择会直接影响到观看的用户体验,常见的流协议(RTMP、HLS)
- 分发:流媒体服务器负责直播流的发布和转播分发功能
- 播放:直播终端的展示
前四步我们通常情况下称为推流操作,第五步称为服务分发或者cdn分发,第六步称为拉流操作。简化图如下:
推流操作中比较重要的两步是编码和推流。
2.1 编码
1)编码是什么
视频编码是压缩和可能改变视频内容格式的过程。
2)编码能做什么
a. 减少占用空间;
b. 兼容性;
在减少占用空间方面: