目录

  • 1. 报错
  • 2. 报错原因
  • 3. 卸载当前ffmpeg
    • 3.1. 卸载apt安装的ffmpeg
    • 3.2. 卸载编译安装的ffmpeg
  • 4. 编译安装ffmpeg 4.3
    • 4.1. 下载安装包
    • 4.2. 安装依赖
    • 4.3. 编译安装
    • 4.4. 测试ffmpeg
  • 5. 编译安装opencv 4.1.1

在jetson nano上尝试用python调用.so文件,但是报错,报错信息显示是opencv出现问题,遂决定重装opencv。先是编译opencv 3.4.10,报错,后面又重装之前的opencv 4.1.1,居然依旧报错。遂记录。

1. 报错

无论是opencv的3.4.10还是4.1.1,均报同样的错,所以肯定不是opencv的问题。

报错如下

/opt/opencv4/opencv-4.1.1/modules/videoio/src/cap_ffmpeg_impl.hpp:585:34: error: ‘AVStream {aka struct AVStream}’ has no member named ‘codec’avcodec_close( video_st->codec );^~~~~
/opt/opencv4/opencv-4.1.1/modules/videoio/src/cap_ffmpeg_impl.hpp: At global scope:
/opt/opencv4/opencv-4.1.1/modules/videoio/src/cap_ffmpeg_impl.hpp:775:39: error: ‘AVLockOp’ has not been declaredstatic int LockCallBack(void **mutex, AVLockOp op)^~~~~~~~
/opt/opencv4/opencv-4.1.1/modules/videoio/src/cap_ffmpeg_impl.hpp: In function ‘int LockCallBack(void**, int)’:
/opt/opencv4/opencv-4.1.1/modules/videoio/src/cap_ffmpeg_impl.hpp:780:14: error: ‘AV_LOCK_CREATE’ was not declared in this scopecase AV_LOCK_CREATE:^~~~~~~~~~~~~~
/opt/opencv4/opencv-4.1.1/modules/videoio/src/cap_ffmpeg_impl.hpp:780:14: note: suggested alternative: ‘AV_LOG_TRACE’case AV_LOCK_CREATE:^~~~~~~~~~~~~~AV_LOG_TRACE
/opt/opencv4/opencv-4.1.1/modules/videoio/src/cap_ffmpeg_impl.hpp:789:14: error: ‘AV_LOCK_OBTAIN’ was not declared in this scopecase AV_LOCK_OBTAIN:^~~~~~~~~~~~~~
/opt/opencv4/opencv-4.1.1/modules/videoio/src/cap_ffmpeg_impl.hpp:789:14: note: suggested alternative: ‘CLOCK_TAI’case AV_LOCK_OBTAIN:^~~~~~~~~~~~~~CLOCK_TAI
...

报错信息还有很多,但是均指向同一个文件modules/videoio/src/cap_ffmpeg_impl.hpp,考虑ffmpeg出现问题。

2. 报错原因

参考opencv官方论坛上的回答


报错原因为ffmpeg版本过高,解决方法为安装ffmpeg 4.4及以前版本。

3. 卸载当前ffmpeg

参考博客《Ubuntu16.04卸载旧的ffmpeg安装新的ffmpeg》

3.1. 卸载apt安装的ffmpeg

如果用apt-get install ffmpeg安装的,使用以下命令卸载

sudo apt-get --purge remove ffmpeg
sudo apt-get --purge autoremove
3.2. 卸载编译安装的ffmpeg

以ffmpeg-4.1为例,进入ffmpeg安装目录,如下

cd ffmpeg-4.1
make uninstall  ##删除由make install命令安装的文件
make clean  ##只删除make时产生的临时文件
make distclean  ##同时删除configure和make产生的临时文件

4. 编译安装ffmpeg 4.3

参考博客《Jetson 环境安装(三):jetson nano配置ffmpeg和nginx(亲测)》

4.1. 下载安装包

这里,我把安装包下载在~/Downloads/路径下,并解压

wget http://www.ffmpeg.org/releases/ffmpeg-4.3.tar.gz
tar -zxvf ffmpeg-4.3.tar.gz
4.2. 安装依赖

如下

sudo apt-get install -y nasm yasm cmake mercurial
sudo apt-get install -y libxcb-xfixes0-dev pkg-config texinfo wget zlib1g-dev
sudo apt-get install -y libtool libva-dev libvdpau-dev libvorbis-dev libxcb1-dev libxcb-shm0-dev
sudo apt-get install -y libfreetype6-dev libsdl2-dev libtheora-dev
sudo apt-get install -y autoconf automake build-essential git libass-dev
sudo apt-get install libx264-dev
sudo apt-get install libx265-dev libnuma-dev
sudo apt-get install libvpx-dev

注意,如果安装报错,考虑更换源,我的源如下

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb http://mirrors.ustc.edu.cn/ubuntu-ports bionic main restricted universe multiverse
# deb-src http://mirrors.ustc.edu.cn/ubuntu-ports bionic main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu-ports bionic-updates main restricted universe multiverse
# deb-src http://mirrors.ustc.edu.cn/ubuntu-ports bionic-updates main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu-ports bionic-backports main restricted universe multiverse
# deb-src http://mirrors.ustc.edu.cn/ubuntu-ports bionic-backports main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu-ports bionic-security main restricted universe multiverse
# deb-src http://mirrors.ustc.edu.cn/ubuntu-ports bionic-security main restricted universe multiverse# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-security main restricted universe multiverse# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-proposed main restricted universe multiverse# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.aliyun.com/ubuntu-ports/ bionic main restricted universe multiverse
# deb-src https://mirrors.aliyun.com/ubuntu-ports/ bionic main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu-ports/ bionic-updates main restricted universe multiverse
# deb-src https://mirrors.aliyun.com/ubuntu-ports/ bionic-updates main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu-ports/ bionic-backports main restricted universe multiverse
# deb-src https://mirrors.aliyun.com/ubuntu-ports/s bionic-backports main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu-ports/ bionic-security main restricted universe multiverse
# deb-src https://mirrors.aliyun.com/ubuntu-ports/ bionic-security main restricted universe multiverse# 预发布软件源,不建议启用
# deb https://mirrors.aliyun.com/ubuntu-ports/ bionic-proposed main restricted universe multiverse
# deb-src https://mirrors.aliyun.com/ubuntu-ports/ bionic-proposed main restricted universe multiversedeb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial main multiverse restricted universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial-security main multiverse restricted universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial-updates main multiverse restricted universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial-backports main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial-security main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial-updates main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial-backports main multiverse restricted universe
4.3. 编译安装

这里,我们把~/Downloads/中已经解压的ffmpeg-4.3文件夹移入到/opt/路径下

cd ~/Downloads
sudo mv -f ffmpeg-4.3 /opt/

然后进入ffmpeg-4.3,编译

cd /opt/ffmpeg-4.3
sudo ./configure --enable-shared   --enable-libx264  --enable-gpl --enable-libx265  --prefix=/usr/local/ffmpeg
sudo make && sudo make install

然后配置全局环境变量

sudo vim /etc/profile

在最后加入

export FFMPEG_HOME=/usr/local/ffmpeg
export PATH=$FFMPEG_HOME/bin:$PATH

保存,退出,并输入

source /etc/profile

将ffmpeg添加进动态库目录,如下

sudo vim /etc/ld.so.conf.d/ffmpeg.conf

添加如下内容

/usr/local/ffmpeg/lib

配置生效

ldconfig
4.4. 测试ffmpeg
ffmpeg -version

输出如下内容即可

5. 编译安装opencv 4.1.1

参考博客《jetson nano和jetson nx 重装opencv(opencv4.1.1+opencv-contrib安装)》

opencv 编译安装时出现报错 modules/videoio/src/cap_ffmpeg_impl.hpp:585:34: error: ‘AVStream {aka struct AVStre相关推荐

  1. [ERROR:0] global /build/opencv/modules/videoio/src/cap_ffmpeg_impl.hpp (2791) open VIDEOIO/FFMPEG: F

    用模型处理视频时,遇到如下报错,不支持x264编码: [ERROR:0] global /build/opencv/modules/videoio/src/cap_ffmpeg_impl.hpp (2 ...

  2. 解决pip安装时出现报错TypeError: unsupported operand type(s) for -=: ‘Retry‘ and ‘int‘

    我在Linux下使用pip安装时出现报错: Exception: Traceback (most recent call last):File "/usr/lib/python2.7/dis ...

  3. 编译PX4时,报错error ‘i‘ does not name a type __ULong i[2];解决方法

    编译PX4时,报错error: 'i' does not name a type __ULong i[2];解决方法 在编译PX4的时候,会遇到报错: /usr/include/newlib/math ...

  4. pycharm中python调用百度aip所遇问题解决方案记录:pip安装时版本报错以及aip导入时报错no module named aip/requests)

    pycharm中python调用百度aip所遇问题解决方案记录:pip安装时版本报错以及aip导入时报错no module named aip/requests pip安装时版本报错 pip升级后安装 ...

  5. pip问题:windows环境pip安装时一直报错Could not fetch URL

    windows环境pip安装时一直报错Could not fetch URL 可能是url的来源的问题,换成了国内的pip源就可以正常安装了,我使用的是: pip install opencv-pyt ...

  6. QTP9.2安装时,报错:WinXPSP2_Rmt_Agent_Fix,缺少对象

    QTP9.2安装时,报错:WinXPSP2_Rmt_Agent_Fix,Run-time error '424':Object required. 中文的如下: 原因: 系统内没有注册scrrun.d ...

  7. QTP9.2安装时,报错:WinXPSP2_Rmt_Agent_Fix,缺少对象 1

    QTP9.2安装时,报错:WinXPSP2_Rmt_Agent_Fix,Run-time error '424':Object required. 中文的如下: 原因: 系统内没有注册scrrun.d ...

  8. 编译内核 make modules_install报错make[1]: *** [arch/x86/crypto/aegis128-aesni.ko] Error 1 Makefile:1281: r

    Linux编译内核 make modules_install报错make[1]: *** [arch/x86/crypto/aegis128-aesni.ko] Error 1 Makefile:12 ...

  9. zabbix 安装时的报错mysql_connect(): Access denied for us

    zabbix在安装完成时的报错 出现提示:mysql_connect(): Access denied for user 'zabbix'@'localhost' (using password: Y ...

最新文章

  1. c语言程序代码_10道C语言笔试模拟题,来看看你掌握的怎么样?
  2. windows安装spark工具记录
  3. 关于mysql数据库的外键插入报错:Cannot add or update a child row: a foreign key constraint fails,完整性问题
  4. Php正则替换字符串
  5. 11月AI大事件回顾:GPT3开放使用/女娲视觉大模型/AE文艺复兴/...
  6. zincrby redis python_【Redis数据结构 序】使用redis-py操作Redis数据库
  7. 今天早上买的这个猪蹄和花生辣条不是味道
  8. vue的main.js讲解一
  9. Git:tag标签的使用
  10. 【渝粤教育】电大中专建筑施工组织 (2)作业 题库
  11. winform调用fastreport制作报表(三)绑定数据
  12. Linux - yum安装步骤
  13. QT_qss文件简易使用教程
  14. 舵机工作原理及STM32驱动代码
  15. 人脸服务器如何与门禁系统对接,人脸识别终端门禁系统解决方案
  16. Kaldi WFST HCLG.fst 构图 学习
  17. 【解决方案】“博物馆热”背后,如何建设安防视频监控体系保障文物安全?
  18. 当人们在说大数据的时候到底在说什么?
  19. 游戏模型外包-【精刚石数位】
  20. 常用控件 — 列表视图

热门文章

  1. 三维数组地址计算_C语言进阶之路:数据类型 - 多维数组与指针!我的心中只有学习!...
  2. 计算机组成原理 第二章 数据的表示与运算
  3. 第九讲 博弈论在机制设计中的应用练习题
  4. 机器学习、深度学习资料推荐
  5. ubuntu使用apt-get时出现could not get lock怎么解决
  6. 由m种数字组成的n位数有多少个
  7. Java使用代理服务器
  8. 如何在markdown(csdn)中打出某个字符上面的三角帽子符号
  9. 搭建本地ubuntu镜像服务器(arm版)
  10. LeetCode 面试题 01.06. 字符串压缩 (双指针)