- 前言
- 1、SRT环境
- 1.2、vcpkg包管理
- 2. 依赖库部署
- 2.1. 加密库
- 2.1.1. 使用x64工具链构建openssl库
- 2.2. 线程库
- 2.2.1 使用 C++11 线程库
- 3. 构建SRT
- 拉取SRT源码
- 总结
前言
SRT协议是基于UDT的传输协议,保留了UDT的核心思想和机制,抗丢包能力强,适用于复杂的网络。
详情参见:https://zhuanlan.zhihu.com/p/114436399。
官方链接:https://github.com/Haivision/srt/blob/master/docs/build/build-win.md
提示:以下是本篇文章正文内容,下面案例可供参考
MSVC+OpenSSL+Standard C++11 thread library
1.2、vcpkg包管理首先需要安装git,可参见其他博客文章。
为了便于 *** 作,我将代码保存在硬盘根目录下的opt文件夹中
mkdir opt
cd opt
使用Git拉取vcpkg源码到本地:
git clone https://github.com/microsoft/vcpkg.git
cd vcpkg
运行自动配置vcpkg
.\bootstrap-vcpkg.bat
将当前文件夹目录设置为VCPKG_ROOT变量
set VCPKG_ROOT=%cd%
可通过echo命令检查设置情况
echo %VCPKG_ROOT%
2. 依赖库部署
2.1. 加密库
2.1.1. 使用x64工具链构建openssl库
注意! 当前 VCPKG_ROOT变量的值应为vcpkg的文件路径。
cd VCPKG_ROOT
vcpkg install openssl --triplet x64-windows
将vcpkg整合至代码生成系统,这样CMake就能定位到openssl库的位置
vcpkg integrate install
之后在CMake中应该可以看到通过下面的选项找到openssl
-DCMAKE_TOOLCHAIN_FILE=%VCPKG_ROOT%\scripts\buildsystems\vcpkg.cmake
2.2. 线程库
SRT库建议使用C++11 线程函数 (SRT版本1.4.2 及以上版本) 目前默认 SRT 版本为 1.4.4;
2.2.1 使用 C++11 线程库若想要使用 标准 C++ 线程库 (从C++11开始支持) 需在CMake时使用以下选项。
-DENABLE_STDCXX_SYNC=ON.
如果不设此项则必须使用一个外部线程库依赖如PThreads for Windows wrapper库。
3. 构建SRT 拉取SRT源码git clone --branch https://github.com/haivision/srt.git srt
cd srt
set SRT_ROOT=%cd%
其中 --branch
注:我在Windows 10尝试使用v1.4.4时总是会碰到PThread.dll文件找不到。而我又不想使用PThread,改用v1.4.3后就没有该问题了。
如:
git clone --branch v1.4.3 https://github.com/haivision/srt.git srt
然后建立build文件夹存放生成的CMake文件,并进入build文件夹。
mkdir build
cd build
根据我的配置使用如下命令生成CMake文件
cmake ../ -G"Visual Studio 16 2019" -A x64 -DCMAKE_TOOLCHAIN_FILE="c:\opt\vcpkg\scripts\buildsystems\vcpkg.cmake" -DENABLE_STDCXX_SYNC=ON
使用下述命令编译代码
cmake --build .
总结
本文仅仅简单介绍了Win10环境下SRTv1.4.3传输协议库的编译,而SRT库抗丢包能力强,能使我们快速便捷地在复杂的网络环境中传输视频数据。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)