vs2013编译ffmpeg之二十一 opencore-amr、opencv

本文介绍如何为FFmpeg配置Opencore-AMR和OpenCV库,包括下载、编译及解决常见编译错误的方法。Opencore-AMR用于音频编解码,而OpenCV则用于实现计算机视觉功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

opencore-amr

对应ffmpeg configure选项–enable-libopencore-amrnb和–enable-libopencore-amrwb。

从sourceforge上下载opencore-amr-0.1.3,github上的master没有configure文件。编译方法,在opencore-amr-0.1.3下面执行:

mkdir msys_build; ./configure --prefix=$(pwd)/msys_build; make; make install

opencv

对应ffmpeg configure选项–enable-libopencv。

官网http://opencv.org/downloads.html

跨平台的计算机视觉库,用于开发实时的图像处理、计算机视觉以及模式识别程序。

从官网上下载opencv-2.4.13.exe,这个是2016年5月的版本,2015年有个版本opencv-3.1.0.exe看上去比2016年的版本还要新,不知道是什么原因。这里选择的是opencv-2.4.13.exe,双击运行,选择要解压的目录,会将opencv的库和头文件解压到这个目录下。

ffmpeg configure和链接时的库选择opencv\build\x86\vc12\staticlib\opencv_core2413d.lib。

编译错误一

由于所有的代码编译都加了MTd,opencv的库要选择opencv_core2413d.lib,不然会报下面的错误。

opencv_core2413.lib(persistence.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项:  值“0”不匹配值“2”(x265-static.lib(api.obj) 中)

编译错误二

下面这个错误:

libavfilter.a(vf_libopencv.o) : error LNK2001: 无法解析的外部符号 _cvSmooth

libavfilter.a(vf_libopencv.o) : error LNK2001: 无法解析的外部符号 _cvCreateStructuringElementEx

libavfilter.a(vf_libopencv.o) : error LNK2001: 无法解析的外部符号 _cvReleaseStructuringElement

libavfilter.a(vf_libopencv.o) : error LNK2001: 无法解析的外部符号 _cvErode

libavfilter.a(vf_libopencv.o) : error LNK2001: 无法解析的外部符号 _cvDilate

opencv\build\x86\vc12\staticlib下面的库非常多,写个脚本来搜索符号:

!/bin/sh

for i in *.lib

do

    echo "File ${i}"

    dumpbin.exe -SYMBOLS ${i} | grep cvSmooth

done

脚本在msys+vcvars32.bat环境下执行,得到类似的打印,贴一部分:

File opencv_features2d2413.lib

540 00000000 UNDEF  notype ()    External     | _cvSmooth

File opencv_imgproc2413.lib

847 00000000 SECT3C4 notype ()    External    | _cvSmooth

A43 00000067 SECT3C6 notype ()    Static      | _ehhandler$cvSmooth

File opencv_imgproc2413d.lib

9D8 00000000 SECT461 notype ()    External    | _cvSmooth

C5C 00000076 SECT463 notype ()    Static      | _ehhandler$cvSmooth

UNDEF表示是调用cvSmooth函数,有SECT的就是函数定义的地方,这里选择debug版本的库opencv_imgproc2413d.lib。

:/home/llz2/back# /usr/local/ffmpeg/ffmpeg-7.0.2/ffmpeg -y -ss 00:00:03 -i https://media.luoluozai.com/llz1/videos/20250620174326APs8ai.mp4 -an -vf scale=320:240 -vframes 1 -q:v 2 -update 1 /home/llz2/ffmpeg/videoCover/20250620174326APs8ai_frame_3.jpg ffmpeg version 7.0.2-static https://johnvansickle.com/ffmpeg/ Copyright (c) 2000-2024 the FFmpeg developers built with gcc 8 (Debian 8.3.0-6) configuration: --enable-gpl --enable-version3 --enable-static --disable-debug --disable-ffplay --disable-indev=sndio --disable-outdev=sndio --cc=gcc --enable-fontconfig --enable-frei0r --enable-gnutls --enable-gmp --enable-libgme --enable-gray --enable-libaom --enable-libfribidi --enable-libass --enable-libvmaf --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librubberband --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libvorbis --enable-libopus --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libdav1d --enable-libxvid --enable-libzvbi --enable-libzimg libavutil 59. 8.100 / 59. 8.100 libavcodec 61. 3.100 / 61. 3.100 libavformat 61. 1.100 / 61. 1.100 libavdevice 61. 1.100 / 61. 1.100 libavfilter 10. 1.100 / 10. 1.100 libswscale 8. 1.100 / 8. 1.100 libswresample 5. 1.100 / 5. 1.100 libpostproc 58. 1.100 / 58. 1.100 Segmentation fault (core dumped) ffmpeg 执行报错,同样版本的ffmpeg 同样的指令,在另一台服务器执行是ok的怎么排查
最新发布
06-25
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值