Windows?Server?2019?流媒體服務器的配置與管理(使用FFmpeg推流到EasyDarwin中再通過VLC觀看)
1. 流媒體的基本概念
1.1 流媒體的定義
流媒體,streaming media,又叫流式媒體,它是一種多媒體表現(xiàn)形式。當供應商將媒體交付至互聯(lián)網(wǎng)后,數(shù)據(jù)包分段技術(shù)將媒體數(shù)據(jù)壓縮,以流的形式在網(wǎng)絡中分段傳送,當終端用戶想要觀看時,通過流媒體客戶端對數(shù)據(jù)流進行解壓,媒體會向供應商交付前一樣顯示出來。即實時播放。
(1)傳統(tǒng)媒體與流媒體對比
傳統(tǒng)方式觀看視頻文件的過程:視頻文件上傳到服務器后,用戶通過客戶端軟件將視頻全部下載好后,才能觀看視頻。
流媒體方式:視頻文件上傳到服務器后,當用戶使用客戶端軟件請求訪問(觀看)時,數(shù)據(jù)包通過特殊的壓縮方式,將視頻文件分成一個個小的數(shù)據(jù)包,由流媒體服務器向客戶端連續(xù)的、實時的傳送到客戶端中,這樣用戶可以一邊觀看一邊下載,不需要等待視頻文件全部下載完后才能觀看。
(2)術(shù)語解釋 推流 指的是把采集階段封包好的內(nèi)容傳輸?shù)椒掌鞯倪^程。其實就是將現(xiàn)場的視頻信號傳到網(wǎng)絡的過程?!就屏鳌繉W(wǎng)絡要求比較高,如果網(wǎng)絡不穩(wěn)定,直播效果就會很差,觀眾觀看直播時就會發(fā)生卡頓等現(xiàn)象,觀看體驗很是糟糕。 拉流 指服務器已有直播內(nèi)容,用指定地址進行拉取的過程。直播節(jié)目內(nèi)容以流的形式在網(wǎng)絡中進行傳輸。所謂拉流即從云端將直播流拉取到本地。在終端實現(xiàn)直播的播放。 兩者區(qū)別 推流是把數(shù)據(jù)推送到服務器的過程,而拉流是從服務器中直播的內(nèi)容用指定的地址去拉取。
1.2 流媒體的傳輸方式
包括順序流式傳輸和實時流式傳輸。
(1)順序流式傳輸
實時傳送,適合現(xiàn)場廣播,支持隨機訪問,用戶可快進或后退觀看后面或前面的內(nèi)容。前提條件是保證媒體信號帶寬與網(wǎng)絡帶寬匹配,而且該種傳輸方式必須需要專用實時流協(xié)議
(2)實時流式傳輸
順序下載,在給定時刻,用戶只能觀看已下載的部分,不能跳到還未下載的部分,這種一般比較適合高質(zhì)量的短片段,如片頭、片尾和廣告。
1.3 流媒體的工作原理
流式傳輸一般采用HTTP/TCP來傳輸控制信息,RTP(實時傳輸協(xié)議)和UDP(用戶數(shù)據(jù)包協(xié)議)來傳輸實時數(shù)據(jù)。
Q:為什么傳輸實時數(shù)據(jù)使用UDP而不是TCP?
A:TCP是可靠的傳輸協(xié)議,傳輸需要經(jīng)過三次握手,通信雙方都需要確認無誤后才能開始傳輸數(shù)據(jù),同時TCP開銷很大。而UDP則是不可靠的傳輸協(xié)議,通信雙方傳輸數(shù)據(jù)時無需經(jīng)過三次握手驗證,發(fā)送方只需將數(shù)據(jù)流發(fā)送到接收方即可,無需等待接收方的數(shù)據(jù)響應報文。例如QQ或者微信等一些SNS通信軟件的數(shù)據(jù)傳輸均采用UDP,用戶只需將信息發(fā)送給對方即可。
① 用戶選擇流媒體服務后,Web瀏覽器域Web服務器間使用HTTP/TCP交換控制信息,將需要傳輸?shù)膶崟r數(shù)據(jù)從原始數(shù)據(jù)庫中檢索出來。
② Web瀏覽器啟動流媒體播放器,使用HTTP從Web服務器檢索的相關參數(shù)(包括目錄信息,視頻的編碼類型和服務器地址等信息)對流媒體播放器進行初始化。
③ 流媒體播放器與流媒體服務器運行實時流協(xié)議,交換控制信息,實時流協(xié)議提供執(zhí)行播放,快進、快倒,暫停和錄制等功能。
④ 流媒體服務器通過RTP/UDP協(xié)議將視頻流數(shù)據(jù)傳輸?shù)讲シ牌?,一旦?shù)據(jù)流抵達客戶端,客戶端即可播放視頻。
1.4 流媒體的播放形式
1)單播方式
一臺服務器傳送的數(shù)據(jù)包只能傳遞給客戶機,采用點到點(P2P)。
(2)組播方式
允許路由器將數(shù)據(jù)包復制到多個通道,一對多。
(3)點播方式
客戶端主動發(fā)起與服務器連接,允許用戶控制媒體流的播放,可以對網(wǎng)絡視頻進行開始、停止、后退、快進或暫停等操作。
(4)廣播方式
數(shù)據(jù)包復制發(fā)送到網(wǎng)絡上所有用戶,用戶被動接受流不管用戶是否需要。
1.5 實驗使用軟件介紹
(1)EasyDarwin
EasyDarwin 是一款開源的流媒體服務器軟件。
EasyDarwin 開源流媒體服務器,是高性能開源RTSP流媒體服務器,基于go語言研發(fā),維護和優(yōu)化:RTSP推模式轉(zhuǎn)發(fā)、RTSP拉模式轉(zhuǎn)發(fā)、錄像、檢索、回放、關鍵幀緩存、秒開畫面、RESTful接口、WEB后臺管理、分布式負載均衡等功能。
官方網(wǎng)址:EasyDarwin
本次實驗中,以EasyDarwin作為流媒體服務器。
(2)FFmpeg
ffmpeg是完整的跨平臺解決方案,用于記錄,轉(zhuǎn)換和流傳輸音頻和視頻。
網(wǎng)址:FFmpeg
本次實驗中,使用ffmpeg將視頻推流到流媒體服務器EasyDarwin中 (3)VLC media player
VLC是一個免費的開源跨平臺多媒體播放器和框架,可播放大多數(shù)多媒體文件以及DVD,音頻CD,VCD和各種流協(xié)議。
網(wǎng)站:VLC media player
2. 網(wǎng)絡拓撲及說明
流媒體服務器:安裝EasyDarwin流媒體服務及ffmpeg推流工具。
IP地址:192.168.82.228
PC2:安裝VLC及OBS。
具體過程:流媒體服務器中存在視頻庫,在流媒體服務器中使用ffmpeg將視頻轉(zhuǎn)換為流,然后轉(zhuǎn)發(fā)(推流)到EasyDarwin服務中,在PC2上使用VLC或OBS對流媒體服務器中的視頻進行拉流,達到觀看視頻的效果。
3. 流媒體服務的安裝及配置
3.1 安裝和配置EasyDarwin
(1)下載EasyDarwin
從Github中下載EasyDarwin的Windows端安裝包,打開EasyDarwin安裝文件夾,文件夾中包括下面幾個文件和文件夾:
logs文件夾:存放EasyDarwin服務日志信息www文件夾:EasyDarwin的Web UI源碼easydarwin.db:存放EasyDarwin的數(shù)據(jù)EasyDarwin.exe:EasyDarwin的執(zhí)行程序easydarwin.ini:EasyDarwin配置文件ServiceInstall-EasyDarwin.exe:EasyDarwin服務安裝程序ServiceUninstall-EasyDarwin.exe:EasyDarwin服務卸載程序
(2)設置EasyDarwin配置文件
點擊【easydarwin.ini】,修改以下選項:
[http] port=80 default_username=admin default_password=admin [rtsp] port=554
[http]下的【port】指EasyDarwin的Web控制UI的端口號,默認為10008,根據(jù)實際需求修改,這里改成80。
【default_username】和【default_password】是Web控制UI的登錄用戶名和密碼,默認均為:admin,根據(jù)實際需求修改。
[rtsp]下的【port】指RTSP協(xié)議使用的端口號,默認為554,根據(jù)實際需求修改。
(3)啟動EasyDarwin服務
點擊ServiceInstall-EasyDarwin.exe,安裝EasyDarwin服務,出現(xiàn)命令提示符,加載完成后按任意鍵即可,這時EasyDarwin服務已經(jīng)安裝在【服務】中并在后臺運行。
(4)查看Web控制臺UI
打開瀏覽器,在地址欄輸入:http://192.168.82.228
,使用用戶名和密碼登錄。
3.2 安裝FFmpeg
(1)下載FFmpeg
從官網(wǎng)下載:FFmpeg Builds,將文件夾放置相應的目錄中(為設置環(huán)境變量做準備),打開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)設置環(huán)境變量
打開【控制面板】——>【系統(tǒng)和安全】——>【系統(tǒng)】——>【高級系統(tǒng)設置】——>【環(huán)境變量】——>【系統(tǒng)變量】——>【Path】——>【新建】,輸入(1)中bin文件夾的完整物理目錄即可,最后點擊【確定】。
3.3 使用ffmpeg推流
準備工作:在C盤中創(chuàng)建一個名為【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
,點擊【推流列表】,可以看到,有一個視頻正在被轉(zhuǎn)發(fā)(推流)到EasyDarwin服務中。
3.4 使用VLC拉流
(1)在PC2中安裝VLC media player,打開(此步驟較簡單,故省略)。
(2)點擊【媒體】——>【打開網(wǎng)絡串流】.
在URL欄中輸入:
rtsp://192.168.82.228/test2
最后點擊播放。
該地址是EasyDarwin的Web控制UI的推流列表中的播放地址。
(3)VLC會自動從流媒體服務器中拉取數(shù)據(jù)流,經(jīng)過VLC轉(zhuǎn)化為視頻播放。(拉流)
返回流媒體服務器,打開EasyDarwin的Web控制UI,在拉流列表中看到,有客戶端進行視頻觀看,傳輸方式是UDP,下載流量為49.7MB。
至此,一套完整的流媒體服務搭建完成。流媒體服務的搭建需要良好的網(wǎng)絡帶寬,因此在測試本次實驗的時候,盡量使用虛擬機內(nèi)網(wǎng)流量,這樣可以不影響物理機中的WAN流量。
4. 參考文獻
到此這篇關于Windows Server 2019 流媒體服務器的配置與管理(使用FFmpeg推流到EasyDarwin中再通過VLC觀看)的文章就介紹到這了,更多相關win2019 流媒體服務器內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Windows Server 2019 網(wǎng)絡負載均衡服務配置與管理(理論+網(wǎng)絡拓撲及說明)
介紹了負載均衡的基本概念(包括負載均衡的定義,有無負載均衡器的拓撲對比,負載均衡的工作原理,負載均衡的三要素),網(wǎng)絡負載均衡的特性,集群部署要求,網(wǎng)絡拓撲以及說明2023-05-05由注冊表引起的 I/O 操作發(fā)生了不可恢復的錯誤修復方法
由注冊表引起的 I/O 操作發(fā)生了不可恢復的錯誤。 注冊表將不能讀取、寫出或刷新包含注冊表系統(tǒng)圖像的其中一個文件2012-06-06windows?server2008?R2?角色遷移問題詳解
這篇文章主要介紹了windows?server2008?R2?角色遷移講解,本文操作背景是在Master和slave節(jié)點都存活的狀態(tài)下,將Master的五個角色轉(zhuǎn)移給slave服務,本文給大家介紹的非常詳細,需要的朋友可以參考下2022-07-07win2003 x64 apache php 開發(fā)環(huán)境配置日志
win2003 x64 php 開發(fā)環(huán)境配置日志,不過是apache非iis版本的,所以大家可以查看本站的其它的一些關于iis php的配置文章。2009-06-06