HLS RTP RTMP

HLS:网络协议HTTP M3U8索引文件 延迟很大

播放协议采用的是 HLS(m3u8)协议,并感觉延迟较大,这个是正常的。 HLS 协议是苹果主推的基于大颗粒的 TS 分片的流媒体协议,每个分片的时长通常在5秒以上,分片数量一般为3个 - 4个,所以总延迟在10秒 - 30秒左右。只能通过适当减少分片个数或者缩短每个分片的时长来降低延迟,但需要综合考虑对卡顿指标可能造成的影响。

 

RTP:网络协议UDP 

 

RTMP:延迟小

使用 RTMP 协议推流并通过 FLV 协议播放,延迟在2秒 - 3秒左右。

 

https://www.ckplayer.com/manual/8.html#m36

移动端(H5)环境中播放视频

虽然HTML5(下面简称:H5)的技术已整体趋于成熟,但在视频播放方面,如果跟pc端的flashplayer对比的话,功能就显的非常简单了。如果你决定要让你的视频支持在手机端播放的话,需要了解下面这些内容。

1:视频格式必需是mp4的,移动端不支持flv,如果是直播视频,格式应该是m3u8,移动端不支持rtmp协议的播放

2:H5不能把多个mp4合并成一个视频播放,如果视频切片的话请了解m3u8格式

3:H5的API总体来说还是够用的,比如用JS控制播放器的播放/暂停之类的。但复杂的操作就不支持了,比如调整亮度,对比度

4:H5的自动播放并不是所有的平台都支持,在有些环境(手机端),即使你设置了视频自动播放,环境也不允许该命令执行,必需经过用户点击才能播放。

5:H5在有些环境中(手机)必需点击全屏按钮才会触发视频播放。

总体说来,就是不同的平台(系统类型和浏览器类型)对H5并没有一个统一的标准。所以可能出现不同的问题,测试视频请多准备几个不同的手机。

点播注意事项及视频格式的选择

点播:即视频有总时长。

使用点播服务需要注意以下内容:

一:视频格式的选择

A:优先选择mp4格式的视频。

mp4视频格式有以下优点:

1:跨平台支持,即支持pc端和移动端(ios和安卓)。

2:该格式性能优越。

mp4视频的缺点:

1:视频时间长度过长时,在移动端会消耗大量的流量,但随着互联网流量资费的发展(将来流量是包月/年的,每月交一定费用,流量无限使用。)该缺点将不再存在。

2:视频文件相对大一些。对于服务器的空间占用方面会有一定压力。

视频本身的要求

1:视频转码格式需要是h.264

2:音频转码格式需要是AAC

3:如果考虑到需要支持在PC端低版本IE(IE9及以下)的环境中(在该环境中只能使用flashplayer播放)支持视频请求未下载到用户本地缓存区的内容播放。则需要视频本身存在关键帧和关键时间点(服务器方面也有要求)。关于这个可以查看下面的图示:

B:如果不能选择mp4格式,第二选择为m3u8。

m3u8的优点

1:因为视频被切成多个.ts文件,所以不需要考虑元数据的问题,并且可以分段加载。

2:在PC端使用flashplayer播放时可以实现视频的绝对加密。也就是视频即使是被下载到用户本地也无法使用。

m3u8的缺点

正常情况下不支持PC端的播放。ckplayer做了兼容是支持在pc端播放的,前提是pc端浏览器需要支持flashplayer

C:选择其它格式flv,f4v

优点是文件小,也可以像mp4一样支持在flashplayer环境中支持视频请求未下载到用户本地缓存区的内容播放.

缺点:

1:不兼容移动端,也不兼容PC端的h5环境。只能使用flashplayer播放。

2:文件清晰度要求高时文件会很大。

二:服务器方面的要求

如果该视频是mp4,flv,f4v格式并且需要兼容flashplayer的播放,并且需要支持视频请求未下载到用户本地缓存区的内容播放,则服务器的环境需要支持。具体的就是用户向服务器请求如:temp.mp4?start=60时,服务器能够直接从本视频的60秒发送数据流。

直播注意事项及视频格式的选择及web协议的选择

直播的视频协议有:rtmp,http,rtsp等等。

最常用的有二种:http,rtmp,当使用http协议的时候视频格式需要是m3u8、mp4或flv,下面作详细说明各种环境的优缺点。

首先,rtsp不能使用于网页环境(包含PC端和移动端)。

那么直播只能选择rtmp或http

rtmp协议只支持flashplayer,也就是只能在PC端(或安卓环境中安装了flashplayer组件,这种环境比较少)安装了flashplayer的情况下使用。按现在的趋势,flashplayer是要逐渐被淘汰掉的。当然,在中国还会存在相对长时间。

http协议的直播分两种格式,m3u8和flv。flv是一种即将被淘汰的直播格式。用来做直播已显的力不从心了。所以综合考虑,m3u8相对的比较好点,优点是支持移动端,并且支持PC端上安装了flashplayer的环境。缺点就如同rtmp一样。flashplayer并不是未来的发展趋势。另外一个缺点就是m3u8是有延迟的。并不能实时,实时传输方面不如rtmp协议。因为m3u8的直播原理是将直播源不停的压缩成指定时长的ts文件(比如9秒,10秒一个ts文件)并同时实时更新m3u8文件里的列表以达到直播的效果。这样就会有一个至少9,10秒的时间延迟。如果压缩的过小,可能导致客户端网络原因致视频变卡。

考虑到以上原因。现在并没有一种可以兼容性很好的视频格式或协议来做直播。目前最理想的环境就是pc端使用rtmp已达到减少延时的效果。而移动端只能使用m3u8格式直播,如果要求不是太高,建议直接使用m3u8做直播。

 

posted @ 2021-02-09 17:47  霓裳依旧  阅读(251)  评论(0编辑  收藏  举报