本文共 2713 字,大约阅读时间需要 9 分钟。
安装pyav错误信息如下:
src/av/sidedata/sidedata.c: In function '__pyx_pf_2av_8sidedata_8sidedata_8SideData_2__repr__': src/av/sidedata/sidedata.c:2717:46: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] __pyx_t_5 = __Pyx_PyInt_From_unsigned_int(((unsigned int)__pyx_v_self->ptr->data)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 61, __pyx_L1_error) ^ src/av/sidedata/sidedata.c: In function 'initsidedata': src/av/sidedata/sidedata.c:5355:58: error: 'AV_FRAME_DATA_SPHERICAL' undeclared (first use in this function) __pyx_t_1 = __Pyx_PyInt_From_enum__AVFrameSideDataType(AV_FRAME_DATA_SPHERICAL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 25, __pyx_L1_error) ^~~~~~~~~~~~~~~~~~~~~~~ src/av/sidedata/sidedata.c:5355:58: note: each undeclared identifier is reported only once for each function it appears in src/av/sidedata/sidedata.c:5373:58: error: 'AV_FRAME_DATA_CONTENT_LIGHT_LEVEL' undeclared (first use in this function) __pyx_t_1 = __Pyx_PyInt_From_enum__AVFrameSideDataType(AV_FRAME_DATA_CONTENT_LIGHT_LEVEL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 26, __pyx_L1_error) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ src/av/sidedata/sidedata.c:5391:58: error: 'AV_FRAME_DATA_ICC_PROFILE' undeclared (first use in this function) __pyx_t_1 = __Pyx_PyInt_From_enum__AVFrameSideDataType(AV_FRAME_DATA_ICC_PROFILE); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27, __pyx_L1_error) ^~~~~~~~~~~~~~~~~~~~~~~~~ src/av/sidedata/sidedata.c:5409:58: error: 'AV_FRAME_DATA_QP_TABLE_PROPERTIES' undeclared (first use in this function) __pyx_t_1 = __Pyx_PyInt_From_enum__AVFrameSideDataType(AV_FRAME_DATA_QP_TABLE_PROPERTIES); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28, __pyx_L1_error) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ src/av/sidedata/sidedata.c:5427:58: error: 'AV_FRAME_DATA_QP_TABLE_DATA' undeclared (first use in this function) __pyx_t_1 = __Pyx_PyInt_From_enum__AVFrameSideDataType(AV_FRAME_DATA_QP_TABLE_DATA); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 29, __pyx_L1_error) ^~~~~~~~~~~~~~~~~~~~~~~~~~~ error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
分析:
由于ffmpeg lib版本与pyav的版本匹配导致; apt-get install -y libavcodec-dev libavformat-dev libswscale-dev libavdevice-dev libavfilter-dev libavutil-dev libpostproc-dev 通过上面的命令直接安装的 ffmpeg lib版本比较低; 需要安装与系统默认的ffmpeg lib 版本支持的pyav, 如果pyav 版本过高,会有某些函数或者标签找不到的情况; 在Debian9中,安装 av==6.2.0 是可以支持的。转载地址:http://zhfli.baihongyu.com/