头图

​《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/libr...
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开发实战:从零基础到短视频上线》一书。

 


aqi00
12 声望4 粉丝

著有技术书籍《FFmpeg开发实战:从零基础到短视频上线》、《Android Studio开发实战:从零基础到App上线》、《好好学Java:从零基础到项目实战》、《Kotlin从零到精通Android开发》等等。