文章目录
前言
OpenCV有些API需要依赖FFMpeg的功能,例如cv::VideoWriter
一、版本选择
1.Ubuntu22.04
2.OpenCV4.9.0
4.FFmpeg4.4.5
二、FFmpeg编译
需要支持H264
1.安装依赖库
c
sudo apt update
sudo apt install -y \
build-essential \
pkg-config \
automake \
libtool \
git \
yasm \
nasm \
libx264-dev \
libv4l-dev \
libfdk-aac-dev \
libmp3lame-dev \
libopus-dev \
libx265-dev \
zlib1g-dev
libx264-dev: 这个包提供了 H.264 编码器所需的开发库。
yasm: 是汇编编译器,FFmpeg 构建时需要它。
nasm: 另一个汇编编译器,有时也需要安装。
2.下载并编译 FFmpeg
从github下载FFmpeg-release-4.4.5源码
c
unzip FFmpeg-master.zip
mv FFmpeg-master ffmpeg
cd ffmpeg
3.配置编译选项
bash
./configure \
--enable-gpl \
--enable-libx264 \
--enable-shared \
--enable-pic \
--enable-nonfree \
--enable-libv4l2 \
--prefix=/usr/local
--enable-gpl: 启用 GPL 许可下的功能。
--enable-libx264: 启用 H.264 编码器支持。
--enable-shared: 构建共享库(如果你需要共享库的话)。
--enable-pic: 启用位置无关代码,适用于某些平台的优化。
--enable-nonfree: 如果你需要启用一些非免费功能,如 libx264(某些功能可能受到许可限制),需要启用 --enable-nonfree。
4.编译 FFmpeg
bash
make -j$(nproc)
-j$(nproc) 会利用所有可用的 CPU 核心来加速编译过程。
5.安装 FFmpeg
bash
sudo make install
sudo ldconfig
这将 FFmpeg 安装到默认的系统路径中。你可以检查 FFmpeg 是否成功安装,并且支持 H.264 编码:
bash
ffmpeg -codecs | grep libx264
如果一切顺利,你应该能看到类似以下内容:
bash
DEV.LS h264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (decoders: h264 h264_v4l2m2m) (encoders: libx264)
安装完成后,运行以下命令来检查 FFmpeg 是否支持 H.264 编码:
bash
ffmpeg -codecs | grep h264
三、OpenCV编译
参考YOLOX推理系列3-支持NVIDIA-GPU的OpenCV编译
其中构建cmake添加FFmpeg支持:
bash
cmake \
-D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D INSTALL_PYTHON_EXAMPLES=OFF \
-D INSTALL_C_EXAMPLES=OFF \
-D OPENCV_ENABLE_NONFREE=ON \
-D OPENCV_GENERATE_PKGCONFIG=ON \
-D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules \
-D BUILD_EXAMPLES=ON \
-D WITH_CUDA=ON \
-D WITH_CUDNN=ON \
-D OPENCV_DNN_CUDA=ON \
-D WITH_CUBLAS=ON \
-D CUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda \
-D OpenCL_LIBRARY=/usr/local/cuda/lib64/libOpenCL.so \
-D OpenCL_INCLUDE_DIR=/usr/local/cuda/include/ \
-D WITH_FFMPEG=ON \
-D FFMPEG_DIR=/usr/local \
..
总结
主要是版本对应