FFmpeg開發筆記(三十四)Linux環境給FFmpeg整合libsrt和librist

aqi00發表於2024-06-30
《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開發實戰:從零基礎到短影片上線》一書。

相關文章