FFmpeg开发笔记(十):ffmpeg在ubuntu上的交叉编译移植到海思HI35xx平台

简介: FFmpeg开发笔记(十):ffmpeg在ubuntu上的交叉编译移植到海思HI35xx平台

前言

  将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播放器也通过测试,播放正常。(图略)



相关文章
|
12月前
|
Ubuntu 编译器 开发工具
在Ubuntu系统上搭建RISC-V交叉编译环境
以上步骤涵盖了在Ubuntu系统上搭建RISC-V交叉编译环境的主要过程。这一过程涉及了安装依赖、克隆源码、编译安装工具链以及设置环境变量等关键步骤。遵循这些步骤,可以在Ubuntu系统上搭建一个用于RISC-V开发的强大工具集。
1037 22
|
Linux 开发工具 Android开发
FFmpeg开发笔记(六十)使用国产的ijkplayer播放器观看网络视频
ijkplayer是由Bilibili基于FFmpeg3.4研发并开源的播放器,适用于Android和iOS,支持本地视频及网络流媒体播放。本文详细介绍如何在新版Android Studio中导入并使用ijkplayer库,包括Gradle版本及配置更新、导入编译好的so文件以及添加直播链接播放代码等步骤,帮助开发者顺利进行App调试与开发。更多FFmpeg开发知识可参考《FFmpeg开发实战:从零基础到短视频上线》。
2313 2
FFmpeg开发笔记(六十)使用国产的ijkplayer播放器观看网络视频
|
Ubuntu 安全 应用服务中间件
详细指南:配置Nginx服务器在Ubuntu平台上
以上步骤涵盖了基本流程:从软件包管理器获取 Ngnix, 设置系统服务, 调整UFW规则, 创建并激活服务器块(也称作虚拟主机), 并进行了初步优化与加固措施。这些操作都是建立在命令行界面上,并假设用户具有必要权限(通常是root用户)来执行这些命令。每个操作都有其特定原因:例如,设置开机启动确保了即使重启后也能自动运行 Ngnix;而编辑server block则定义了如何处理进入特定域名请求等等。
640 18
|
Ubuntu 安全 应用服务中间件
详细指南:配置Nginx服务器在Ubuntu平台上
以上步骤涵盖了基本流程:从软件包管理器获取 Ngnix, 设置系统服务, 调整UFW规则, 创建并激活服务器块(也称作虚拟主机), 并进行了初步优化与加固措施。这些操作都是建立在命令行界面上,并假设用户具有必要权限(通常是root用户)来执行这些命令。每个操作都有其特定原因:例如,设置开机启动确保了即使重启后也能自动运行 Ngnix;而编辑server block则定义了如何处理进入特定域名请求等等。
1041 17
|
Ubuntu 数据管理 数据挖掘
Ubuntu平台查看.gz格式压缩文件内容以及利用grep命令过滤搜索内容技巧
以上介绍了基础但全面地关于如何在Ubuntu平台下通过各种方式来检视 ` . gz `, 并利用 grep 命令断层次化搜寻与筛选信息之方法论述.
1226 18
|
Ubuntu 网络安全 数据安全/隐私保护
搭建SSH服务于RK3399平台上的Ubuntu 18.04,实现远程连接
以上步骤涵盖从安 装 到配制再至实际使 用户建立Ssh 连接所需知识点 。务必注意,在对外提供Ssh 访问
596 2
|
Ubuntu 编译器 C语言
在Ubuntu22.04平台上交叉编译针对Rv1126架构的GCC13.2.0编译器的步骤。
遵循上述步骤,您应该能够在Ubuntu 22.04平台上成功交叉编译适用于RISC-V架构RV1126的GCC 13.2.0编译器,允许您为目标硬件构建应用程序和操作系统组件。
856 10
|
Ubuntu Linux Shell
Linux环境下VSCode快速安装终极指南:debian/ubuntu/linux平台通用
以上就是在Linux环境下安装VSCode的终极指南,抛开繁复的专业词汇,以平易近人的文字、形象生动的比喻让你轻松学会这一过程。别忘了,你的小伙伴VSCode已经在应用菜单里等你了!
3590 23
|
编解码 缓存 Ubuntu
在Ubuntu平台搭建RTMP直播服务器使用SRS简要指南
这个简要指南提供了搭建基本 RTMP 直播服务所需知道信息. SRS 还提供许多高级特性如 DVR、转码、边缘缓存等. 若要利用这些特性, 需要进一步阅读官方文档并相应地调整配置文件.
1069 0
|
存储 Ubuntu
在Ubuntu 18.04 ARM平台上离线安装cifs-utils包
务 必 留 意 , 在 执行 上 述 操作 过 程 中 , 需 要 根据 实际情况调整 命令断 及 文件 路径 。 步 骤断 可能 因 版本 更新 或 特殊 情 况而 发生变化 , 因 止 在 执行 命前 应 先 核实 相关信息 的 准确 性 。
680 0