在上一篇中Mac上搭建直播服务器Nginx rtmp,我们已经搭建了nginx rtmp直播服务器。下面需要对Nginx服务器增加对HLS的支持。在Nginx增加对HLS种支持比较简单,只是简单的修改下配置文件nginx.conf即可。
有关nginx的编译和安装比较简单,请参考上一篇中Mac上搭建直播服务器Nginx rtmp。这里提示以下几点:
我们知道hls协议是将直播流分成一段一段的小段视频去下载播放的,所以假设列表里面的包含5个ts文件,每个TS文件包含5秒的视频内容,那么整体的延迟就是25秒。因为当你看到这些视频时,主播已经将视频录制好上传上去了,所以时这样产生的延迟。当然可以缩短列表的长度和单个ts文件的大小来降低延迟,极致来说可以缩减列表长度为
1,并且ts的时长为1s,但是这样会造成请求次数增加,增大服务器压力,当网速慢时回造成更多的缓冲,所以苹果官方推荐的ts时长时10s,所以这样就会大改有30s的延迟。参考资料:
/Conceptual/StreamingMediaGuide/FrequentlyAskedQuestions/FrequentlyAskedQuestions.html
ffmpeg推流还是和上一篇的一样,不过,我们需要推到新配置的hls中,movie关键字可以任何替换
通过上面的配置,我们可以同时通过rtmp和hls两种播放方式来看到推出来的流。注意,如果使用http方式,则是监听的端口,这个是在配置文件里写的
对于hls拉流,除了使用VLC播放之后,我们还可以在Safari浏览器里输入上面的地址直接播放,也可以用iPad或者iPhone上的Safari来访问(需要把localhost改为nginx的所在电脑的ip地址)
1、HLS中,我们想把推流生成的ts文件存放在指定的目录下,比如"/tmp/hls"
那么,我们也需要在http-->server中对root路径更改为:/tmp。要不然,会拉不到流。
roothtml是指使用当前nginx服务器根目录所在位置,指向的是/usr/local/var/www这个目录
我在使用这个插件的时候创建webapi项目没有controller文件夹,请问大佬这个问题如何解决