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

     

  • 相关阅读:
    氧化石墨烯(GO)掺杂多壁碳纳米管-离子液体(MWCNTs-IL)复合物偶联金纳米粒子(AuNPs)|MWCNTs-IL-GO/AuNPs复合纳米材料
    Java 数据结构、集合框架、ArrayList
    YZ系列工具之YZ12:VBA_4种方法设计下拉列表
    设计模式(2) - 创建型模式
    [读论文]DiT Scalable Diffusion Models with Transformers
    计算机毕业设计ssm基于SSM框架下水果篮子项目管理系统的设计与实现 c9pjx系统+程序+源码+lw+远程部署
    详解JVM垃圾回收
    【高项】- 进度管理论文
    微服务分布式下数据库表设计
    【C++】string模拟实现
  • 原文地址:https://www.cnblogs.com/aqi00/p/18240185