ffmpeg编译配置srt模块

发布时间 2023-05-15 09:41:15作者: 阿风小子

官网拉取srt源码

git clone https://github.com/Haivision/srt.git
sudo apt-get update

sudo apt-get upgrade

sudo apt-get install tclsh pkg-config cmake libssl-dev build-essential zlib1g-dev git

打开目录进行编译
默认的安装路径是/usr/local,默认静态动态一起编译。

./configure
make
make install

为防止后面编译ffmpeg找不到新加入的srt库,刷新一下系统库连接。

sudo ldconfig
编译ffmpeg时新增项

./configure --enable-libsrt
笔者还需要添加其他功能,编译选项为

sudo ./configure --disable-x86asm --enable-shared --enable-libx264 --enable-swscale --enable-gpl --enable-nonfree --enable-libfdk-aac --enable-decoder=h264 --enable-protocol=rtmp --enable-demuxer=rtsp --enable-parser=h264 --enable-bsf=extract_extradata --enable-muxer=flv --enable-encoder=h264 --enable-decklink --extra-cflags=“-I/home/yqw/Deck_Link/DeckLink/DeckLink_SDK/Linux/include” --extra-ldflags=“-I/home/yqw/Deck_Link/DeckLink/DeckLink_SDK/Linux/include” --enable-libsrt --prefix=/usr/local

make -j10
报错:

error: ‘SRTO_STRICTENC’ undeclared
error: ‘SRTO_SMOOTHER’undeclared

原来是srt已经更新了这两个宏的名称,而ffmpeg还没有更新,需要到libavformat/libsrt.c路径下,手动改一下这两个宏。

SRTO_SMOOTHER -> SRTO_CONGESTION SRTO_STRICTENC ->
SRTO_ENFORCEDENCRYPTION SRTO_TSBPDDELAY -> SRTO_LATENCY//如果报错的话,也更新一下

顺便说一下,百度搜索第四页才找到相关信息,嗟呼!国内音视频门槛依然很高!

sudo make install
其中在centos7会报错:

提示ERROR: srt >= 1.3.0 not found using pkg-config

cp /usr/local/lib64/pkgconfig/haisrt.pc /usr/lib64/pkgconfig
cp srt/srt.pc /usr/lib64/pkgconfig
srt.pc是srt源码的一个文件
关于pkgconfig,见pkgconfig介绍
有问题评论区提问。