windows編譯ZLMediaKit流媒體服務webrtc完整版

環(huán)境說明

ZLMediaKit編譯需要的軟件

visual studio 2022
cmake 3.29.0-rc2
OpenSSL 1.1.1w(不想踩坑的話安裝這個版本)
libsrtp 2.6.0

ZLMediaKit編譯后運行需要

libsrtp 編譯后且配置環(huán)境變量
ZLMediaKit 編譯后文件

visual studio

Snipaste_2024-02-28_17-33-25
Snipaste_2024-02-28_17-34-19
Snipaste_2024-02-28_17-35-53

cmake

visual stuido 20222,自帶cmake

cmake可以到這兩個地方下載:下載1下載2

Snipaste_2024-02-28_09-48-44
Snipaste_2024-02-27_13-02-04
Snipaste_2024-02-28_09-49-07
Snipaste_2024-02-28_09-49-24
Snipaste_2024-02-29_15-12-23
Snipaste_2024-02-29_15-12-30

測試是否成功

C:\Users\XXX>cmake
Usage

  cmake [options] <path-to-source>
  cmake [options] <path-to-existing-build>
  cmake [options] -S <path-to-source> -B <path-to-build>

Specify a source directory to (re-)generate a build system for it in the
current working directory.  Specify an existing build directory to
re-generate its build system.

Run 'cmake --help' for more information.

OpenSSL

可以到OpenSSL安裝window編譯版本月劈, 記得要下載是exe或msi文件康谆,不要light的文件!!!!!

Snipaste_2024-02-27_13-02-04

按步驟安裝脱羡,安裝地址為:C:\Program Files\OpenSSL-Win64

Snipaste_2024-02-27_15-49-25

配置環(huán)境變量序矩, 一定要配置正確J鞑t。婴栽÷郑?/strong>

Snipaste_2024-02-27_09-46-14

測試

C:\Users\XXX>openssl -v
OpenSSL 3.2.1 30 Jan 2024 (Library: OpenSSL 3.2.1 30 Jan 2024)

可以不重啟電腦,但必須關閉已經打開cmd窗口愚争,否則會顯示'openssl' 不是內部或外部命令映皆,也不是可運行的程序 或批處理文件。

libsrtp

libsrtp下載后解壓轰枝,解壓路徑地址為: D:\XXX\soft\libsrtp-2.6.0

有兩種編譯方式:

第一種: visual stuidocmake結合使用

  1. 首先在D:\XXX\soft\libsrtp-2.6.0\libsrtp-2.6.0新建build和install兩個文件夾

  2. 打開cmake軟件

    Snipaste_2024-02-29_14-26-41

  3. 完成后出現紅色配置捅彻,勾選上BUILD_SHARED_LIBS、ENABLE_OPENSSL鞍陨、以及CMAKE_INSTALL_PREFIX的路徑步淹,然后點生成。注意這里有個問題Could NOT find OpenSSL

    Snipaste_2024-02-29_14-29-54
  4. 如果3順利的話诚撵,完成后的結果(換回1.1.1的測試結果)缭裆,然后點open project

    Snipaste_2024-02-29_16-54-09
  5. 會打開vs

    Snipaste_2024-02-29_17-13-25
  6. 生成后會出現一些錯誤(但無影響)

    Snipaste_2024-02-29_17-14-51
  7. install文件夾生成的目錄

    install目錄│文件列表:
     ├ include
     │  └ srtp2
     │     │ auth.h
     │     │ cipher.h
     │     │ crypto_types.h
     │     └ srtp.h
     └ lib
        │ srtp2.dll
        │ srtp2.lib
        └ cmake
           └ libSRTP
              │ libSRTPConfig.cmake
              │ libSRTPConfigVersion.cmake
              │ libSRTPTargets-debug.cmake
              └ libSRTPTargets.cmake
    
  8. 配置環(huán)境變量到path

    D:\XXX\soft\libsrtp-2.6.0\libsrtp-2.6.0\install
    D:\XXX\soft\libsrtp-2.6.0\libsrtp-2.6.0\install\lib
    

編譯ZLMediaKit

在使用VS打開ZLMediaKit項目時,如果未開啟webrtc, 會出現

[CMake] -- set_file_group D:/XXX/project/ZLMediaKit/src 205
1> [CMake] -- srt 功能已開啟
1> [CMake] CMake Warning at webrtc/CMakeLists.txt:28 (message):
1> [CMake]   srtp 未找到, WebRTC 相關功能打開失敗

要開啟webrtc寿烟,需要保證以下正確

  • 開啟了webrtc

    Snipaste_2024-02-29_17-51-14
  • libsrtp編譯正確且配置環(huán)境變量

開啟成功的話, 會出現下面澈驼,然后安裝ZLMediaKit

> [CMake] -- Enable wepoll
1> [CMake] -- set_file_group D:/XXX/project/ZLMediaKit/3rdpart/ZLToolKit/src 80
1> [CMake] -- set_file_group D:/XXX/project/ZLMediaKit/src 205
1> [CMake] -- srt 功能已開啟
1> [CMake] -- found library: D:/XXX/soft/libsrtp-2.6.0/libsrtp-2.6.0/install/lib/srtp2.lib
1> [CMake] -- SCTP LIBRARIES: SCTP_LIBRARIES-NOTFOUND
1> [CMake] -- SCTP INCLUDE DIRS: SCTP_INCLUDE_DIRS-NOTFOUND
1> [CMake] -- WebRTC 功能已開啟
image-20240229175901339

如果不行先把out和release文件夾刪除,再重新打開vs筛武,然后安裝ZLMediaKit

Snipaste_2024-02-22_16-33-28

測試webrtc

打開編譯目錄缝其,雙擊MediaServer.exe

image-20240301114721947

先推流挎塌,用obs推流

Snipaste_2024-03-01_18-08-44

chrome瀏覽器打開

Snipaste_2024-03-01_18-05-58

點確定

Snipaste_2024-03-01_18-06-14

點開始

Snipaste_2024-03-01_18-09-45

問題

  • MediaServer.exe打開后,由于找不到 srtp2.dll内边,無法繼續(xù)執(zhí)行代碼榴都。重新安裝程序可能會解決此問題

    檢查srtp2.dll的環(huán)境變量是否正確,如:D:\XXX\soft\libsrtp-2.6.0\libsrtp-2.6.0\install\lib

    image-20240301112912727
  • Could NOT find OpenSSL

CMake Error at C:/Program Files/Microsoft Visual Studio/2022/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
  Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the
  system variable OPENSSL_ROOT_DIR (missing: OPENSSL_CRYPTO_LIBRARY
  OPENSSL_INCLUDE_DIR) (Required is at least version "1.1.0")       C:/Program Files/Microsoft Visual Studio/2022/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28/Modules/FindPackageHandleStandardArgs.cmake 230     

開始以為是安裝openssl步驟有問題假残,改為第一個選項缭贡,結果還是這樣的接口

Snipaste_2024-02-28_10-13-28

然后看了報錯

try to set the path to OpenSSL root folder in the system variable OPENSSL_ROOT_DIR

添加了環(huán)境變量

```
OPENSSL_ROOT_DIR    C:\Program Files\OpenSSL-Win64
OPENSSL_CRYPTO_LIBRARY  C:\Program Files\OpenSSL-Win64\lib
OPENSSL_INCLUDE_DIR C:\Program Files\OpenSSL-Win64\include
```
Snipaste_2024-02-27_13-07-31

完成后重啟,清除緩存生成依然沒有效果

image-20240229160034606

解決方式

  • 換版本OpenSSL: Win64OpenSSL-1_1_1w.msi辉懒, 省很多事

    C:\Users\XXX>openssl version
    OpenSSL 1.1.1w  11 Sep 2023
    

    安裝完成它的lib目錄結構為:

    lib目錄│文件列表:
     │ capi.lib
     │ dasync.lib
     │ ec_internal_test.lib
     │ libapps.lib
     │ libcrypto.def
     │ libcrypto.lib
     │ libcrypto_static.lib
     │ libssl.def
     │ libssl.lib
     │ libssl_static.lib
     │ libtestutil.lib
     │ openssl.lib
     │ ossltest.lib
     │ padlock.lib
     │ uitest.lib
     └ VC
        │ libcrypto64MD.lib
        │ libcrypto64MDd.lib
        │ libcrypto64MT.lib
        │ libcrypto64MTd.lib
        │ libssl64MD.lib
        │ libssl64MDd.lib
        │ libssl64MT.lib
        │ libssl64MTd.lib
        └ static
           │ libcrypto64MD.lib
           │ libcrypto64MDd.lib
           │ libcrypto64MT.lib
           │ libcrypto64MTd.lib
           │ libssl64MD.lib
           │ libssl64MDd.lib
           │ libssl64MT.lib
           └ libssl64MTd.lib
    
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末阳惹,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子眶俩,更是在濱河造成了極大的恐慌莹汤,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,729評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件颠印,死亡現場離奇詭異纲岭,居然都是意外死亡,警方通過查閱死者的電腦和手機线罕,發(fā)現死者居然都...
    沈念sama閱讀 95,226評論 3 399
  • 文/潘曉璐 我一進店門止潮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人钞楼,你說我怎么就攤上這事喇闸。” “怎么了询件?”我有些...
    開封第一講書人閱讀 169,461評論 0 362
  • 文/不壞的土叔 我叫張陵燃乍,是天一觀的道長。 經常有香客問我宛琅,道長刻蟹,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,135評論 1 300
  • 正文 為了忘掉前任嘿辟,我火速辦了婚禮舆瘪,結果婚禮上,老公的妹妹穿的比我還像新娘红伦。我一直安慰自己英古,他們只是感情好,可當我...
    茶點故事閱讀 69,130評論 6 398
  • 文/花漫 我一把揭開白布色建。 她就那樣靜靜地躺著哺呜,像睡著了一般。 火紅的嫁衣襯著肌膚如雪箕戳。 梳的紋絲不亂的頭發(fā)上某残,一...
    開封第一講書人閱讀 52,736評論 1 312
  • 那天国撵,我揣著相機與錄音,去河邊找鬼玻墅。 笑死介牙,一個胖子當著我的面吹牛,可吹牛的內容都是我干的澳厢。 我是一名探鬼主播环础,決...
    沈念sama閱讀 41,179評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼剩拢!你這毒婦竟也來了线得?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 40,124評論 0 277
  • 序言:老撾萬榮一對情侶失蹤徐伐,失蹤者是張志新(化名)和其女友劉穎贯钩,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體办素,經...
    沈念sama閱讀 46,657評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡角雷,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,723評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了性穿。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片勺三。...
    茶點故事閱讀 40,872評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖需曾,靈堂內的尸體忽然破棺而出吗坚,到底是詐尸還是另有隱情,我是刑警寧澤胯舷,帶...
    沈念sama閱讀 36,533評論 5 351
  • 正文 年R本政府宣布刻蚯,位于F島的核電站绊含,受9級特大地震影響桑嘶,放射性物質發(fā)生泄漏。R本人自食惡果不足惜躬充,卻給世界環(huán)境...
    茶點故事閱讀 42,213評論 3 336
  • 文/蒙蒙 一逃顶、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧充甚,春花似錦以政、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,700評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至技矮,卻和暖如春抖誉,著一層夾襖步出監(jiān)牢的瞬間殊轴,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,819評論 1 274
  • 我被黑心中介騙來泰國打工袒炉, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留旁理,地道東北人。 一個月前我還...
    沈念sama閱讀 49,304評論 3 379
  • 正文 我出身青樓我磁,卻偏偏與公主長得像孽文,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子夺艰,可洞房花燭夜當晚...
    茶點故事閱讀 45,876評論 2 361

推薦閱讀更多精彩內容