前言
mingw下载安装和ffmpeg的编译可以查看我的另外一篇文档:https://blog.csdn.net/linyibin_123/article/details/108759367
此篇重点说明在编译支持openssl的ffmpeg时碰到的各种坑。
一.下载编译openssl
1.下载路径:https://www.openssl.org/source/snapshot/,我选择openssl-3.0-SNAP-20220809.tar.gz版本
2.在Ubuntu下解压该压缩包:tar zxvf openssl-3.0-SNAP-20220809.tar.gz
3.配置静态库,注意当前的编译器是i686-w64-mingw32,也需要进行配置, /home/ipc/ffmpeg/ffmpeg-421/openssl-build为生成的路径,可以自己选择自己的路径自己配置:
./Configure no-asm no-shared --prefix=/home/ipc/ffmpeg/ffmpeg-421/openssl-build --cross-compile-prefix=i686-w64-mingw32- ming
(如果编译器不存在,需要重新设置下环境变量:export PATH=“/home/ipc/ffmpeg/mingw-w64-i686/bin:/home/ipc/ffmpeg/mingw-w64-x86_64/bin:$PATH”)
4.编译
依次执行 make 与 make install
5.生成结果:
二.编译支持openssl的ffmpeg
1.下载ffmpeg版本,下载路径:https://www.ffmpeg.org/download.html#releases
2.解压后,进入文件夹进行配置,我的配置如下,openssl的链接库路径和最终生成路径需要更改,该配置其他功能可以根据自己需要的进行裁剪或者开放。
./configure --enable-static --enable-shared --enable-version3 --enable-gpl --enable-nonfree --enable-openssl --enable-protocols --enable-protocol=https --extra-cflags=“-I/home/ipc/ffmpeg/ffmpeg-421/openssl-build/include” --extra-ldflags=“-L/home/ipc/ffmpeg/ffmpeg-421/openssl-build/lib” --disable-pthreads --enable-w32threads --enable-cross-compile --target-os=mingw32 --arch=x86 --enable-small --prefix=/home/ipc/ffmpeg/ffmpeg-421/opensdk/ffmpeg-build --disable-doc --disable-htmlpages --cross-prefix=i686-w64-mingw32- --disable-indevs --disable-outdevs --disable-debug --disable-runtime-cpudetect --disable-encoders --disable-decoders --enable-decoder=h264 --enable-decoder=hevc --enable-decoder=aac --enable-decoder=pcm_mulaw --enable-decoder=pcm_alaw --enable-hwaccel=h264_dxva2 --enable-hwaccel=hevc_dxva2 --disable-filters --enable-filter=anull --enable-filter=null --enable-filter=aresample --enable-filter=pad --enable-filter=scale --enable-filter=overlay --enable-filter=amix
3.在执行配置后,会出现openssl not found的问题,这是因为新版本的openssl,需要修改ffmpeg的configure文件,打开ffmpeg的configure文件,修改如下:
4.引入库说明:
因为在编译过程中,出现openssl静态库libcrypto.a和libssl.a出现undefined reference to异常,所以在这两个库后面引入后面三个库,可以解决库链接问题,其他问题也可以查看ffbuild/config.log的日志,定位到问题,一般出现的都是库的链接问题,或者库引用顺序不对导致的问题。
配置完成,显示如下:
这是一切正常。
5.编译ffmpeg
依次执行make和make install
6.最终生成结果
三.可直接我下载编译好后的ffmpeg库
下载路径:https://download.csdn.net/download/linyibin_123/86407111