生活随笔
收集整理的這篇文章主要介紹了
mac下RTSP服务器搭建(ZLMediaKit)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
mac下RTSP服務器搭建(ZLMediaKit)
目錄
獲取代碼編譯器cmake依賴庫構建和編譯項目運行測試
注:參考wiki(包含其他系統安裝方式):https://github.com/ZLMediaKit/ZLMediaKit/wiki
1. 獲取代碼
請不要使用github 下載zip包的方式下載源碼,務必使用git克隆ZLMediaKit的代碼,因為ZLMediaKit依賴于第三方代碼,zip包不會下載第三方依賴源碼,你可以這樣操作:
#國內用戶推薦從同步鏡像網站gitee下載
git clone --depth 1 https://gitee.com/xia-chu/ZLMediaKit
cd ZLMediaKit
#千萬不要忘記執行這句命令
git submodule update --init
2. 編譯器
1. 編譯器版本要求
ZLMediaKit采用了C++11的語法和庫,要求編譯器支持完整的C++11標準,亦即: linux上要求gcc 版本 >= 4.8(4.7應該也能支持)macOS上clang >= ???(我也不知道,估計大部分不會遇到這個問題)windows 上visual stuido >= 2015(vs2013某些版本也能編譯通過,如果怕麻煩建議直接vs2017)
2. 安裝編譯器
如果你是macOS用戶,你直接安裝xcode即可。
3. cmake
如果你是macOS用戶,你可以這樣安裝cmake:
brew install cmake
4. 依賴庫
1. 依賴庫列表
ZLMediaKit可選依賴一些第三方庫,這些庫都不是必選的;在構建ZLMediaKit時,cmake能查找系統路徑中的這些庫,并根據安裝情況選擇是否開啟相關特性,你可以選擇安裝這些依賴并啟用相關特性: openssl flash player在播放rtmp時,采用的是復雜握手模式,如果不安裝該庫,flash player將播放不了zlmediakit 提供的rtmp url.同時ZLMediaKit的https/rtsps相關功能需要使用openssl才能開啟。 ffmpeg zlmediakit可以通過fork ffmpeg進程的方式實現多種協議的拉流,編譯時不需要安裝FFmpeg。 sdl、avcodec、avutil 這3個庫供ZLMediaKit的test_player測試程序使用,你通常不需要安裝這3個庫。
2. 安裝依賴庫
macOS/centos下安裝依賴庫:下載并安裝以上幾個庫即可
5. 構建和編譯項目
在linux或macOS系統下,你應該這樣操作:
cd ZLMediaKit
mkdir build
cd build
#macOS下可能需要這樣指定openss路徑:cmake
.. -DOPENSSL_ROOT_DIR
=/usr
/local
/Cellar
/openssl
/1.0.2j
/
cmake
..
make -j4
6. 運行
ZLMediaKit工程主要生成3種二進制目標文件,他們的生成的路徑在release目錄下,這些目標文件主要分為:
MediaServer進程 這是ZLMediaKit作為服務器的主進程,該進程可以在免去開發的情況下直接作為測試流媒體服務器使用,如果你需要更復雜的業務邏輯,可以通過Web HOOK和RESTful API實現,同時你可以通過配置文件控制其參數。在macos下啟動: cd ZLMediaKit
/release
/mac
/Debug
#通過
-h可以了解啟動參數
./MediaServer
-h
#以守護進程模式啟動
./MediaServer
-d
&
7. 測試
參考wiki:ZLMediaKit推流測試
1. 推流測試
ZLMediaKit支持rtsp/rtmp/rtp推流,一般通常使用obs/ffmpeg推流測試,其中FFmpeg推流命令支持以下:使用rtsp方式推流
# h264推流
ffmpeg
-re
-i
"/path/to/test.mp4" -vcodec h264
-acodec aac
-f rtsp
-rtsp_transport tcp rtsp
://127.0.0.1/live
/test
# h265推流
ffmpeg
-re
-i
"/path/to/test.mp4" -vcodec h265
-acodec aac
-f rtsp
-rtsp_transport tcp rtsp
://127.0.0.1/live
/test
使用rtmp方式推流
#如果未安裝FFmpeg,你也可以用obs推流
ffmpeg
-re
-i
"/path/to/test.mp4" -vcodec h264
-acodec aac
-f flv rtmp
://127.0.0.1/live
/test
# RTMP標準不支持H265
,但是國內有自行擴展的,如果你想讓FFmpeg支持RTMP
-H265
,請按照此文章編譯:https
://github
.com
/ksvc
/FFmpeg
/wiki
/hevcpush
使用rtp方式推流
# h264推流
ffmpeg
-re
-i
"/path/to/test.mp4" -vcodec h264
-acodec aac
-f rtp_mpegts rtp
://127.0.0.1:10000
# h265推流
ffmpeg
-re
-i
"/path/to/test.mp4" -vcodec h265
-acodec aac
-f rtp_mpegts rtp
://127.0.0.1:10000
2. 觀察日志
我測試的是rtsp方式,推流命令需要修改播放文件和ip,如:
推流命令:
ffmpeg
-re
-i
"believe.mp4" -vcodec h264
-acodec aac
-f rtsp
-rtsp_transport tcp rtsp
://127.0.0.1/live
/test拉流命令:
ffplay
-rtsp_transport tcp rtsp
://127.0.0.1/live
/test
3. 日志中相關字符串分別代表:
2020-04-10 12:51:52.331 I
| regist rtsp __defaultVhost__ rtp
206442D7
^ ^ ^ ^schema vhost app stream_id
總結
以上是生活随笔為你收集整理的mac下RTSP服务器搭建(ZLMediaKit)的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。