0、直播中的RTMP、RTSP、HTTP协议?
这三个协议都属于互联网 TCP/IP 五层体系结构中应用层的协议。理论上这三种都可以用来做视频直播或点播。但通常来说,直播一般用 RTMP、RTSP。而点播用 HTTP。下面分别介绍下三者的特点。
1,RTMP协议
RTMP是Real Time Messaging Protocol(实时消息传输协议)的首字母缩写。该协议基于TCP,是一个协议族,包括RTMP基本协议及RTMPT/RTMPS/RTMPE等多种变种。RTMP是一种设计用来进行实时数据通信的网络协议,主要用来在Flash/AIR平台和支持RTMP协议的流媒体/交互服务器之间进行音视频和数据通信。在直播中实现视频的推流与播放。
(1)是流媒体协议。
(2)RTMP协议是 Adobe 的私有协议,未完全公开。
(3)RTMP协议一般传输的是 flv,f4v 格式流。
(4)RTMP一般在 TCP 1个通道上传输命令和数据。
2,RTSP协议
(1)是流媒体协议。
(2)RTSP协议是共有协议,并有专门机构做维护。.
(3)RTSP协议一般传输的是 ts、mp4 格式的流。
(4)RTSP传输一般需要 2-3 个通道,命令和数据通道分离。
3,HTTP协议
(1)不是是流媒体协议。
(2)HTTP协议是共有协议,并有专门机构做维护。
(3)HTTP协议没有特定的传输流。
(4)HTTP传输一般需要 2-3 个通道,命令和数据通道分离。
————————————————
原文链接:
1、点播功能的流化文件格式?
1、FLV
FLV 是FLASH VIDEO的简称,FLV流媒体格式是随着Flash MX的推出发展而来的视频格式。由于它形成的文件极小、加载速度极快,使得网络观看视频文件成为可能,它的出现有效地解决了视频文件导入Flash后,使导出的SWF文件体积庞大,不能在网络上很好的使用等问题。可以实现网页的直播与点播功能;
2、HLS
HTTP Live Streaming(HLS)是苹果公司(Apple Inc.)实现的基于HTTP的流媒体传输协议,可实现流媒体的直播和点播,主要应用在iOS系统,为iOS设备(如iPhone、iPad)提供音视频直播和点播方案。HLS点播,基本上就是常见的分段HTTP点播,不同在于,它的分段非常小。Android设备目前也可以支持。
3、Mp4
2、互动直播和直播的区别是什么?
互动直播与普通的单向直播相比,赋予了观众“露脸发声”的权利,因此对实时性、抗回声的要求更高.
3、直播、互动直播、实时音视频、旁路直播的区别以及联系?
直播:(一对多,RTMP/HLS/HTTP-FLV,CDN)
直播是一种非常典型的流媒体系统,通常会分为推流端(Pusher)、拉流端(或者叫播放端,Player)以及直播流媒体中心(直播源站),通常会使用CDN进行直播的分发,因此大部分情况下使用的是通用标准的协议,如RTMP,而经过CDN分发后,播放时一般可以选择RTMP、HTTP-FLV或HLS(H5支持)等方式。直播的特点是只有一个推流端,以及多个的观看端。
实时音视频:(双人/多人通话,UDP私有协议,低延时)实时音视频(Real-Time Communication, RTC)
主要应用场景是音视频通话,技术关注点是低延时通信,因而使用基于UDP的私有协议,其延迟可低于100ms,适用于双人通话或是多人群组群话,典型的场景就是QQ电话、微信电话。 腾讯云实时音视频(TRTC)覆盖各平台,除了iOS/Android/Windows之后,还支持小程序以及 WebRTC 互通,并且支持通过云端混流的方式将画面旁路直播出去。当业务对延迟敏感,通话场景要求比较高,或是需要小程序或者 H5 场景下的双人或多人音视频通话可以选择实时音视频 TRTC。
互动直播:(连麦,二对多/多对多,私有协议+标准协议,DC/OC+CDN)
互动直播是在实时音视频的基础上,将实时音视频某个房间中的画面经云端混流后,通过旁路直播的方式直播出来。因此,互动直播主播与连麦者之间延迟与实时音视频一致,而主播/连麦者与普通观众之间的延时则与普通直播相同。
旁路直播:(关键词:云端混流,转推,CDN)
将主/副播实时音视频通话时的整个房间的画面复制一份到云端进行云端混流,并将混流后的画面推流给腾讯云直播系统的工作方式。 因为混流后的视频数据流和主/副播通话房间实际上并不是同一路流,而是在另外平行的一路,因而称为旁路,即不在主路。云端录制时,录制的流也是通过旁路的方式从流媒体中心引出,存到COS中。
4、旁路直播和进房间直播的区别?
5、如何降低延迟?
按正常情况 RTMP 推流 + FLV 播放的正常延迟在2秒 - 3秒左右,太长则是有问题的,如果您发现直播延迟时间特别长,可以按照如下思路来排查。
排查思路
Step 1. 检查播放协议
不少客户播放协议采用 HLS(m3u8),并感觉延迟较大,这个是正常的。苹果主推的 HLS 是基于大颗粒的 TS 分片的流媒体协议,每个分片都有5s以上的时长,分片数量一般为3个 - 4个,所以总延迟在20s - 30s就不足为怪。
换用 FLV 作为播放协议即可解决这个问题,但是要注意,如果您要在手机浏览器上观看直播视频,只有 HLS(m3u8) 这一种播放协议可以选择,其它的直播协议在苹果的 Safari 浏览器上都是不支持的。
Step 2. 检查播放器设置
腾讯云 RTMP SDK 的播放器支持极速、流畅和自动三种模式,具体设置请参考 延时调节:
极速模式:能保证绝大多数场景下延迟都在2秒 - 3秒以内,美女秀场适合这个模式。
流畅模式:绝大多数场景下延迟都在5秒以内,适合对延迟不敏感但对流畅度要求高的场景,例如游戏直播。
Step 3. 后台不要打水印
腾讯云支持后台打水印,目的是满足一些不能使用腾讯云 RTMP SDK 的推流器(支持直播端加水印)但依然要打水印的客户,但是这种方案会引入额外的三秒延迟,故如果您本身使用的是腾讯云 RTMP SDK 来推流,就把后台水印关闭后在主播端的 App 上加水印。
Step 4. 第三方推流器?
我们只能确保在腾讯云一体化解决方案中保持理想的效果,如果您使用的是第三方推流软件,建议您先换成腾讯云 RTMP SDK 的推流 Demo 做个对比,排除一下第三方推流器的编码缓存引入大延迟的可能,因为很多第三方的推流器对会暴力的采用无限缓冲的方式来解决上行带宽不足的问题。
Step 5. 检查 OBS 设置
不少客户反馈采用 OBS 推流,在播放端延迟比较大。建议按照 PC 推流 文档中配置对应的参数,并注意要把关键帧间隔设置为1或者2。