在博主之前的博文《在windows下搭建、配置nginx流媒体服务器,并进行rtmp流的推流、拉流测试》中讲述了在windows下搭建nginx流媒体服务器,使其支持rtmp协议的直播的方法。本文讲述使其支持hls协议的直播和rtmp点播的方法。
一、使nginx支持hls协议的直播
我们进入nginx 1.7.11.3 Gryphon文件夹的conf目录下,按照《在windows下搭建、配置nginx流媒体服务器,并进行rtmp流的推流、拉流测试》中的配置文件进行配置(在那篇博文中就已经将配置文件修改为支持hls的直播了)。然后在nginx 1.7.11.3 Gryphon目录新建文件夹m3u8File,如下图所示。
然后我们重启nginx,在命令提示符中输入推流命令如下:
ffmpeg -re -i video2.mp4 -vcodec copy -acodec copy -f flv rtmp://127.0.0.1/live/test1
执行上诉命令后,可以看到在目录m3u8File中已经有了m3u8和ts文件输出了,如下图所示:
我们通过vlc播放hls流
可以看到可以正常播放视频了,如下图所示:
注意:使用nginx进行hls切片,可能会出现切片时长不准确(实际得到的切片长度远大于设置的切片长度)的情况。这个可能是nginx无法设置GoP导致的,我们可以换成使用FFmpeg进行hls切片,具体方法可以参考博主的另一篇文章《使用FFmpeg命令进行hls切片,得到的ts文件时长不准确》。
二、使nginx支持点播
我们进入nginx 1.7.11.3 Gryphon文件夹的conf目录下,按照《在windows下搭建、配置nginx流媒体服务器,并进行rtmp流的推流、拉流测试》中的配置文件进行配置(在那篇博文中就已经将配置文件修改为支持点播了)。然后在nginx 1.7.11.3 Gryphon目录新建文件夹vod,如下图所示:
在vod目录中放入一个flv文件(貌似nginx的点播只支持flv文件,mp4文件是不支持的),如下图所示:
然后在vlc中输入url如下:
可以看到在vlc中可以播放媒体文件test.flv了,如下图所示:
ran