其中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、將下載好的壓縮包上傳到伺服器並解壓,也就是依次執行以下命令。
2、進入解壓後的srt目錄,執行下面命令配置libsrt。
3、執行下面命令編譯libsrt。
4、編譯完成後,執行下面命令安裝libsrt。
二、安裝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、將下載好的壓縮包上傳到伺服器並解壓,也就是依次執行以下命令。
3、進入解壓後的build目錄,執行下面命令配置librist。
4、執行下面命令編譯librist。
5、編譯完成後,執行下面命令安裝librist。
三、啟用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”)
2、執行下面命令編譯FFmpeg。
3、執行下面命令安裝FFmpeg。
4、執行以下命令檢視FFmpeg的版本資訊。
檢視控制檯回顯的FFmpeg版本資訊,找到“ --enable-libsrt --enable-librist”,說明FFmpeg正確啟用了SRT協議的支援庫libsrt,以及RIST協議的支援庫librist。
更多詳細的FFmpeg開發知識參見