|
0.引言 本文主要講解如何搭建RTSP流媒體服務(wù)器的過(guò)程,使用開(kāi)源項(xiàng)目ZLMediaKit。通過(guò)這個(gè)開(kāi)源項(xiàng)目,推RTSP流到服務(wù)器,然后拉流端可以拉取RTSP、RTMP等流。 ZLMediaKit碼云鏈接:https:///xia-chu/ZLMediaKit ZLMediaKit的github鏈接:https://github.com/xiongziliang/ZLMediaKit ZLMediaKit源碼圖片: ZLMediaKit功能列表: 支持推流rtsp,推到zlmediak服務(wù)器,拉流可以拉取rtsp,rtmp,hls等。功能很多,而且這個(gè)流媒體服務(wù)器是支持h265。 1.安裝編譯器及其插件(如果有需要就安裝) 1.1ZLMediaKit采?了C++11的語(yǔ)法和庫(kù),要求編譯器?持完整的C++11標(biāo)準(zhǔn),如下: (1)linux上要求gcc 版本 >= 4.8(4.7應(yīng)該也能?持)。 (2)macOS上clang >= ???(我也不知道,估計(jì)?部分不會(huì)遇到這個(gè)問(wèn)題)。 (3)windows 上visual stuido >= 2015(vs2013某些版本也能編譯通過(guò),如果怕麻煩建議直接vs2017)。 1.2安裝編譯器 (1)如果你是debian系操作系統(tǒng)(包括ubuntu系?戶),?般?帶的gcc版本夠新,你可以這樣安裝gcc編譯器: sudo apt-get install build-essential (2)安裝cmake ZLMediaKit采?cmake來(lái)構(gòu)建項(xiàng)?,通過(guò)cmake才能?成Makefile(或Xcode/VS?程),所以必須先安裝cmake才能完成后續(xù)步驟。 sudo apt-get install cmake (3)依賴庫(kù) ZLMediaKit可選依賴?些第三?庫(kù),這些庫(kù)都不是必選的;在構(gòu)建ZLMediaKit時(shí),cmake能查找系統(tǒng)路徑中的這些庫(kù),并根據(jù)安裝情況選擇是否開(kāi)啟相關(guān)特性,你可以選擇安裝這些依賴并啟?相關(guān)特性: 安裝openssl flash player在播放rtmp時(shí),采?的是復(fù)雜握?模式,如果不安裝該庫(kù),flash player將播放不了zlmediakit 提供的rtmp url。同時(shí)ZLMediaKit的https/rtsps相關(guān)功能需要使?openssl才能開(kāi)啟。 安裝ffmpeg zlmediakit可以通過(guò)fork ffmpeg進(jìn)程的?式實(shí)現(xiàn)多種協(xié)議的拉流,編譯時(shí)不需要安裝FFmpeg。 安裝sdl、avcodec、avutil 這3個(gè)庫(kù)供ZLMediaKit的test_player測(cè)試程序使?,你通常不需要安裝這3個(gè)庫(kù)。 Debian系(包括ubuntu)系統(tǒng)下安裝其它依賴的?法: 注意:這個(gè)根據(jù)自己的實(shí)際情況去安裝,如果已經(jīng)安裝了就不用再安裝了。 sudo apt-get install libssl-dev sudo apt-get install libsdl-dev sudo apt-get install libavcodec-dev sudo apt-get install libavutil-dev sudo apt-get install ffmpeg 2.搭建RTSP流媒體服務(wù)器 (1)在如下目錄路徑,如下: 創(chuàng)建文件夾,輸入命令: mkdir ZLMediaKit_Stream_Server (2)在如下目錄路徑,如下: 國(guó)內(nèi)用戶,最好使用碼云連接,這樣會(huì)比較快,輸入下載命令: git clone --depth 1 https:///xia-chu/ZLMediaKit.git 下載界面如下: 下載完成后,這里會(huì)有個(gè)如下目錄自動(dòng)生成,如下: 進(jìn)入ZLMediaKit的源碼目錄,輸入命令: cd ZLMediaKit/ ZLMediaKit的源碼目錄,如下界面: (3)在如下目錄和路徑: 查看分支,輸入命令: git branch -a 界面如下: (4)在如下目錄和路徑: ![]() 執(zhí)行一條非常重要的命令(下載組件),千萬(wàn)不要忘記,如下: git submodule update --init 克隆完成后,如下界面: ![]() (5)下載的是第三方庫(kù)和組件(比如ffmpeg和rtmp等),進(jìn)入如下目錄和路徑: ![]() (6)輸入如下命令,查看下載的文件,如下界面: ![]() ![]() 這里舉例說(shuō)明下,如果需要參考rtp的使用,可以參考如下目錄的代碼。其它代碼也一樣可以參考。 ![]() 這里還有些是實(shí)現(xiàn)了reactor模型、線程封裝(包括線程池)、工具,所以學(xué)習(xí)流媒體,后臺(tái)相關(guān)的知識(shí)也是要學(xué)習(xí)和使用。 ![]() (7)ZLMediaKit提供了多平臺(tái)的編譯版本,進(jìn)入如下目錄: ![]() 查看gcc的版本,輸入命令,如下: gcc -v 查看版本號(hào),界面如下: ![]() 注意:根據(jù)官網(wǎng)提示,只要這里的gcc版本大于4.8就可以,因?yàn)樾枰С謈++11版本。同樣的,macos、windows也是可以編譯。 (8)查看cmake版本: ![]() 使用cmake進(jìn)行編譯,在如下目錄: ![]() (9)構(gòu)建工程,輸入如下命令: mkdir build cd build 進(jìn)入如下目錄,執(zhí)行命令: cmake .. 如下界面: ![]() 編譯過(guò)程,如下界面: ![]() 編譯完成,如下界面: ![]() (10)在如下目錄,輸入編譯命令: make -j4 make過(guò)程,如下界面: ![]() ![]() make完成,如下界面: ![]() (11)進(jìn)入到如下目錄: ![]() 查看MediaServer相關(guān)的命令,輸入命令: ./MediaServer -h 如下界面: ![]() (12)在相同目錄,使用前臺(tái)運(yùn)行,輸入如下命令: ./MediaServer 或守護(hù)進(jìn)程模式啟動(dòng) ./MediaServer -d & 運(yùn)行成功界面如下: ![]() 注意:如果自己在配置的時(shí)候,端口被占用了,可以修改配置文件,在如下目錄,輸入命令,并修改: 修改配置文件: vim config.ini ![]() 修改端口號(hào),界面如下: ![]() 3.測(cè)試 (1)使用rtsp方式推流命令 推流h264 ffmpeg -re -i source.200kbps.768x320.flv -vcodec h264 -acodec aac -f rtsp -rtsp_transport tcp rtsp://172.16.204.139/live/test 推流h265 ffmpeg -re -i source.200kbps.768x320.flv -vcodec h265 -acodec aac -f rtsp -rtsp_transport tcp rtsp://172.16.204.139/live/test (2)使用rtmp方式推流命令 #如果未安裝FFmpeg,你也可以?obs推流 ffmpeg -re -i source.200kbps.768x320.flv -vcodec h264 -acodec aac -f flv rtmp://172.16.204.139/live/test # RTMP標(biāo)準(zhǔn)不?持H265,但是國(guó)內(nèi)有??擴(kuò)展的,如果你想讓FFmpeg?持RTMP-H265,請(qǐng)按照此?章編譯: 參考如下鏈接: https://github.com/ksvc/FFmpeg/wiki/hevcpush 這個(gè)插件源碼也是非常值得學(xué)習(xí),界面如下: ![]() (3)使用rtp方式推流命令 h264推流 ffmpeg -re -i source.200kbps.768x320.flv -vcodec h264 -acodec aac -f rtp_mpegts rtp://172.16.204.139:10000 h265推流 ffmpeg -re -i source.200kbps.768x320.flv -vcodec h265 -acodec aac -f rtp_mpegts rtp://172.16.204.139:10000 綜上,ZLMediakit是支持rtsp、rtp、rtmp推流的,其中rtsp、rtp協(xié)議均支持h264和h265,而rtmp標(biāo)準(zhǔn)僅僅支持h264,如果需要支持h265,那僅僅需要添加插件才行,上面已經(jīng)給出了鏈接地址。 其它平臺(tái)(本次使用ubuntn系統(tǒng))更詳細(xì)的搭建步驟,可以參考官網(wǎng)如下地址: https://github.com/xia-chu/ZLMediaKit/wiki/%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B 界面如下: ![]() rtsp推流界面如下: ![]() 推流上來(lái)后,服務(wù)器響應(yīng)界面: ![]() (4)使用ffplay拉流測(cè)試rtsp命令: ffplay -rtsp_transport tcp rtsp://172.16.204.139/live/test 拉流測(cè)試rtsp結(jié)果界面: ![]() (5)使用ffplay拉流測(cè)試rtmp命令: ffplay rtmp://172.16.204.139/live/test 拉流測(cè)試rtmp結(jié)果界面: ![]() 服務(wù)器最終斷開(kāi)的界面: ![]() 4.總結(jié) |
|
|
來(lái)自: copy_left > 《服務(wù)器配置》