【ffmpeg】基于需要使用videocapture的opencv编译配置(C++)

目录

配置简介

opencv使用videocapture读取视频流时,需要借助底层的ffmpeg库。如果不能正确编译,会报错,现记录正确编译配置方法。

ffmpeg源码编译方法记录

opencv依赖于ffmpeg,应该先编译ffmpeg。

cpp 复制代码
git clone https://github.com/FFmpeg/FFmpeg.git -b release/4.3
opencv:4.5.1

./configure --enable-shared  --enable-avresample --enable-gpl --enable-libx264 --prefix=/usr/myffmpg/
make -j$(nproc)
sudo make install

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/myffmpg/lib/
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/myffmpg/lib/pkgconfig/
export PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR:/usr/myffmpg/lib/
//让opencv编译时能搜索到ffmpeg
sudo cp /usr/myffmpg/lib/pkgconfig/* /usr/lib/x86_64-linux-gnu/pkgconfig/

gstreamer命令行安装方法

同样需要安装gstreamer

bash 复制代码
apt-get install software-properties-common
add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
//gstreamer:
sudo apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-bad1.0-dev gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-doc gstreamer1.0-tools gstreamer1.0-x gstreamer1.0-alsa gstreamer1.0-gl gstreamer1.0-gtk3 gstreamer1.0-qt5 gstreamer1.0-pulseaudio
export PKG_CONFIG_PATH=/usr/lib/x86_64-linux-gnu/pkgconfig:$PKG_CONFIG_PATH

opencv的编译项记录

依赖齐全后,按如下选型编译opencv(带opencv_contrib包)

bash 复制代码
cmake -DCMAKE_BUILD_TYPE=Debug -DOPENCV_EXTRA_MODULES_PATH=/work/opencv_contrib/modules -DWITH_OPENCL=OFF -DBUILD_DOCS=OFF -DBUILD_EXAMPLES=OFF -DBUILD_WITH_DEBUG_INFO=OFF -DBUILD_TESTS=OFF -DWITH_1394=OFF -DWITH_CUDA=OFF -DWITH_CUBLAS=OFF -DWITH_CUFFT=OFF -DWITH_OPENCLAMDBLAS=OFF -DWITH_OPENCLAMDFFT=OFF -DINSTALL_C_EXAMPLES=OFF -DINSTALL_PYTHON_EXAMPLES=OFF -DINSTALL_TO_MANGLED_PATHS=OFF -DBUILD_ANDROID_EXAMPLES=OFF -DBUILD_opencv_python=OFF -DBUILD_opencv_python_bindings_generator=OFF -DBUILD_opencv_apps=OFF -DBUILD_opencv_calib3d=ON -DBUILD_opencv_features2d=ON -DBUILD_opencv_flann=ON -DBUILD_opencv_java_bindings_generator=OFF -DBUILD_opencv_js=OFF -DBUILD_opencv_ml=OFF -DBUILD_opencv_objdetect=OFF -DBUILD_opencv_photo=OFF -DBUILD_opencv_python3=OFF -DBUILD_opencv_python_tests=OFF -DBUILD_opencv_shape=OFF -DBUILD_opencv_stitching=OFF -DBUILD_opencv_superres=OFF -DBUILD_opencv_ts=OFF -DBUILD_opencv_videostab=OFF -DBUILD_opencv_world=ON -DBUILD_opencv_dnn=ON -D WITH_FFMPEG=ON -D WITH_TIFF=OFF -D BUILD_TIFF=OFF -DWITH_FFMPEG=ON  --DWITH_GSTREAMER=ON  ..

opencv的完整编译安装方法链接

相关推荐
光影34151 分钟前
调用阿里的通义千问3-VL-Flash 系统提示词和用户提示词使用的token量比较
人工智能
啊阿狸不会拉杆2 分钟前
《数字图像处理》实验3-频率域处理方法
图像处理·人工智能·算法·计算机视觉·数字图像处理
哥本哈士奇3 分钟前
使用Gradio构建AI前端 - RAG召回测试
前端·人工智能
赋创小助手3 分钟前
超微SYS-821GE-TNHR深度测评:8卡 NVIDIA H200 风冷 AI 服务器
运维·服务器·人工智能·深度学习·计算机视觉·语言模型·自然语言处理
xwz小王子5 分钟前
Mini3DV 2025 | 观点总结:具身智能前沿与展望
人工智能·3d
学术小白人5 分钟前
JPCS出版| 往届检索可查 | 第四届机械工程与先进制造智能化技术研讨会(MEAMIT 2026)
大数据·人工智能·搜索引擎·能源·制造·ei会议·rdlink研发家
微爱帮监所写信寄信6 分钟前
6G+AI:重构微爱帮监狱写信寄信小程序的特殊通信未来
人工智能·小程序·重构·6g·监狱信件·监狱系统·服刑人员子女
Hello.Reader9 分钟前
Flink ML 迭代机制详解:有界迭代 vs 无界迭代、IterationBody、Epoch 与 API 实战
人工智能·机器学习·flink
超自然祈祷10 分钟前
从数据挖掘到人工智能的脉络地图
人工智能·机器学习·数据挖掘·数据分析
小徐Chao努力11 分钟前
【Langchain4j-Java AI开发】01-快速入门与HelloWorld
人工智能