媒體服務器這個名詞最初來自於NGN(下一代網絡),在軟交換設備控制下提供IP網絡上各類媒體資源管理功能,含視頻、音頻、圖片、圖文消息等等。html
後來逐漸演化爲流媒體服務器,從而提供以流的方式推送、存儲、拉動媒體資源,尤爲是實時和準實時的音視頻資源。nginx
應用領域包括視頻直播、視頻點播、短視頻、視頻會議、遠程教育、遠程醫療等。web
著名的開源媒體服務器,包括Red5 Server、Live555、EasyDarwin、Open Streaming Server、Nginx+RTMP等。瀏覽器
當前(2020),web服務大量使用Nginx做爲反向代理服務器。服務器
Nginx最初由俄國人伊戈爾·賽索耶夫在2004年開發,採用BSD許可證。網絡
除了反向代理外,Nginx仍是一個輕量級web server,是Apache web server的替代者,併發鏈接數能夠達到5萬以上。併發
另外,Nginx還能被用來搭建負荷均衡服務器和郵件代理服務器。ide
更主要的是,nginx配合RTMP插件可以適應直播潮流,成爲性能優良的流媒體服務器。性能
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
3,啓動:雙擊啓動或者在cmd下輸入start nginx
4,驗證:
(1)在瀏覽器中輸入http://localhost/
(2)tasklist /fi "imagename eq nginx.exe"
(3)netstat -ano | findstr "80"
5,修改配置
配置文件是conf\nginx.conf,若是沒有,則把nginx-win.conf拷貝一份,從新命名爲nginx.conf
例如,修改偵聽端口爲8080(默認80):
修改配置後使用nginx -s reload刷新:
從新把nginx.conf命名爲nginx-old.conf,把nginx-win-rtmp.conf拷貝一份從新命名爲nginx.conf。
檢查以下配置:
重啓:
nginx.exe -s stop
start nginx
也能夠用以下命令:
nginx.exe -s quit
Start nginx
另,直接終止進程再啓動也是可行的:
驗證:
1,什麼是FFMPEG
略
2,下載
解壓到:D:\ffmpeg
3,設置
設置環境變量,首先設置FFMPEG_HOME
而後修改Path:
4,推流
(1)修改nginx配置文件,server_name從localhost改成本機IP地址(這會解決播放器拉流不正常的狀況,一直沒法播放視頻的問題)
(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是媒體服務器偵聽端口,live是RTMP媒體服務名稱,edison是應用名稱,每次推流應用名稱應不一樣才行。
使用VLC Media Player測試:
(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是媒體服務器偵聽端口,live是RTMP媒體服務名稱,home是應用名稱,每次推流應用名稱應不一樣才行。
5,查詢本地麥克風和攝像頭的方法:
(1)使用ffmpeg指令
ffmpeg -list_devices true -f dshow -i dummy
(2)「計算機管理」查設備屬性
當ffmpeg指令查詢結果有亂碼時,能夠使用「計算機管理」的設備屬性來查看和拷貝:
選「友好名稱」,拷貝下面的值。
(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)
拉流和推流的關係以下圖:
播放端爲PC,可採用VLS Media Player,下載地址爲:
播放端爲Android,可採用ijkplayer
還能夠採用JavaScript播放器,例如:jwplayer,
jwplayer官網:
Jwplayer下載地址:
https://webscripts.softpedia.com/script/Multimedia/Video/JW-FLV-Media-Player-41172.html