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开发实战详解,含直播系统的搭建过程)》

相关推荐
Victor Zhong2 分钟前
llama.cpp 部署大模型到 Ubuntu 台式机 SOP
linux·ubuntu·llama
AAA代码批发商26 分钟前
DAYS 57【Linux 驱动深度】I2C 子系统驱动开发全指南:从架构、核心数据结构到设备驱动实战
linux·驱动开发·架构·内核开发·i2c 子系统
小此方43 分钟前
Linux网络(二十三):图文详解子网划分、分类划分的本质
linux·运维·网络
NendoZen1 小时前
mangopi(芒果派)MQ-R T113 Buildroot开启adbd调试
linux·嵌入式硬件
Huangjin007_1 小时前
【Linux 系统篇(二十九)】文件(六):动静态库制作
linux·运维·服务器
额额额对了1 小时前
Linux 驱动学习笔记(部分)
linux·笔记·学习
zhikouai2 小时前
AI辅助逆向工程链路:从二进制接入到等价性校验
java·linux·前端
可信时间戳2 小时前
原创作品如何做版权认证申请?先备材料,再挑路径
服务器·音视频·可信时间戳·权利卫士
程序员-Benothing2 小时前
Linux磁盘IO性能分析:iostat、iotop、fio实战
linux·运维·服务器
达之云*驭影2 小时前
用AI给视频一键更换文案、字幕与配音,需要哪些技术?
人工智能·音视频