mips交叉编译ffmpeg
最近需要将ffmpeg移植到mips架构上,现将移植的过程记录如下,供自己以后记忆参考.
1.ffmpeg交叉编译
./configure \
--prefix=$(pwd)/output \
--enable-cross-compile --arch=mips --target-os=linux \
--cross-prefix=mips-linux-gnu- --cc=mips-linux-gnu-gcc-7.2.0 \
--disable-everything \
--disable-autodetect \
--enable-avdevice \
--enable-avfilter \
--disable-msa \
--disable-debug \
--disable-protocols --enable-protocol=file \
--disable-demuxers --enable-demuxer=mov \
--disable-muxers --enable-muxer=mp4 --enable-muxer=mov \
--disable-decoders --enable-decoder=pcm_alaw --enable-decoder=h264 --enable-decoder=mpeg4 \
--disable-encoders --enable-encoder=pcm_s16le \
--disable-bsfs --enable-bsf=h264_mp4toannexb \
--enable-static --enable-shared \
--disable-programs --enable-ffmpeg \
--extra-cflags=-muclibc --extra-cxxflags=-muclibc \
--enable-small
2.发现编译链接后异常
后修改编译配置,正常通过
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | . /configure \ --prefix=$( pwd ) /output \ -- enable -cross-compile --arch=mips --target-os=linux \ --cross-prefix=mips-linux-gnu- --cc=mips-linux-gnu- gcc \ --disable-mipsdsp --disable-mipsdspr2 --disable-mips32r2 --disable-mipsfpu --disable-mips64r2 --disable-mips32r6 \ --disable-everything \ --disable-autodetect \ -- enable -avdevice \ -- enable -avfilter \ --disable-msa \ --disable-debug \ --disable-protocols -- enable -protocol= file \ --disable-demuxers -- enable -demuxer=mov \ --disable-muxers -- enable -muxer=mp4 -- enable -muxer=mov \ --disable-decoders -- enable -decoder=pcm_s16le -- enable -decoder=pcm_alaw -- enable -decoder=h264 -- enable -decoder=mpeg4 \ --disable-encoders -- enable -encoder=pcm_s16le \ --disable-bsfs -- enable -bsf=h264_mp4toannexb \ -- enable -static --disable-shared \ --disable-programs -- enable -ffmpeg \ --extra-cflags=-muclibc --extra-cxxflags=-muclibc \ -- enable -small |
3.经过尝试,现将多余的库排
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | . /configure \ --prefix=$( pwd ) /output \ -- enable -cross-compile --arch=mips --target-os=linux \ --cross-prefix=mips-linux-gnu- --cc=mips-linux-gnu- gcc \ --disable-mipsdsp --disable-mipsdspr2 --disable-mips32r2 --disable-mipsfpu --disable-mips64r2 --disable-mips32r6 \ -- enable -avdevice \ -- enable -avfilter \ --disable-msa \ --disable-debug \ --disable-protocols -- enable -protocol= file \ --disable-decoders -- enable -decoder=pcm_s16le \ --disable-encoders -- enable -encoder=pcm_s16le \ -- enable -static --disable-shared \ --disable-programs -- enable -ffmpeg \ --disable-doc \ --extra-cflags=-muclibc --extra-cxxflags=-muclibc \ -- enable -small |
遇到差函数,在commom.h中增加以下函数解决
1 2 3 4 | #define fmin(x, y) ((x) > (y) ? (y) : ((x) == (x) ? (x) : (y))) #define fmax(x, y) ((x) < (y) ? (y) : ((x) == (x) ? (x) : (y))) #define fminf(x, y) fmin(x, y) #define fmaxf(x, y) fmax(x, y) |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 提示词工程——AI应用必不可少的技术
· 地球OL攻略 —— 某应届生求职总结
· 字符编码:从基础到乱码解决
· SpringCloud带你走进微服务的世界