Windows下給予Nginx構建流媒體推拉流測試環境

一、什麼是媒體服務器

媒體服務器這個名詞最初來自於NGN(下一代網絡),在軟交換設備控制下提供IP網絡上各種媒體資源管理功能,含視頻、音頻、圖片、圖文消息等等。

後來逐漸演化爲流媒體服務器,從而提供以流的方式推送、存儲、拉動媒體資源,尤其是實時和準實時的音視頻資源。

應用領域包括視頻直播、視頻點播、短視頻、視頻會議、遠程教育、遠程醫療等。

著名的開源媒體服務器,包括Red5 ServerLive555EasyDarwinOpen Streaming ServerNginx+RTMP等。

二、什麼是Nginx

當前(2020),web服務大量使用Nginx作爲反向代理服務器。

Nginx最初由俄國人伊戈爾·賽索耶夫在2004年開發,採用BSD許可證。

除了反向代理外,Nginx還是一個輕量級web server,是Apache web server的替代者,併發連接數可以達到5萬以上。

另外,Nginx還能被用來搭建負荷均衡服務器和郵件代理服務器。

更主要的是,nginx配合RTMP插件能夠適應直播潮流,成爲性能優良的流媒體服務器。

 

三、Windows下編譯nginx

1,官網下載地址:http://nginx.org/en/download.html,需要下載源代碼自行編譯。

2,現成的編譯好的發佈版本:

http://nginx-win.ecsds.eu/download/nginx%201.7.11.3%20Gryphon.zip

解壓後放到D:\nginx-1.7.11.3-Gryphon

image.png

3,啓動:雙擊啓動或者在cmd下輸入start nginx

4,驗證:

1)在瀏覽器中輸入http://localhost/

image.png

2tasklist /fi "imagename eq nginx.exe"

image.png

3netstat -ano | findstr "80"

image.png

5,修改配置

配置文件是conf\nginx.conf,如果沒有,則把nginx-win.conf拷貝一份,重新命名爲nginx.conf

例如,修改偵聽端口爲8080(默認80):

image.png

修改配置後使用nginx -s reload刷新:

image.png

四、設置流媒體服務

重新把nginx.conf命名爲nginx-old.conf,把nginx-win-rtmp.conf拷貝一份重新命名爲nginx.conf

檢查如下配置:

 image.png

重啓:

    nginx.exe -s stop

    start nginx

image.png

也可以用如下命令:

nginx.exe -s quit

Start nginx

image.png

另,直接終止進程再啓動也是可行的:

    image.png

驗證:

image.png

五、FFMPEG推流

1,什麼是FFMPEG

2,下載

http://www.ffmpeg.org/

解壓到:D:\ffmpeg

image.png

3,設置

設置環境變量,首先設置FFMPEG_HOME

image.png

然後修改Path

image.png

4,推流

1)修改nginx配置文件,server_namelocalhost改爲本機IP地址(這會解決播放器拉流不正常的情況,一直無法播放視頻的問題)

image.png


2)本地視頻推流指令爲:

ffmpeg.exe -re -i Videos\orange.mp4 -f flv rtmp://127.0.0.1:1935/live/edison

注意:以上指令中最後是rtmp://127.0.0.1:1935/live/edison,其中,rtmp是媒體傳輸協議,192.168.41.3是媒體服務器地址,1935是媒體服務器偵聽端口,liveRTMP媒體服務名稱,edison是應用名稱,每次推流應用名稱應不同纔行。

image.png


使用VLC Media Player測試:

image.png

3)本地攝像頭和麥克風推流指令

ffmpeg -f dshow -i video="Integrated Camera" -f dshow -i audio="麥克風陣列 (英特爾® 智音技術)" -vcodec libx264 -preset:v ultrafast -tune:v zerolatency -f flv rtmp://192.168.41.3:1935/live/home

 注意:以上指令中最後是rtmp://192.168.41.3:1935/live/home,其中,rtmp是媒體傳輸協議,192.168.41.3是媒體服務器地址,1935是媒體服務器偵聽端口,liveRTMP媒體服務名稱,home是應用名稱,每次推流應用名稱應不同纔行。

5,查詢本地麥克風和攝像頭的方法:

1)使用ffmpeg指令

ffmpeg -list_devices true -f dshow -i dummy

2)“計算機管理”查設備屬性

ffmpeg指令查詢結果有亂碼時,可以使用“計算機管理”的設備屬性來查看和拷貝:

image.png

“友好名稱”,拷貝下面的值。

3)查詢指定攝像頭信息指令

ffmpeg -list_options true -f dshow -i video="Integrated Camera"

4)查詢指定麥克風信息的指令

ffmpeg -list_options true -f dshow -i audio="麥克風陣列 (英特爾® 智音技術)"

5)測試指定攝像頭是否可用

ffplay -f dshow -i video="Integrated Camera" (或者ffplay -f vfwcap -i 0

六、VLC播放器和拉流

 拉流和推流的關係如下圖:

image.png

播放端爲PC,可採用VLS Media Player,下載地址爲:

 https://www.videolan.org/vlc/

播放端爲Android,可採用ijkplayer

還可以採用JavaScript播放器,例如:jwplayer

jwplayer官網:

https://www.jwplayer.com/

Jwplayer下載地址:

https://webscripts.softpedia.com/script/Multimedia/Video/JW-FLV-Media-Player-41172.html


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章