1. 环境准备与依赖安装
在Ubuntu 22.10上搭建WHIP直播推流环境,首先需要搞定基础依赖。我实测发现,直接apt安装的库经常会出现版本不匹配的问题,这里推荐源码编译的方式,虽然麻烦点但最稳妥。
1.1 OpenSSL编译踩坑实录
最新OpenSSL 3.0.x的编译有个大坑需要注意。执行./config时如果漏掉shared参数,会导致ffmpeg-webrtc找不到动态库。建议按这个顺序操作:
bash复制wget https://www.openssl.org/source/openssl-3.0.7.tar.gz
tar -xf openssl-3.0.7.tar.gz
cd openssl-3.0.7
./config --prefix=/usr/ --openssldir=/usr/ shared zlib
make -j$(nproc)
sudo make install
编译完成后,需要手动处理pkg-config路径问题。把/usr/lib64/pkgconfig/下的三个.pc文件拷贝到/usr/lib/pkgconfig/,否则后续编译会报"openssl < 3.0"的假错误。这个坑我折腾了半小时才找到原因。
1.2 Opus音频库的特别处理
音频编码推荐使用Opus,它在WebRTC场景下表现最好。Ubuntu仓库里的版本其实够用:
bash复制sudo apt install -y libopus-dev
但如果你需要特定版本,可以从官网下载源码编译。实测发现22.10自带的1.3.1版本在48000Hz采样率下延迟表现最优。
1.3 x264的编译技巧
视频编码必须用x264的baseline模式,这是WebRTC的硬性要求。千万别用apt直接安装,官方源的版本缺少关键参数:
bash复制git clone https://code.videolan.org/videolan/x264.git
cd x264
./configure --enable-shared --enable-static --disable-asm
make -j$(nproc)
sudo make install
记得加`--disable-a
