Windows?Server?2019?流媒體服務器的配置與管理(使用FFmpeg推流到EasyDarwin中再通過VLC觀看)
流媒體,streaming media,又叫流式媒體,它是一種多媒體表現形式。當供應商將媒體交付至互聯網后,數據包分段技術將媒體數據壓縮,以流的形式在網絡中分段傳送,當終端用戶想要觀看時,通過流媒體客戶端對數據流進行解壓,媒體會向供應商交付前一樣顯示出來。即實時播放。
(1)傳統媒體與流媒體對比
傳統方式觀看視頻文件的過程:視頻文件上傳到服務器后,用戶通過客戶端軟件將視頻全部下載好后,才能觀看視頻。
流媒體方式:視頻文件上傳到服務器后,當用戶使用客戶端軟件請求訪問(觀看)時,數據包通過特殊的壓縮方式,將視頻文件分成一個個小的數據包,由流媒體服務器向客戶端連續的、實時的傳送到客戶端中,這樣用戶可以一邊觀看一邊下載,不需要等待視頻文件全部下載完后才能觀看。
(2)術語解釋 推流 指的是把采集階段封包好的內容傳輸到服務器的過程。其實就是將現場的視頻信號傳到網絡的過程?!就屏鳌繉W絡要求比較高,如果網絡不穩定,直播效果就會很差,觀眾觀看直播時就會發生卡頓等現象,觀看體驗很是糟糕。 拉流 指服務器已有直播內容,用指定地址進行拉取的過程。直播節目內容以流的形式在網絡中進行傳輸。所謂拉流即從云端將直播流拉取到本地。在終端實現直播的播放。 兩者區別 推流是把數據推送到服務器的過程,而拉流是從服務器中直播的內容用指定的地址去拉取。
1.2 流媒體的傳輸方式包括順序流式傳輸和實時流式傳輸。
(1)順序流式傳輸
實時傳送,適合現場廣播,支持隨機訪問,用戶可快進或后退觀看后面或前面的內容。前提條件是保證媒體信號帶寬與網絡帶寬匹配,而且該種傳輸方式必須需要專用實時流協議
(2)實時流式傳輸
順序下載,在給定時刻,用戶只能觀看已下載的部分,不能跳到還未下載的部分,這種一般比較適合高質量的短片段,如片頭、片尾和廣告。
1.3 流媒體的工作原理流式傳輸一般采用HTTP/TCP來傳輸控制信息,RTP(實時傳輸協議)和UDP(用戶數據包協議)來傳輸實時數據。
Q:為什么傳輸實時數據使用UDP而不是TCP?
A:TCP是可靠的傳輸協議,傳輸需要經過三次握手,通信雙方都需要確認無誤后才能開始傳輸數據,同時TCP開銷很大。而UDP則是不可靠的傳輸協議,通信雙方傳輸數據時無需經過三次握手驗證,發送方只需將數據流發送到接收方即可,無需等待接收方的數據響應報文。例如QQ或者微信等一些SNS通信軟件的數據傳輸均采用UDP,用戶只需將信息發送給對方即可。
① 用戶選擇流媒體服務后,Web瀏覽器域Web服務器間使用HTTP/TCP交換控制信息,將需要傳輸的實時數據從原始數據庫中檢索出來。
② Web瀏覽器啟動流媒體播放器,使用HTTP從Web服務器檢索的相關參數(包括目錄信息,視頻的編碼類型和服務器地址等信息)對流媒體播放器進行初始化。
③ 流媒體播放器與流媒體服務器運行實時流協議,交換控制信息,實時流協議提供執行播放,快進、快倒,暫停和錄制等功能。
④ 流媒體服務器通過RTP/UDP協議將視頻流數據傳輸到播放器,一旦數據流抵達客戶端,客戶端即可播放視頻。
1.4 流媒體的播放形式1)單播方式
一臺服務器傳送的數據包只能傳遞給客戶機,采用點到點(P2P)。
(2)組播方式
允許路由器將數據包復制到多個通道,一對多。
(3)點播方式
客戶端主動發起與服務器連接,允許用戶控制媒體流的播放,可以對網絡視頻進行開始、停止、后退、快進或暫停等操作。
(4)廣播方式
數據包復制發送到網絡上所有用戶,用戶被動接受流不管用戶是否需要。
1.5 實驗使用軟件介紹(1)EasyDarwinEasyDarwin 是一款開源的流媒體服務器軟件。
EasyDarwin 開源流媒體服務器,是高性能開源RTSP流媒體服務器,基于go語言研發,維護和優化:RTSP推模式轉發、RTSP拉模式轉發、錄像、檢索、回放、關鍵幀緩存、秒開畫面、RESTful接口、WEB后臺管理、分布式負載均衡等功能。
官方網址:EasyDarwin
本次實驗中,以EasyDarwin作為流媒體服務器。
(2)FFmpegffmpeg是完整的跨平臺解決方案,用于記錄,轉換和流傳輸音頻和視頻。網址:FFmpeg
本次實驗中,使用ffmpeg將視頻推流到流媒體服務器EasyDarwin中 (3)VLC media player
VLC是一個免費的開源跨平臺多媒體播放器和框架,可播放大多數多媒體文件以及DVD,音頻CD,VCD和各種流協議。
網站:VLC media player
2. 網絡拓撲及說明
流媒體服務器:安裝EasyDarwin流媒體服務及ffmpeg推流工具。
IP地址:192.168.82.228
PC2:安裝VLC及OBS。
具體過程:流媒體服務器中存在視頻庫,在流媒體服務器中使用ffmpeg將視頻轉換為流,然后轉發(推流)到EasyDarwin服務中,在PC2上使用VLC或OBS對流媒體服務器中的視頻進行拉流,達到觀看視頻的效果。
3. 流媒體服務的安裝及配置3.1 安裝和配置EasyDarwin(1)下載EasyDarwin
從Github中下載EasyDarwin的Windows端安裝包,打開EasyDarwin安裝文件夾,文件夾中包括下面幾個文件和文件夾:
logs文件夾:存放EasyDarwin服務日志信息www文件夾:EasyDarwin的Web UI源碼easydarwin.db:存放EasyDarwin的數據EasyDarwin.exe:EasyDarwin的執行程序easydarwin.ini:EasyDarwin配置文件ServiceInstall-EasyDarwin.exe:EasyDarwin服務安裝程序ServiceUninstall-EasyDarwin.exe:EasyDarwin服務卸載程序
(2)設置EasyDarwin配置文件
點擊【easydarwin.ini】,修改以下選項:
[http]port=80default_username=admindefault_password=admin[rtsp]port=554[http]下的【port】指EasyDarwin的Web控制UI的端口號,默認為10008,根據實際需求修改,這里改成80。
【default_username】和【default_password】是Web控制UI的登錄用戶名和密碼,默認均為:admin,根據實際需求修改。
[rtsp]下的【port】指RTSP協議使用的端口號,默認為554,根據實際需求修改。
(3)啟動EasyDarwin服務
點擊ServiceInstall-EasyDarwin.exe,安裝EasyDarwin服務,出現命令提示符,加載完成后按任意鍵即可,這時EasyDarwin服務已經安裝在【服務】中并在后臺運行。
(4)查看Web控制臺UI
打開瀏覽器,在地址欄輸入:http://192.168.82.228,使用用戶名和密碼登錄。
(1)下載FFmpeg
從官網下載:FFmpeg Builds,將文件夾放置相應的目錄中(為設置環境變量做準備),打開ffmpeg文件夾,點擊bin目錄,看到三個應用程序,其中ffmpeg是用來推流用的。
ffmpeg.exe
ffplay.exe
ffprobe.exe
ffmpeg.zeranoe.com will close on Sep 18, 2020, and all builds will be removed. If you’re using Zeranoe FFmpeg Builds in your product, please ensure that you have a hosting strategy in place by the 18th. Thank you to everyone who supported the project along the way!
(2)設置環境變量
打開【控制面板】——>【系統和安全】——>【系統】——>【高級系統設置】——>【環境變量】——>【系統變量】——>【Path】——>【新建】,輸入(1)中bin文件夾的完整物理目錄即可,最后點擊【確定】。
準備工作:在C盤中創建一個名為【Videos】的文件夾,將準備好的視頻1.mp4和2.mp4移動到該目錄下。
(1)推流
打開命令提示符,輸入:
ffmpeg -re -i C:\Videos\1.mp4 -rtsp_transport tcp -vcodec h264 -f rtsp rtsp://192.168.82.228/test# 或者ffmpeg -re -i C:\Videos\2.mp4 -rtsp_transport udp -vcodec h264 -f rtsp rtsp://192.168.82.228/test2(2)配置防火墻
配置一條名為VLC 554的入站策略,選擇特定端口554,TCP連接,允許任何地址連接。
(3)查看推流信息
打開瀏覽器,在地址欄輸入:http://192.168.82.228,點擊【推流列表】,可以看到,有一個視頻正在被轉發(推流)到EasyDarwin服務中。
(1)在PC2中安裝VLC media player,打開(此步驟較簡單,故省略)。
(2)點擊【媒體】——>【打開網絡串流】.
在URL欄中輸入:
rtsp://192.168.82.228/test2
最后點擊播放。
該地址是EasyDarwin的Web控制UI的推流列表中的播放地址。
(3)VLC會自動從流媒體服務器中拉取數據流,經過VLC轉化為視頻播放。(拉流)
返回流媒體服務器,打開EasyDarwin的Web控制UI,在拉流列表中看到,有客戶端進行視頻觀看,傳輸方式是UDP,下載流量為49.7MB。
至此,一套完整的流媒體服務搭建完成。流媒體服務的搭建需要良好的網絡帶寬,因此在測試本次實驗的時候,盡量使用虛擬機內網流量,這樣可以不影響物理機中的WAN流量。
4. 參考文獻EasyDarwinFFmpegVLC media player到此這篇關于Windows Server 2019 流媒體服務器的配置與管理(使用FFmpeg推流到EasyDarwin中再通過VLC觀看)的文章就介紹到這了,更多相關win2019 流媒體服務器內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!
