主页 > 游戏开发  > 

ok113i——交叉编译音视频动态库

ok113i——交叉编译音视频动态库

提示:buildroot支持ffmpeg和SDL,但博主的ffmpeg是按下面方法编译通过,SDL使用buildroot直接编译也通过;

1. 下载ffmpeg源码

下载链接: github /FFmpeg/FFmpeg/tags 根据版本需要自行下载压缩包,这里下载的是n4.4.5版本; 解压:tar -xvf FFmpeg-n4.4.5.tar.gz; 解压后得到FFmpeg-n4.4.5目录,进去;

2. 配置交叉编译器环境变量 # 使用export配置临时环境变量 export PATH=$PATH:/home/forlinx/OK113i-linux-sdk/out/t113_i/ok113i/longan/buildroot/host/bin/ # echo查看环境变量 echo $PATH 3. 编译输出动态库文件 参考1(测试通过): blog.csdn.net/fangye945a/article/details/112882064 # 交叉编译ffmpeg ./configure --cross-prefix=arm-linux-gnueabi- --enable-cross-compile --target-os=linux --cc=arm-linux-gnueabi-gcc --arch=arm --prefix=/home/forlinx/qtProject/FFmpeg-n4.4.5/output --enable-ffmpeg --disable-armv5te --disable-armv6 --disable-armv6t2 --enable-shared --extra-cflags="-fPIC" --extra-cxxflags="-fPIC" make && make install # 运行完,编译结果就会输出到outpu目录 如果编译失败,则make clean再编译 # 交叉编译ffmpeg, 裁剪 ./configure --cross-prefix=aarch64-linux-gnu- --enable-cross-compile --target-os=linux --cc=aarch64-linux-gnu-gcc --arch=arm64 --prefix=/home/disk/fangye/build_amba/ffmpeg_build/FFmpeg-n4.3.1_amba/output --disable-x86asm --enable-parsers --disable-decoders --enable-decoder=h264 --enable-decoder=aac --disable-encoders --disable-muxers --enable-muxer=mp4 --disable-demuxers --disable-protocols --enable-protocol=file --disable-filters --disable-bsfs --enable-ffmpeg 参考2: blog.csdn.net/yyz_1987/article/details/131076072 # 交叉编译lame,执行命令后没得到输出文件 ./configure --host=arm-linux-gnueabihf --prefix=$(pwd)/output cc=arm-fsl-linux-gnueabi-gcc --disable-frontend make && make install # 运行完,编译结果就会输出到outpu目录 # 交叉编译x264, 执行命令后没得到输出文件 ./configure --prefix=build --disable-asm --enable-shared --enable-static --host=arm-linux-gnueabi --cross-prefix=arm-linux-gnueabi- make && make install # 运行完,编译结果就会输出到outpu目录 # 交叉编译ffmpeg, 包含lame和x264 ./configure --prefix=../arm-ffmpegbuild --enable-shared --enable-libmp3lame --enable-libx264 --enable-gpl --disable-asm --enable-version3 --cross-prefix=arm-fsl-linux-gnueabi- --target-os=linux --extra-cflags="-I ../lamebuild/include" --extra-ldflags="-L ../lamebuild/lib" --enable-cross-compile --enable-small --arch=arm --cpu=arm926ej-s --disable-everything --enable-decoder=h264 --enable-parser=h264 --enable-demuxer=rtsp --extra-ldflags="-L/root/test/ffmpeg/x264build/lib" --extra-cflags="-I ../x264build/include" make && make install # 运行完,编译结果就会输出到outpu目录

编译后报错:WARNING: arm-linux-gnueabi-pkg-config not found, library detection may fail. 直接安装:sudo apt-get install pkg-config-arm-linux-gnueabi 编译后没生成动态库,需要执行:make && make install

4. 验证编译后的ffmpeg

然后将output文件压缩(注意开发板上的tar功能不全,解压缩已知是支持-cvf的压缩包):tar -cvf ffmpeg-output.tar.gz output/ 然后在开发板解压缩: tar -xvf ffmpeg-output.tar.gz 验证编译后的程序能不能运行,运行./output/bin/ffmpeg,报错: ./ffmpeg: error while loading shared libraries: libavdevice.so.58: cannot open shared object file: No such file or directory 设置库文件的临时环境变量: export LD_LIBRARY_PATH=/usr/local/lib/ 再次运行./output/bin/ffmpeg,会输出版本信息;

标签:

ok113i——交叉编译音视频动态库由讯客互联游戏开发栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“ok113i——交叉编译音视频动态库

上一篇
学习总结2.19

下一篇
MySQL|库操作