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