
1安裝Visual Studio 工程如 Visual Studio 2022建議安裝包含「使用 C 的桌面開發」工作負載以便后續編譯 Live555 相關工程。下載地址Visual Studio 官網選擇 Community 版本即可免費使用。安裝時勾選「使用 C 的桌面開發」工作負載并確保包含 MSVC 編譯器和 Windows SDK。2安裝cmake從 CMake 官網 下載安裝包選擇 Windows x64 版本的 .msi 安裝文件。安裝時勾選「Add CMake to the system PATH」確保命令行中可直接使用 cmake 命令。安裝完成后可在命令行執行cmake --version驗證是否安裝成功。3下載live555和CMAKE生成從 Live555 官網 下載最新源碼包并解壓然后在源碼根目錄執行以下命令生成 Visual Studio 工程3.1 下載源碼從 Live555 官網 下載最新源碼包live555-latest.tar.gz下載后解壓到本地目錄例如D:\live555。解壓后確認目錄中包含 BasicUsageEnvironment、groupsock、liveMedia、UsageEnvironment、testProgs 等子目錄。3.2 下載Visual Studio 工程cmake下載 windows VS 2022 cmake 文檔下載路徑為https://download.csdn.net/download/qazwsxwtc/93326509?spm1001.2014.3001.5501。下載完成后將壓縮包解壓取出其中的 CMakeLists.txt 文件備用。3.3 cmake生成工程把下載的 CMakeLists.txt 放在與 live 同目錄下即放在 project 目錄中與 live 文件夾平級。目錄結構如下3.3.1 ive555目錄:live/ ├── BasicUsageEnvironment ├── groupsock ├── liveMedia ├── UsageEnvironment └── testProgs # 示例程序3.3.2 CMakelists.txt放置處project ├─ CMakeLists.txt └─ live/ # live555源碼解壓在這里3.3.3 執行cmake生成工程cd project mkdir build cd build cmake .. -G Visual Studio 17 2022 -A x64生成成功后在目錄build/live555.sln用 Visual Studio 打開 build 目錄下的解決方案文件.sln即可編譯 Live555 相關工程。生成的工程為live555_solution ├─ Libraries │ ├─ UsageEnvironment │ ├─ BasicUsageEnvironment │ ├─ groupsock │ ├─ liveMedia │ └─ announceLib ├─ testserver │ ├─ mediaServerDemo │ ├─ proxyServerDemo │ └─ hlsProxyDemo └─ TestPrograms ├─ openRTSP ├─ playSIP ├─ live555Announce └─ ....4 問題4.1 testGSMStreamer工程編譯不過因為 createNewGSMAudioSource 函數并沒有在 Live555 庫中實現。這是一個示例/模板代碼意在展示如何構建 GSM 流媒體服務器但 Live555 官方庫中不包含 GSM 音頻的具體采集或文件讀取實現。你需要自己實現這個函數或者使用其他已有的測試程序作為參考。4.1.1 解決方案一 自實現 createNewGSMAudioSource 函數簡單示例從文件讀取1. 新建一個文件 GSMAudioSource.cpp。2. 實現如下邏輯簡化版實際需繼承 FramedSource#include liveMedia.hh #include GroupsockHelper.hh // 簡單的 GSM 文件源示例 class GSMAudioFileSource : public FramedSource { public: static GSMAudioFileSource* createNew(UsageEnvironment env, char const* fileName) { FILE* fid fopen(fileName, rb); if (!fid) return NULL; return new GSMAudioFileSource(env, fid); } virtual ~GSMAudioFileSource() { fclose(fFid); } protected: GSMAudioFileSource(UsageEnvironment env, FILE* fid) : FramedSource(env), fFid(fid) { } virtual void doGetNextFrame() { // GSM 幀大小通常為 33 字節 (全速率) 或 65 字節 (半速率等)具體取決于格式 // 這里假設每幀 33 字節實際需根據 GSM 文件格式調整 unsigned int frameSize 33; if (frameSize gt; fMaxSize) { fNumTruncatedBytes frameSize - fMaxSize; frameSize fMaxSize; } fFrameSize fread(fTo, 1, frameSize, fFid); if (fFrameSize 0) { handleClosure(); return; } // GSM 采樣率通常為 8000Hz每幀 20ms fPresentationTime fNextPresentationTime; fNextPresentationTime timeval{0, 20000}; afterGetting(this); } private: FILE* fFid; }; // 實現 testGSMStreamer.cpp 中聲明的函數 FramedSource* createNewGSMAudioSource(UsageEnvironment env) { // 請替換為你實際的 GSM 文件路徑 return GSMAudioFileSource::createNew(env, test.gsm); }4.1.2 方案二 臨時屏蔽該測試程序如果你不需要 GSM 支持可以在 CMakeLists.txt 或 VS 解決方案中排除 testGSMStreamer.cpp 的編譯。具體做法在 CMakeLists.txt 中找到 testGSMStreamer 相關的 target 定義將其注釋或刪除或者在 Visual Studio 解決方案資源管理器中右鍵該工程選擇「從項目中排除」。4.2 是否需要支持SSL4.2.1 支持選擇當前提供的CMakelists.txt屏蔽了SSL的支持 如果需要支持ssl修改cmake文件中的如下這才是說明NO_OPENSSL # 新增這一行關閉openssl依賴去掉這行打開openssltarget_compile_definitions(live555 PRIVATE _WIN32 WIN32 _CRT_SECURE_NO_WARNINGS _SCL_SECURE_NO_WARNINGS NO_GETIFADDRS NO_OPENSSL # 新增這一行關閉openssl依賴去掉這行打開openssl )4.2.2 openssl 下載如果需要啟用 SSL 支持需要先下載并安裝 OpenSSL。推薦從 Win32 OpenSSL 官網 下載 Windows 版本安裝包選擇與 Visual Studio 編譯環境匹配的版本建議選擇 Win64 OpenSSL 的完整安裝版例如 Win64 OpenSSL v3.x。安裝時注意以下幾點安裝路徑建議使用默認目錄例如C:\Program Files\OpenSSL-Win64便于后續在 CMake 中引用。安裝過程中選擇「Copy OpenSSL DLLs to /bin directory」或「Copy OpenSSL DLLs to the Windows system directory」確保運行時能加載 OpenSSL 動態庫。安裝完成后確認系統環境變量OPENSSL_ROOT_DIR已指向 OpenSSL 安裝目錄或在 CMake 配置時手動指定該路徑。安裝完成后回到 CMakeLists.txt去掉NO_OPENSSL這一行重新執行 cmake 生成工程即可啟用 SSL 支持。