FFmpeg开发笔记(三十四)Linux环境给FFmpeg集成libsrt和librist

《FFmpeg开发实战:从零基础到短视频上线》一书的"10.2 FFmpeg推流和拉流"提到直播行业存在RTSP和RTMP两种常见的流媒体协议。除此以外,还有比较两种比较新的流媒体协议,分别是SRT和RIST。

其中SRT全称为Secure Reliable Transport,中文叫做安全可靠传输协议。RIST全称为Reliable Internet Stream Transport,中文叫做可靠的互联网流传输协议。SRT和RIST两个协议均在2017年发布,腾讯视频云已将SRT作为传输层之上的协议。根据腾讯视频云的实践,相比传统的RTMP直播协议,SRT对推流卡顿问题有明显改善。下面就介绍如何在Linux环境给FFmpeg集成SRT协议的支持库libsrt,以及RIST协议的支持库librist。

一、安装libsrt

libsrt是一款SRT协议的支持库。它的源码托管页面是https://github.com/Haivision/srt,最新版本是2023年8月发布的libsrt-1.5.3,该版本的源码包下载地址是https://github.com/Haivision/srt/archive/refs/tags/v1.5.3.tar.gz。

libsrt的安装步骤说明如下。

1、将下载好的压缩包上传到服务器并解压,也就是依次执行以下命令。

复制代码
cd /usr/local/src
tar zxvf srt-1.5.3.tar.gz

2、进入解压后的srt目录,运行下面命令配置libsrt。

复制代码
cd srt-1.5.3
./configure

3、运行下面命令编译libsrt。

复制代码
make -j4

4、编译完成后,运行下面命令安装libsrt。

复制代码
make install

二、安装librist

librist是一款RIST协议的支持库。它的源码托管页面在https://code.videolan.org/rist/librist,最新版本是2023年10月发布的librist-v0.2.10,该版本的源码包下载地址是https://code.videolan.org/rist/librist/-/archive/v0.2.10/librist-v0.2.10.tar.gz。

librist的安装步骤说明如下。

1、安装编译工具meson和ninja

这两个工具已经在之前libdav1d的安装过程中安装了,这里不再赘述。

2、将下载好的压缩包上传到服务器并解压,也就是依次执行以下命令。

复制代码
cd /usr/local/src
tar zxvf librist-v0.2.10.tar.gz
cd librist-v0.2.10

3、进入解压后的build目录,运行下面命令配置librist。

复制代码
mkdir build
cd build
meson setup

4、运行下面命令编译librist。

复制代码
ninja

5、编译完成后,运行下面命令安装librist。

复制代码
ninja install

三、启用libsrt和librist

由于FFmpeg默认未启用libsrt和librist,因此需要重新配置FFmpeg,标明启用libsrt和librist,然后重新编译安装FFmpeg。FFmpeg的Linux环境完整编译过程参见《FFmpeg开发实战:从零基础到短视频上线》一书的"1.2.3 自行编译与安装FFmpeg",详细的启用步骤说明如下。

1、回到FFmpeg源码的目录,执行以下命令重新配置FFmpeg,主要增加启用libsrt和librist。(增加了选项" --enable-libsrt --enable-librist")

复制代码
./configure --prefix=/usr/local/ffmpeg --enable-shared --disable-static --disable-doc --enable-zlib --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libdavs2 --enable-libmp3lame --enable-libfreetype --enable-libass --enable-libfribidi --enable-libxml2 --enable-fontconfig --enable-sdl2 --enable-libvorbis --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-version3 --enable-libopus --enable-libvpx --enable-openssl --enable-libaom --enable-libsvtav1 --enable-libdav1d --enable-libuavs3d --enable-libwebp --enable-libxvid --enable-libsrt --enable-librist --enable-iconv --enable-gpl --enable-nonfree

2、运行下面命令编译FFmpeg。

复制代码
make clean
make -j4

3、执行下面命令安装FFmpeg。

复制代码
make install

4、运行以下命令查看FFmpeg的版本信息。

复制代码
ffmpeg -version

查看控制台回显的FFmpeg版本信息,找到" --enable-libsrt --enable-librist",说明FFmpeg正确启用了SRT协议的支持库libsrt,以及RIST协议的支持库librist。

更多详细的FFmpeg开发知识参见《FFmpeg开发实战:从零基础到短视频上线》一书。

本系列的FFmpeg进阶文章目录为《FFmpeg开发笔记全目录(FFmpeg开发实战详解,含直播系统的搭建过程)》

相关推荐
buhuizhiyuci2 分钟前
【Linux 篇】数字世界的水流蓄水池 —— IO 缓冲区机制深度实战解析
linux·运维·服务器·c++
骇客野人10 分钟前
Linux 服务器 Python 版 MCP 服务部署整体方案(适配 Claude/Cursor/自研Agent)
linux·服务器·python
AI视觉网奇14 分钟前
动作识别 视频理解大模型
开发语言·python·音视频
DogDaoDao18 分钟前
NNVC-17.1 深度解析:神经网络视频编码的最新进展与性能全景
神经网络·音视频·视频编解码·h266·vvc·vtm·nnvc
科技新资讯33 分钟前
视频出海精细化升级:帧级对口型技术与商用工具落地能力分析
人工智能·音视频
诸葛大钢铁38 分钟前
视频转音频怎么转换?在线工具、VLC、FFmpeg 三种方法详解
ffmpeg·音视频·mp4转mp3·视频转音频·视频转mp3·视频提取音频
天疆说42 分钟前
04 稳定性与性能调优实录:OOM 崩溃、并发槽位、前缀缓存与 DSpark 调参
linux·运维·缓存
星卯教育tony43 分钟前
NOI Linux 2.0 服务器多用户网页桌面部署方案(腾讯云轻量Ubuntu20.04专属版 CSP复赛比赛环境搭建免安装虚拟机 )
linux·服务器·腾讯云
qingmiaozhuan44 分钟前
电脑录屏软件追剧高光截取:FFmpeg帧裁剪与可视化方案对比
ffmpeg·电脑·音视频开发·录屏技术·电脑录屏
xingyuzhisuan1 小时前
团队实践:引入 Vera 1.1 之后,视频内容团队工作流重构
人工智能·重构·音视频