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



相关文章
|
4月前
|
Ubuntu 编译器 开发工具
在Ubuntu系统上搭建RISC-V交叉编译环境
以上步骤涵盖了在Ubuntu系统上搭建RISC-V交叉编译环境的主要过程。这一过程涉及了安装依赖、克隆源码、编译安装工具链以及设置环境变量等关键步骤。遵循这些步骤,可以在Ubuntu系统上搭建一个用于RISC-V开发的强大工具集。
505 22
|
7月前
|
Ubuntu 编译器 C语言
在Ubuntu22.04平台上交叉编译针对Rv1126架构的GCC13.2.0编译器的步骤。
遵循上述步骤,您应该能够在Ubuntu 22.04平台上成功交叉编译适用于RISC-V架构RV1126的GCC 13.2.0编译器,允许您为目标硬件构建应用程序和操作系统组件。
455 10
|
Linux 开发工具 Android开发
FFmpeg开发笔记(六十)使用国产的ijkplayer播放器观看网络视频
ijkplayer是由Bilibili基于FFmpeg3.4研发并开源的播放器,适用于Android和iOS,支持本地视频及网络流媒体播放。本文详细介绍如何在新版Android Studio中导入并使用ijkplayer库,包括Gradle版本及配置更新、导入编译好的so文件以及添加直播链接播放代码等步骤,帮助开发者顺利进行App调试与开发。更多FFmpeg开发知识可参考《FFmpeg开发实战:从零基础到短视频上线》。
1585 2
FFmpeg开发笔记(六十)使用国产的ijkplayer播放器观看网络视频
|
9月前
|
Ubuntu 搜索推荐 Linux
详解Ubuntu的strings与grep命令:Linux开发的实用工具。
这就是Ubuntu中的strings和grep命令,透明且强大。我希望你喜欢这个神奇的世界,并能在你的Linux开发旅程上,通过它们找到你的方向。记住,你的电脑是你的舞台,在上面你可以做任何你想做的事,只要你敢于尝试。
454 32
|
7月前
|
Ubuntu 编译器
在Ubuntu中设置QT Creator的交叉编译环境。
在进行交叉编译设置时,请确保遵循你的目标硬件平台和软件的具体指南。以上步骤给出的是一个概括的指南,具体步骤可能因你的特定需求而有所不同。务必参照相关硬件和软件的官方文档进行操作,以获得具体的、针对性的指导。
608 0
|
编解码 语音技术 内存技术
FFmpeg开发笔记(五十八)把32位采样的MP3转换为16位的PCM音频
《FFmpeg开发实战:从零基础到短视频上线》一书中的“5.1.2 把音频流保存为PCM文件”章节介绍了将媒体文件中的音频流转换为原始PCM音频的方法。示例代码直接保存解码后的PCM数据,保留了原始音频的采样频率、声道数量和采样位数。但在实际应用中,有时需要特定规格的PCM音频。例如,某些语音识别引擎仅接受16位PCM数据,而标准MP3音频通常采用32位采样,因此需将32位MP3音频转换为16位PCM音频。
477 0
FFmpeg开发笔记(五十八)把32位采样的MP3转换为16位的PCM音频
|
Ubuntu 应用服务中间件 nginx
Ubuntu安装笔记(三):ffmpeg(3.2.16)源码编译opencv(3.4.0)
本文是关于Ubuntu系统中使用ffmpeg 3.2.16源码编译OpenCV 3.4.0的安装笔记,包括安装ffmpeg、编译OpenCV、卸载OpenCV以及常见报错处理。
1051 2
Ubuntu安装笔记(三):ffmpeg(3.2.16)源码编译opencv(3.4.0)
|
Linux API 开发工具
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
ijkplayer是由B站研发的移动端播放器,基于FFmpeg 3.4,支持Android和iOS。其源码托管于GitHub,截至2024年9月15日,获得了3.24万星标和0.81万分支,尽管已停止更新6年。本文档介绍了如何在Linux环境下编译ijkplayer的so库,以便在较新的开发环境中使用。首先需安装编译工具并调整/tmp分区大小,接着下载并安装Android SDK和NDK,最后下载ijkplayer源码并编译。详细步骤包括环境准备、工具安装及库编译等。更多FFmpeg开发知识可参考相关书籍。
625 0
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
|
4月前
|
Ubuntu 安全 iOS开发
Nessus Professional 10.10 Auto Installer for Ubuntu 24.04 - Nessus 自动化安装程序
Nessus Professional 10.10 Auto Installer for Ubuntu 24.04 - Nessus 自动化安装程序
385 5
|
4月前
|
NoSQL Ubuntu MongoDB
在Ubuntu 22.04上安装MongoDB 6.0的步骤
这些步骤应该可以在Ubuntu 22.04系统上安装MongoDB 6.0。安装过程中,如果遇到任何问题,可以查阅MongoDB的官方文档或者Ubuntu的相关帮助文档,这些资源通常提供了解决特定问题的详细指导。
488 18