Windows10环境安装编译SRT传输协议

本文详细介绍了如何在Windows10上使用MSVC、OpenSSL和C++11线程库构建SRT v1.4.3。首先,通过vcpkg安装OpenSSL和集成到CMake工具链,接着配置CMake以启用C++11线程库,最后拉取SRT源码并进行编译。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


前言

SRT协议是基于UDT的传输协议,保留了UDT的核心思想和机制,抗丢包能力强,适用于复杂的网络。
详情参见:https://zhuanlan.zhihu.com/p/114436399
官方链接:https://github.com/Haivision/srt/blob/master/docs/build/build-win.md


提示:以下是本篇文章正文内容,下面案例可供参考

1、SRT环境

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 <tag_name> https://github.com/haivision/srt.git srt
cd srt
set SRT_ROOT=%cd%

其中 --branch <tag_name> 可用于指定srt realease的版本,发本文时官方发布的版本为v1.4.4则命令为 --branch v1.4.4.
:我在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 .

代码构建成功
在工程代码目录下建立bin和inc
在工程代码目录下建立bin和inc
将生成的二进制代码拷贝到bin目录下
拷贝库文件
从srtcore文件夹拷贝头文件到inc文件夹
拷贝头文件
从build文件夹拷贝version.h文件到inc文件夹
拷贝头文件
从common/win文件夹拷贝syslog_fefs.h文件到inc\win文件夹
拷贝头文件


总结

本文仅仅简单介绍了Win10环境下SRTv1.4.3传输协议库的编译,而SRT库抗丢包能力强,能使我们快速便捷地在复杂的网络环境中传输视频数据。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值