性能类问题

直播视频的同时在线观看人数有限制么?

目前我们的直播服务没有人数限制,理论上可以支持百万级到千万级用户同时在线观看。

直播视频的延迟如何?

直播视频的端到端延迟影响因素包括采集端、网络传输、播放端以及采用的输入输出协议。

直播中延迟的影响因素包括下列几种:

  1. 推流端设备的性能与网络状况。
  2. 播放端设备的性能与网络状况。
  3. 所使用的播放协议:一般来说,RTMP的延迟在2~4秒左右,HLS的延迟在10秒~20秒左右。RTMP输出流延迟会显著低于HLS输出流。

如何优化端到端的直播延迟?

在保障高质量流畅播放的前提下并取得较低延迟,您可以采用下列方法,对推流端、服务端、播放端分别设置。

推流端:

在推流端我们建议使用如下参数:

配置参数 推荐值
码率控制 不使用CBR,设置自定义缓冲区等于编码码率。
x264 CPU 预设(x264 preset) ultrafast
编码配置文件(H.264 profile) high
关键帧间隔(GOP length) 3秒或者(75~90帧)

推荐按照如下分辨率和码率的关系设置编码参数:

清晰度 分辨率 视频码率(kbps) 音频码率(kbps) 帧率(fps)
超高清1080p 1920X1080 2000 128 30
高清720p 1280X720 1200 128 30
标清480p 852X480 800 80 25
标清360p 640X360 440 80 20

例如采用OBS进行推流时,设置如下参数:

1.以直播采用标清480p为例,菜单栏选择“设定”->“编码”,设置视频最大比特率(码率),缓冲大小、关闭“使用CBR固定位率”,以及音频码率等,如下图所示:

2.菜单栏“设定”->“影像”中设置压缩分辨率,您可以从压缩分辨率选择与自己期望最接近的一项。本例期望分辨率为852x480,如下图所示:

3.菜单栏“设定”->“高级”中设置X264 CPU预设为ultrafast, 编码配置文件为high, 关键帧间隔为3秒,如下图所示:

说明:移动端用户建议您采用百度推出的推流端SDK,可以更好的减少端到端的延迟。

4.菜单栏“设定”->"广播设定",FMS URL输入推流地址的URL,播放路径/串码流输入token密钥,如下图所示:

至此,推流端(OBS)完成参数配置。

服务端:

您还可以在创建转码模板时,对模板参数进行设置,从而降低延迟。

HLS直播输出流,对HLS切片设置,分片时长设为3秒,TS切片数为3~4个,如下图所示:

播放端:

播放器缓存越长,端到端延迟越大。Flash播放器支持对最低缓冲长度的设置,建议用户在RTMP直播中使用1~2秒的缓冲长度,以百度Web播放器为例,建议设置缓冲长度为1s,如下图所示:

移动端用户采用下列播放设备,可以有效减少直播延迟时间:

  • IOS用户推荐采用iphone 5及以上设备,系统支持IOS 8.1以上。

  • Andriod用户推荐使用1~2年内生产的主流机型。

如何加速RTMP首屏加载时间?

LSS支持在CDN节点缓存最新的GOP数据(从关键帧开始的音视频数据),使得播放端能够快速加载视频画面。

系统默认开启缓存GOP,无需手动配置。凭借百度智能云的“追赶播放”专利技术,用于追赶播放当前最新幀之前的GOP缓存幀,以达到最小的端到端延迟,可在加速RTMP首屏加载时间的同时,不增加端到端的延迟。

直播视频的清晰度如何?

转发模式的直播,清晰度取决于视频输入端的清晰度,服务本身对清晰度未做处理;
转码模式的直播,清晰度取决于视频输入端及模板中转码的设置。

是否需要启用CDN加速?

不需要。LSS已默认启用CDN加速。