kk_y 2024-08-15 13:09 采纳率: 23.1%
浏览 2
已结题

src/av/codec/codec.c:8336:48: error: ‘AV_CODEC_CAP_HARDWARE’ undeclared

在jetson xavier nx(arm系统)上安装av包时报错如下:

src/av/codec/codec.c:8336:48: error: ‘AV_CODEC_CAP_HARDWARE’ undeclared (first use in this function); did you mean ‘AV_CODEC_CAP_DR1’?
   __pyx_t_8 = __Pyx_PyInt_From___pyx_anon_enum(AV_CODEC_CAP_HARDWARE); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 121, __pyx_L1_error)
                                                ^~~~~~~~~~~~~~~~~~~~~
                                                AV_CODEC_CAP_DR1
src/av/codec/codec.c:8336:48: note: each undeclared identifier is reported only once for each function it appears in
src/av/codec/codec.c:8357:48: error: ‘AV_CODEC_CAP_HYBRID’ undeclared (first use in this function); did you mean ‘AV_CODEC_CAP_DR1’?
   __pyx_t_8 = __Pyx_PyInt_From___pyx_anon_enum(AV_CODEC_CAP_HYBRID); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 125, __pyx_L1_error)
                                                ^~~~~~~~~~~~~~~~~~~
                                                AV_CODEC_CAP_DR1
error: command 'aarch64-linux-gnu-gcc' failed with exit status 1

av安装包是通过https://pypi.tuna.tsinghua.edu.cn/packages/aa/2f/6a4b1916d4ebeb02307ae7b03d55d6ef5f027541bd8bb54f91955bea070a/av-10.0.0.tar.gz下载的,之后执行setup.py文件进行安装(python3 setup.py install).

  • 写回答

2条回答 默认 最新

  • GISer Liu 2024-08-15 13:10
    关注

    该回答引用自GPT-deepseek, 由博主 GISer Liu 编写:

    问题分析

    用户在Jetson Xavier NX(ARM系统)上安装av包时遇到了编译错误,具体错误信息是AV_CODEC_CAP_HARDWAREAV_CODEC_CAP_HYBRID未声明。这些常量通常是FFmpeg库的一部分,因此问题可能与FFmpeg库的版本或配置有关。

    解决方案

    1. 确认FFmpeg版本

    首先,确认系统上安装的FFmpeg版本是否支持AV_CODEC_CAP_HARDWAREAV_CODEC_CAP_HYBRID常量。这些常量在较新的FFmpeg版本中才被引入。

    2. 更新FFmpeg

    如果FFmpeg版本较旧,需要更新到支持这些常量的版本。可以通过以下步骤更新FFmpeg:

    # 卸载旧版本FFmpeg(如果已安装)
    sudo apt-get remove ffmpeg
    
    # 添加FFmpeg源
    sudo apt-get update
    sudo apt-get install software-properties-common
    sudo add-apt-repository ppa:jonathonf/ffmpeg-4
    
    # 安装FFmpeg
    sudo apt-get update
    sudo apt-get install ffmpeg
    

    3. 重新编译av包

    更新FFmpeg后,重新编译并安装av包。

    # 下载av包
    wget https://pypi.tuna.tsinghua.edu.cn/packages/aa/2f/6a4b1916d4ebeb02307ae7b03d55d6ef5f027541bd8bb54f91955bea070a/av-10.0.0.tar.gz
    tar -xzf av-10.0.0.tar.gz
    cd av-10.0.0
    
    # 安装依赖
    sudo apt-get install -y build-essential python3-dev
    
    # 编译并安装av包
    python3 setup.py install
    

    4. 检查编译错误

    如果在重新编译过程中仍然遇到错误,可以尝试手动修改codec.c文件,添加缺失的常量定义。

    打开src/av/codec/codec.c文件,找到报错的位置,添加以下定义:

    #ifndef AV_CODEC_CAP_HARDWARE
    #define AV_CODEC_CAP_HARDWARE (1 << 19)
    #endif
    
    #ifndef AV_CODEC_CAP_HYBRID
    #define AV_CODEC_CAP_HYBRID (1 << 20)
    #endif
    

    然后重新执行安装命令:

    python3 setup.py install
    

    总结

    通过更新FFmpeg库并重新编译av包,可以解决AV_CODEC_CAP_HARDWAREAV_CODEC_CAP_HYBRID未声明的问题。如果仍然遇到编译错误,可以手动添加缺失的常量定义。希望这些步骤能帮助您成功安装av包。

    如果该回答解决了您的问题,请采纳!如果没有,请私信联系或评论您的疑惑

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 8月23日
  • 已采纳回答 8月15日
  • 创建了问题 8月15日

悬赏问题

  • ¥15 需要在vitis下实现彩调视频图像累加,并输出
  • ¥15 解决不了的LNK2019错误
  • ¥20 MATLAB仿真三相桥式全控整流电路
  • ¥15 EDA技术关于时序电路设计
  • ¥15 百度文心一言流式返回sse失败
  • ¥15 由于远程方已关闭传输流,身份验证失败
  • ¥15 rt-detr,PCB,目标检测
  • ¥15 有偿求指导实证代码。cfps清洗合并后,无论是构建平衡面板还是非平衡面板,都是只剩几百个样本量。求指导一下哪里出问题了,不要潦草回复
  • ¥15 mutlinichenet
  • ¥50 Qt5.14.2怎样使用qlistwidget存储指针类数据并更新?