直播播放

最近更新时间:2019-08-14 17:08:25

直播播放协议

云直播目前支持 RTMP 协议推流,播放则支持 RTMP、HTTP-FLV、HLS 三种协议,我们推荐您使用 HTTP-FLV+HLS 协议。

  • HTTP-FLV 在移动应用以及 PC 应用有较好的支持,并且 HTTP-FLV 延时低,卡顿率小。
  • HLS 支持所有苹果浏览器(可以直接用 HLS 播放地址在 safari 播放),同样微信、QQ 也支持直接使用 HLS 播放地址播放视频流,HLS 可直接用于微信、QQ 分享播放。

如何获取播放地址

腾讯云播放地址主要由播放前缀、播放域名(domain)、应用名称(AppName)、流名称(StreamName)、播放协议后缀、鉴权参数以及其他自定义参数组成。
例如:

rtmp://domain/AppName/StreamName?txSecret=xxxxxxxx&txTime=xxxxxx
http://domain/AppName/StreamName.m3u8?txSecret=xxxxxxxx&txTime=xxxxxx
http://domain/AppName/StreamName.flv?txSecret=xxxxxxxx&txTime=xxxxxx
https://domain/AppName/StreamName.m3u8?txSecret=xxxxxxxx&txTime=xxxxxx
https://domain/AppName/StreamName.flv?txSecret=xxxxxxxx&txTime=xxxxxx
  • 播放前缀

    • RTMP 播放协议:rtmp://
    • HTTP-FLV 播放协议:http:// 或者 https://
    • HLS 播放协议:http:// 或者 https://
  • 播放域名

  • 应用名称(AppName)
    应用名称指的是直播流媒体文件存放路径,默认云直播会分配一个路径:live

  • 流名称(StreamName)
    流名称(StreamName)是指每路直播流唯一的标识符。

  • 鉴权参数以及其他自定义参数
    鉴权参数:txSecret=xxxxxxxx&txTime=xxxxxx

使用播放转码

考虑到不同的网络因素,满足您使用不同码率不同分辨率的需求,您可以前往 转码配置 设置不同码率不同分辨率的转码模板(关于转码相关详细介绍请参见 最佳实践 - 直播转封装及转码)。

原始、高清、标清场景

在业务播放场景中,一般会用到三个码率:原始、高清、标清。

  • 原始流与推流码率分辨率一致。
  • 高清流建议使用码率:2000kbps,分辨率:1080p。
  • 标清流建议使用码率:1000kbps,分辨率:720p。

使用时移回看

假如您想回看过去某段时间的精彩内容,您可以使用时移功能,时移功能目前仅支持 HLS 协议。具体时移的相关介绍以及开通方法请参考 最佳实践 - 直播时移

使用 HTTPS 播放

若您的播放域名需要支持 HTTPS,您需要准备好有效的证书内容、有效私钥内容前往 域名管理,选择【播放域名管理】>【高级配置】>【HTTPS配置】添加配置,添加成功之后会有个生效时间(2小时),在生效后您的直播流就可以支持 HTTPS 协议播放。

使用海外加速节点播放

云直播 CDN 节点不仅遍布中国大陆区域,同样在全世界各个大洲也有节点覆盖,覆盖广并且稳定。假如您的用户分布在中国香港、中国澳门、中国台湾或海外其他地区,您可以通过在 域名管理 中配置域名时候加速区域选择【全球加速】或【中国港澳台地区及海外地区】,来获得海外节点覆盖的支持。

注意:

云直播海外加速目前仅支持 HTTP-FLV + HLS 协议。

播放防盗链

为防止非法用户盗取您的播放 URL 在别处播放,造成流量损失,强烈建议您给播放地址加上播放防盗链,防止因盗链产生不必要的损失。云直播的播放防盗链主要由四个参数值控制:txTime、key(哈希密钥)、txSecret、有效时间。

参数说明

  • txTime
    播放 URL 的有效时间,格式为16进制 UNIX 时间。如果当前 txTime 的值大于当前请求的时间则可以正常播放,否则播放会被后台拒绝。
  • key
    key 作为 MD5 计算方式的密钥,可以自定义,并可以设置主备两个 key。当您的主 key 意外泄露的时候,您可以使用备用 key 进行拼接播放 URL,并同时更改主 key 的值。
  • txSecret
    播放 URL 中的加密参数,其值是通过将 key,StreamName,txTime 依次拼接的字符串进行 MD5 加密算法得出。

    txSecret = MD5(key+StreamName+txTime)。

  • 有效时间
    有效时间设置必须大于0,假设 txTime 设置为当前时间,有效时间设置为300s,则播放 URL 过期时间为当前时间 + 300s。

防盗链计算

防盗链计算需要三个参数,key(随机字符串)、流名称(StreamName) ,txTime(16进制格式)。
假设您设置的 key 为 somestring,流名称(StreamName)为 test,txTime 为 5c2acacc(2019-01-01 10:05:00)。高清码率为:900kbps,转码模板名称为:900
原始流播放地址:

txSecret = MD5(somestringtest5c2acacc) = b77e812107e1d8b8f247885a46e1bd34
http://domain/live/test.flv?txTime=5c2acacc&txSecret=b77e812107e1d8b8f247885a46e1bd34
http://domain/live/test.m3u8?txTime=5c2acacc&txSecret=b77e812107e1d8b8f247885a46e1bd34

高清流播放地址:

txSecret = MD5(somestringtest_9005c2acacc) = 4beae959b16c77da6a65c7edda1dfefe
http://domain/live/test_900.flv?txTime=5c2acacc&txSecret=4beae959b16c77da6a65c7edda1dfefe
http://domain/live/test_900.m3u8?txTime=5c2acacc&txSecret=4beae959b16c77da6a65c7edda1dfefe

开启播放防盗链

前往 域名管理 页面,进入【播放域名管理】>【访问控制】>【编辑】。

注意:

  • HTTP-FLV:正在播放的 URL 在 txTime 过期后依然能正常播放,在 txTime 过期后重新请求播放则会拒绝。
  • HLS:由于 HLS 是短链接,会不断的请求 m3u8 获取最新的 ts 分片。假设您设置 txTime 的值为当前时间 + 10分钟,则在10分钟之后 HLS 播放 URL 请求会被拒绝。针对这个问题您可在业务端动态更新 HLS 的请求地址,或者将 HLS 的播放地址过期时间设置久一点。

如何播放

移动端播放

如果您需要集成直播功能到您的移动产品,您可以使用我们直播 SDK,它可以支持您这边播放 RTMP、HTTP-FLV、HLS 直播播放,详细请参见 移动直播产品

Web 播放

如果您需要在 PC 浏览器或者移动手机浏览器播放直播视频流,您可以选择腾讯云超级播放器(Player+),它基于腾讯云强大的后台能力与 AI 技术,提供视频直播和点播的强大播放能力,Player+ 深度融合腾讯视频云直播、点播服务,拥有流畅稳定的播放性能,集广告植入、数据监测等功能于一身,关于腾讯云 Web 超级播放器详解可以前往 TCPlayerLite 参考。

注意:

目前市面上大多数手机浏览器不支持 HTTP-FLV 播放,因此我们建议您在 Web 播放时的协议选择最好是 PC 浏览器用 HTTP-FLV 协议播放直播流,手机浏览器用 HLS 播放直播流。

播放实践

在测试直播流的时候您可以使用 VLC、FFmepg 及 TCPlayerDemo 等工具进行播放体验。