前言
将ffmpeg移植到海思HI3559、Hi3516平台上,需要交叉编译。
FFmpeg下载
开发使用当前3.4.8稳定版本:
官方地址:http://ffmpeg.org/download.html#releases
CSDN下载地址:https://download.csdn.net/download/qq21497936/12838391
QQ群:1047134658(点击“文件”搜索“ffmpeg-3.4.8_源码以及编译后的库”,群内与博文同步更新)
交叉编译器环境
编译ffmpeg
步骤一:下载,放置到编译文件夹,解压
步骤二:配置configure
(2021年12月26日补充:注意:hi3516DV300是–arch=arm,hi3559AV100是-arch-arm64)
安装的路径以及编译器是必须要配置的(此处3569是开发时写错了):
/configure --prefix=/home/yang/work/ffmpeg-hi3569av100 --arch=arm --target-os=linux \ --enable-cross-compile --cross-prefix=aarch64-himix100-linux- --enable-shared
出现错误,具体查看ffbuild/config.log,查看如下:
cat ffbuild/config.log
是没有指定芯片内核,此时,直接修改配置文件平台为arm64,如下图:
不依赖libx264原始版本
./configure --prefix=/home/yang/work/ffmpeg-hi3569av100 --arch=arm64 --target-os=linux --enable-cross-compile --cross-prefix=aarch64-himix100-linux- --enable-shared • 1
这是打入Qt路径的配置方法:
./configure --prefix=/home/yang/work/qt-5.8.0_rootfs --arch=arm64 --target-os=linux --enable-cross-compile --cross-prefix=aarch64-himix100-linux- --enable-shared
依赖libx264静态库(2022年03月17日补充)
./configure --prefix=/home/yang/work/ffmpeg_rootfs --arch=arm64 --target-os=linux --enable-cross-compile --cross-prefix=aarch64-himix100-linux- --enable-shared --enable-libx264 --enable-gpl --enable-pic --extra-cflags="-I/home/yang/work/x264_rootfs/include" --extra-ldflags="-L/home/yang/work/x264_rootfs/lib"
===================依赖libx264静态库 添加至此结束
成功配置:
步骤三:编译make -j8
步骤四:安装make install
不是安装在系统,不用sudo权限,如下图:
步骤五:检查文件
部署到板子上
- 方法一:拷贝进入系统目录,对应bin、include、lib
- 方法二:单独一个目录,运行前跑脚本进入路径(笔者是Qt,将ffmpeg打入qt的安装目录,使用qt的路径即可)。
贴上开发本Qt的脚本(注意系统不同,平台的参数最后2个可能不同):
板子上ffmpeg播放器测试1
将ffmpeg部署到板子上,然后用板子ffmpeg命令行测试,已测试了。(图略)
板子上ffmpeg软解码播放器测试2
自己造的ffmpeg播放器也通过测试,播放正常。(图略)