一、卸载ffmpeg

ffmpeg安装在/usr/local/目录下

sudo mv /usr/local/bin/ffmpeg /usr/local/bin/ffmpeg_old

使用sudo apt-get remove --purge ffmpeg

二、报错:error: request for member 's_addr' in something not a structure or union mreqs.imr_multiaddr.s_addr = ((struct sockaddr_in *)addr)->sin_addr.s_addr;

很明显不存在 ip_mreq_source 这个结构体, 在编译的时候把 HAVE_STRUCT_IP_MREQ_SOURCE 设置成 0 即可。

我猜测新版的 FFmpeg 是使用 clang 编译的, 新版的 FFmpeg 里使用了 这个结构体, 但是现在使用的是 gcc 编译的。 编译系统中 gcc 没有这个结构体。 当然使用了 clang 就不会出现这个问题。说明新版本增加了新的内容, 老版本可能会没有, 这也说明了新的肯定是兼容老的, 但老的不可能有新版本的新内容

错入方式如下:

sed -i '' 's/HAVE_STRUCT_IP_MREQ_SOURCE 1/HAVE_STRUCT_IP_MREQ_SOURCE 0/g' config.h

正确写法

sed -i 's/HAVE_LRINT 1/HAVE_LRINT 0/g' config.h

修改config

./configure --disable-static --enable-shared --enable-gpl --enable-version3 --enable-nonfree --disable-doc --disable-ffmpeg --disable-ffplay --disable-ffprobe --disable-ffserver --disable-avdevice --disable-avfilter --disable-postproc --enable-small --cross-prefix=/root/develop/android-ndk-r6/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi- --enable-cross-compile --target-os=linux --extra-cflags='-I/root/develop/android-ndk-r6/platforms/android-9/arch-arm/usr/include' --extra-ldflags='-L/root/develop/android-ndk-r6/platforms/android-9/arch-arm/usr/lib -nostdlib' --arch=arm --disable-symver --disable-debug --disable-stripping

sed -i 's/HAVE_LRINT 0/HAVE_LRINT 1/g' config.h

sed -i 's/HAVE_LRINTF 0/HAVE_LRINTF 1/g' config.h

sed -i 's/HAVE_ROUND 0/HAVE_ROUND 1/g' config.h

sed -i 's/HAVE_ROUNDF 0/HAVE_ROUNDF 1/g' config.h

sed -i 's/HAVE_TRUNC 0/HAVE_TRUNC 1/g' config.h

sed -i 's/HAVE_TRUNCF 0/HAVE_TRUNCF 1/g' config.h

编译有些问题可以参考下面文章

三、查看ubuntu架构

sudo dpkg --print-foreign-architectures

四、查看gcc版本

/bin/bash --version

五、安装下build-essential

apt-get updae

apt-get install build-essential

六、需要修改源码把B0->b0

libavcodec/aaccoder.c

libavcodec/hevc_mvs.c

libavcodec/opus_pvq.c

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐