美文网首页SLAM、OpenCV、Linux、ROS等
Linux中FFmpeg与OpenCV多版本安装

Linux中FFmpeg与OpenCV多版本安装

作者: 一恪slam | 来源:发表于2019-01-02 16:13 被阅读0次

    背景

    某项目的OpenCV需要用到处理视频功能,而OpenCV中的视频功能是基于ffmpeg开发的。

    版本选择

    OpenCV版本:3.0
    FFmpeg版本:需于OpenCV对应,在OpenCV源码目录opencv-3.0.0/3rdparty/ffmpeg/ffmpeg_version.cmake查看版本,笔者查询到的版本为

    set(ALIASOF_libavcodec_VERSION 55.18.102)
    set(ALIASOF_libavformat_VERSION 55.12.100)
    set(ALIASOF_libavutil_VERSION 52.38.100)
    set(ALIASOF_libswscale_VERSION 2.3.100)
    set(ALIASOF_libavresample_VERSION 1.0.1)
    

    去网站FFmpeg查询与自己OpenCV对应的版本型号。
    笔者查询到的为:

    image.png

    安装

    配置安装FFmpeg的相关参数

    ./configure --enable-shared --prefix=/your/install/path/ffmpeg-2.0.7/lib --disable-yasm
    

    yasm是一款汇编器,由于系统未安装yasm,故此禁用。

    编译并安装

    make -j20 && make install
    

    安装好之后查询ffmpeg版本

    ffmpeg -version
    

    报错解决

    ./ffmpeg: error while loading shared libraries: libavdevice.so.55: cannot open shared object file: No such file or directory
    

    原因是lib目录未加载到链接到系统库中,系统ld目录列表在/etc/ld.so.conf中。
    需要创建一个文件并写入lib路径即可,执行命令:
    sudo vim /etc/ld.so.conf.d/ffmpeg.conf然后添加一行内容: /your/install/path/ffmpeg-2.0.7/lib之后保存并退出,然后执行 sudo ldconfig 使配置生效,现在再次执行 ./ffmpeg -version 显示就正常了
    修改OpenCV中的FFmpeg目录
    由于FFmpeg安装时没有将其安装到系统的默认路径下,所以需要在OpenCV中修改其安装路径。
    找到$OpenCV_DIR/cmake/OpenCVFindLibsVideo.cmake文件的221行左右并添加进ffmpeg安装目录。

    find_path(FFMPEG_INCLUDE_DIR "libavformat/avformat.h"
                    PATHS /your/ffmpeg/install/path /usr/local /usr /opt
                    PATH_SUFFIXES include
                    DOC "The path to FFMPEG headers")
    

    后记

    再多安装其他版本的ffmpeg步骤同上。
    安装其他软件如果需要自定义安装路径可以按照上面的思路进行修改。

    相关文章

      网友评论

        本文标题:Linux中FFmpeg与OpenCV多版本安装

        本文链接:https://www.haomeiwen.com/subject/xoizlqtx.html