在博主之前的博文《在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