1. 程式人生 > >[流媒體伺服器搭建] EasyDarwin伺服器搭建及客戶端推流完整示例

[流媒體伺服器搭建] EasyDarwin伺服器搭建及客戶端推流完整示例

Windows下環境搭建

一、準備工作,需要先下載我們需要的程式
1、EasyDarwin  下載地址:https://github.com/EasyDarwin/EasyDarwin
2、ffmpeg         下載地址:http://ffmpeg.org/
3、nginx            下載地址:http://nginx.org/en/download.html


二、搭建WEB服務
1、修改nginx配置檔案,

一個是WEB服務監聽的埠,之後EasyDarwin服務端會用到;
另一個是WEB服務根目錄,也是HLS切片和視訊存放的位置。為了測試方便新建一個test.txt檔案,裡面隨便錄入內容,如:good luck

2、啟動WEB服務
開啟命令:start nginx.exe
停止命令:nginx.exe -s stop

三、編譯源程式,修改配置檔案
1、編譯下載下來的EasyDarwin,用VS 開啟 .\EasyDarwin-master\EasyDarwin\WinNTSupport\EasyDarwin.sln,編譯。正常情況下不會出錯,如果出錯了檢查下是否丟失檔案。
2、拷貝必要動態庫到執行目錄下,將EasyDarwin-master\EasyDarwin\Lib下所有檔案拷貝到你的執行目錄下,預設是\EasyDarwin-master\EasyDarwin\WinNTSupport\Debug
3、手動新建目錄,在執行目錄下,新建目錄 Movies(存放視訊檔案和切片等) 和 Logs(日誌目錄)

4、修改配置檔案,

HTTP_ROOT_DIR是WEB服務地址;LOCAL_IP_ADDRESS是伺服器IP地址

如果是採用HLS,需要將引數設定為true。

其他的一些引數可以根據個人需要做修改。

四、系統測試

1、首先啟動WEB服務(命令:start nginx.exe),瀏覽器中訪問:http://192.168.1.107:8088/test.txt,如果沒看到”good luck“,那就在檢查下埠是否被佔用(命令:netstat -ano)。
2、啟動EasyDarwin伺服器(命令:EasyDarwin.exe -d -c easydarwin.xml)

啟動成功後,輸出是這樣子,說明執行的動態庫載入,埠設定都沒有問題。(EasyDarwin伺服器埠是554,有可能和系統的一個media服務衝突,需要關閉掉此服務)

3、啟動ffmpeg.exe,開始推流
推流命令:E:\ffmpeg\bin>ffmpeg.exe -i rtsp://192.168.1.100:10554/udp/av0_1 -vcodec copy -acodec copy -rtsp_transport tcp -f rtsp rtsp://192.168.1.107/live2.sdp
注:rtsp://192.168.1.100:10554/udp/av0_1,是我們IPCamera的RTSP地址;
後面rtsp://192.168.1.107/live2.sdp 是我們推送到服務端,用於外部訪問的RTSP地址;



正常情況下FFMPEG輸出是這樣的,說明推送成功。


4、驗證推送的視訊流
測試RTSP地址:用客戶端程式VLC或者EasyPlayer,開啟地址 rtsp://192.168.1.107/live2.sdp
測試HLS地址:
可以先請求獲得真正的HLS地址,再訪問。(請求連結:http://192.168.1.107:8081/api/easyhlsmodule?name=live&url="RTSP://192.168.1.107/live2.sdp")

用客戶端程式VLC或者EasyPlayer,開啟地址 http://192.168.1.107:8088/live/live.m3u8



LINUX系統上除了EasyDarwin編譯不同,其他配置基本是一樣的,之後我再把LINUX上需要的命令都貼下。