摘 要:本文研究了視頻直播系統(tǒng)的設計,并基于ffmpeg、vlc和EasyDarwin開源軟件進行了二次開發(fā),簡單而有效地實現(xiàn)了該設計,具有較強的工程參考價值。
關(guān)鍵詞:視頻直播系統(tǒng);ffmpeg;vlc;EasyDarwin
隨著社會的發(fā)展,視頻直播系統(tǒng)或者監(jiān)控系統(tǒng)在場館、學校、車載等場景中的應用越來越廣泛。例如很多的幼兒園開始把監(jiān)控系統(tǒng)作為輔助設備,也是幼兒園智能化管理的新趨勢。本文研究了一種易于實現(xiàn)的視頻直播系統(tǒng)。
一、系統(tǒng)設計
本系統(tǒng)主要由視頻采集裝置、推流服務器、流媒體服務器和視頻監(jiān)控設備構(gòu)成。視頻采集裝置主要為攝像頭。由于整個系統(tǒng)需要在不同的區(qū)域進行布防和監(jiān)控,以幼兒園為例,其主要公共場所包括教室、活動區(qū)和出入口等,針對不同區(qū)域的實際情況安置不同類型的攝像機,公共活動區(qū)適合安裝可調(diào)視角的球機,而樓道等可安裝槍機。流媒體是指以流的方式在網(wǎng)絡中傳送視頻、音頻的媒體形式。流媒體服務器以TP/RTSP、MMS、RTMP等流式協(xié)議把視頻文件傳輸?shù)揭曨l監(jiān)控設備;流媒體服務器也可從視頻采集裝置接收實時的視頻流,再以流式協(xié)議直播給視頻監(jiān)控設備。對于某些應用場景視頻采集設備處于內(nèi)網(wǎng),不能直接和處于外網(wǎng)的流媒體服務器進行通訊。此時就需要推流服務器將內(nèi)網(wǎng)設備所采集的視頻推流到流媒體服務器。視頻監(jiān)控中設備可對所需區(qū)域進行有效的監(jiān)控,可以包括電視墻顯示系統(tǒng)等。此外,視頻監(jiān)控中心可擴展視頻截屏錄像、用戶權(quán)限等功能。
二、系統(tǒng)實現(xiàn)
基于上述設計思路,本文采用開源軟件快速實現(xiàn)簡單的RTSP直播系統(tǒng)。系統(tǒng)采用ffmpeg作為推流服務器將視頻采集裝置的視頻流推送到流媒體服務器,EasyDarwin作為流媒體服務器轉(zhuǎn)發(fā)ffmpeg推送過來的視頻流。視頻監(jiān)控設備的客戶端采用VLC播放。實現(xiàn)過程如下:
1)部署EasyDarwin流媒體服務器。EasyDarwin基于Apple開源項目開發(fā)、優(yōu)化的流媒體服務器,支持RTSP點播、直播(推拉模式)、HLS直播等功能。編譯好EasyDarwin后需要在easydarwin.xml文件中對其進行設置。本文實驗過程中將EasyDarwin流媒體服務器部署在127.0.0.1,端口:554。在控制臺中啟動服務,啟動命令為:EasyDarwin.exe -d -c ./easydarwin.xml。
2)ffmpeg推送視頻到EasyDarwin。FFmpeg可以用來記錄、轉(zhuǎn)換數(shù)字音頻、視頻,并能將其轉(zhuǎn)化為流。FFmpeg開發(fā)于Linux平臺,但它可在Windows、Mac OS X等操作系統(tǒng)環(huán)境中編譯運行。本文使用的是ffmpeg Shared版本進行視頻推流。推流命令如下:ffmpeg -i rtsp://admin:admin@192.168.0.6/ -c copy -f rtsp tsp://192.168.0.109/test.sdp。其中rtsp://admin:admin@192.168.0.6/是本文的視頻流地址。
3)使用VLC播放器播放流媒體服務器中的視頻流。VLC提供了二次開發(fā)包,基于此可快速開發(fā)出適合的監(jiān)控界面。
三、小結(jié)
本文給出了視頻直播系統(tǒng)的系統(tǒng)設計方法,并基于ffmpeg、EasyDarwin和VLC實現(xiàn)了該系統(tǒng),具有較強的工程實踐意義。
參考文獻:
[1] 楊慧敏.基于校園網(wǎng)的視頻直播系統(tǒng)的設計和應用研究[D].重慶大學,2006.
[2] 聶富鵬.視頻轉(zhuǎn)碼傳輸系統(tǒng)的設計與實現(xiàn)[D].西安電子科技大學,2014.
[3] 鄧芳,孫天寶等.基于云數(shù)據(jù)的幼兒園視頻監(jiān)控服務系統(tǒng)的設計[J].中外企業(yè)家,2016(10).
作者簡介:
高春雷(1985-),男,江蘇啟東人,碩士研究生,講師,民航電子電氣方向。