推流、直播和点播分别是什么?
推流:主播将本地视频源和音频源推送到腾讯视频云服务器,在有些场景中也被称为“RTMP 发布”。
直播:直播的视频源是实时生成的,有人推流直播才有意义,一旦主播停播,直播 URL 也就失效了,而且由于是实时直播,所以播放器在播直播视频的时候是没有进度条的。
点播:点播的视频源是云端的一个文件,文件只要没有被提供方删除就随时可以播放(类似腾讯视频), 而且由于整个视频都在服务器上,所以播放的时候是有进度条的。
云直播播放域名有什么要求?
直播域名接入播放域名和推流域名可以是同一个吗?能使用二级域名吗?
接入播放域名和推流域名必须是不同的两个域名,但可以通过二级域名来进行区分,不局限于是否两个子域名。
例如:
123.abc.com
用于推流域名,456.abc.com
用于播放域名。支持哪些推流协议?
云直播支持的推流协议包括:RTMP、SRT 、WebRTC、和 RTMP over SRT。
RTMP 协议:虽然在直播领域RTMP逐渐被其他低延迟协议替代,但在推流服务方面,即从“主播”到“服务器”的方向上,RTMP 依然占据主导地位。目前,国内的视频云服务主要以 RTMP 作为推流协议,而推流 SDK(例如 TXLivePusher)也被称为 RTMP SDK。
SRT 协议:TS over SRT 推流通过 SRT 协议直接传输包含音视频数据的 TS 流,下行复用了现有直播系统。TS over SRT 已成为 Haivision 硬件及 OBS 的推流格式标准。
WebRTC 协议:云直播提供了推流 SDK(如 TXLivePusher)用于 Web推流,负责将浏览器采集的音视频画面通过 WebRTC 协议推送到直播服务器。支持多种采集方式,如摄像头采集、麦克风采集、屏幕分享采集、本地媒体文件采集和用户自定义采集等。同时,支持对采集到的内容进行本地混流处理后推送到后端服务器。您可以在 Web 端进行 WebRTC 推流,或在 PC 端使用 OBS 工具进行 WebRTC 推流。具体操作方法请参考 OBS WebRTC 推流 相关内容。使用 Web 进行 WebRTC 推流的优点是无需安装额外的软件,只需在浏览器中操作即可。
RTMP over SRT:传输层将 TCP 替换成 SRT,通过 SRT 的低延迟和高抗丢包特性,极大减少 RTMP 在弱网及网络波动时对传输质量的影响,提升整体直播的观看体验。
支持哪些播放协议?
目前常见的直播协议包括:RTMP、 FLV、HLS 和 WebRTC。
RTMP:RTMP 协议比较全能,既可以用来推送又可以用来直播,其核心理念是将大块的视频帧和音频帧拆分,然后以小数据包的形式在互联网上进行传输,而且支持加密,因此隐私性相对比较理想,但拆包组包的过程比较复杂,所以在海量并发时也容易出现一些不可预期的稳定性问题。
FLV:FLV 协议由 Adobe 公司主推,格式极其简单,只是在大块的视频帧和音视频头部加入一些标记头信息,由于这种简洁,在延迟表现和大规模并发方面都很成熟,唯一的不足就是在手机浏览器上的支持非常有限,但是用作手机端 App 直播协议却异常合适。
HLS:苹果推出的解决方案,将视频分成5秒 - 10秒的视频小分片,然后用 m3u8 索引表进行管理,由于客户端下载到的视频都是5秒 - 10秒的完整数据,故视频的流畅性很好,但也同样引入了很大的延迟(HLS 的一般延迟在10秒 - 30秒左右)。相比于 FLV, HLS 在 iPhone 和大部分 Android 手机浏览器上的支持非常给力,所以常用于 QQ 和微信朋友圈的 URL 分享。
WebRTC:名称源自网页即时通信(Web Real-Time Communication)的缩写,是一个支持网页浏览器进行实时语音对话或视频对话的API。它于2011年06月01日开源并在 Google、Mozilla、Opera 支持下被纳入万维网联盟的 W3C 推荐标准。快直播正是用的 WebRTC 协议,它是标准直播在超低延迟播放场景下的延伸,比传统直播协议延迟更低,为观众提供毫秒级的极致直播观看体验。 能够满足一些对延迟性能要求更高的特定场景需求,例如在线教育、体育赛事直播、在线答题等。
直播协议 | 优点 | 缺点 | 播放延迟 |
FLV | 成熟度高、高并发无压力 | 需集成 SDK 才能播放 | 2s - 3s |
RTMP | 延迟较低 | 高并发情况下表现不佳 | 1s - 3s |
HLS(m3u8) | 手机浏览器支持度高 | 延迟非常高 | 10s - 30s |
WebRTC | 延迟最低 | 需集成 SDK 才能播放 | < 1s |
播放地址由什么组成?
腾讯云播放地址主要由播放前缀、播放域名(domain)、应用名称(AppName)、流名称(StreamName)、播放协议后缀、鉴权参数以及其他自定义参数组成,如下:
rtmp://domain/AppName/StreamName?txSecret=Md5(key+StreamName+hex(time))&txTime=hex(time)http://domain/AppName/StreamName.m3u8?txSecret=Md5(key+StreamName+hex(time))&txTime=hex(time)http://domain/AppName/StreamName.flv?txSecret=Md5(key+StreamName+hex(time))&txTime=hex(time)https://domain/AppName/StreamName.m3u8?txSecret=Md5(key+StreamName+hex(time))&txTime=hex(time)https://domain/AppName/StreamName.flv?txSecret=Md5(key+StreamName+hex(time))&txTime=hex(time)webrtc://domain/AppName/StreamName?txSecret=Md5(key+StreamName+hex(time))&txTime=hex(time)
播放前缀
RTMP 播放协议:rtmp:// 。
HTTP-FLV 播放协议:http:// 或者 https:// 。
HLS 播放协议:http:// 或者 https:// 。
WebRTC 播放协议:webrtc://。
应用名称(AppName)
应用名称指的是直播流媒体文件存放路径,默认云直播会分配一个路径:live。
流名称(StreamName)
流名称(StreamName)是指每路直播流唯一的标识符。
鉴权参数以及其他自定义参数
鉴权参数:txSecret=Md5(key+StreamName+hex(time))&txTime=hex(time)。
常见的推流方式?
移动端 Android/iOS,使用摄像头:使用第三方软件或 直播 SDK 采集摄像头视频,并推送视频流至直播流推流地址。
台式机或笔记本,使用摄像头或桌面录屏:使用第三方软件采集摄像头视频或桌面图像,将视频或桌面内容推流至直播流推流地址。第三方推流软件包括:OBS(推荐)、XSplit、FMLE 等。
视频采集设备:高清摄像机类设备如果具备 HDMI 或者 SDI 输出接口,可以接入编码器,以 RTMP 推流的方式向直播服务推送直播内容,您需要将直播推流地址配置到编码器的 RTMP 发布地址。
网络摄像头类设备,如果支持 RTMP 推流,则可将直播推流地址配置到摄像头的 RTMP 发布地址。
视频文件转视频流:读取某个视频文件,并以 RTMP 流方式输出作为视频源来向直播服务的 RTMP 推流地址进行视频发布。可以使用
ffmpeg
命令来实现(Windows、Linux 及 Mac 均适用)。断流和禁播的区别?
断流功能:一条直播中的流,如果断流,则本次推流会被中断,观众端将无法观看直播。断流后,主播端可以再次发起推流,继续直播活动。
禁播功能:一条直播中的流,如果禁播,则本次推流会被中断,观众端将无法观看直播。断流后,主播端在禁播时间内无法再次发起推流,禁播功能可通过云直播控制台的流管理页面配置,禁用后的直播流展示于禁播流列表页,单击 启用 后可恢复使用。
直播可以测试吗?
新用户开通云直播服务,会免费获得 20GB 的标准直播国内流量套餐包,有效时间1年。开通后默认计费方式为日结流量后付费,此时测试产生的标准直播国内播放流量可以使用该套餐包抵扣,超出套餐部分按照后付费日结计费,其他增值功能(直播水印、转码、录制、截图、鉴黄等)默认关闭,按需开启使用并计费,详细计费项可参见 标准直播 。
注意:
流量包仅限标准直播日结流量后付费抵扣,其他产品或计费方式不支持抵扣。
直播是否支持文字聊天功能?
文字聊天功能属于即时通信 IM 产品提供的服务,除此之外,即时通信 IM 还支持弹幕评论、点赞送礼、商品推送、轮播公告等互动,和通过房间管理功能实现主播连麦 PK,对观众禁言权限管理,用户身份标识等功能。
申请直播使用结束后,是否可以更换账号重新申请呢?
不同腾讯云账号完成实名认证后,均可开通云直播服务。
注意:
直播是否支持在小程序中使用?
非企业用户商用直播是否需要网络文化经营许可证?
试用直播服务是不需要许可证的,但您把直播内容用作商用的用途(例如 App、网站),需要先跟相关部门确认并准备相关的直播资质(例如:网络文化经营许可证、增值电信许可证等)。
云直播是可以直接用的软件吗?
不是,云直播是需要通过接口进行二次开发的产品。
直播观看人数怎么查看?
支持哪些流媒体协议互转及接入转推?
支持 RTP、SRT、RTMP、UDP 等常见流媒体协议互转及接入转推。