解决(ARM64-ARMV8)嵌入式Linux系统下X264编码提示:libx264 :use cpu capability none!

简介: 解决(ARM64-ARMV8)嵌入式Linux系统下X264编码提示:libx264 :use cpu capability none!

一、开发环境介绍

X264库的版本: x264-snapshot-20181217-2245

开发板:友善之臂 RK3399

RK3399芯片是国内优秀芯片厂商瑞芯微的六核64位芯片。

开发板运行的系统是: FriendlyDesktop ubuntu系统。

image.png

开发板的官网使用介绍链接:http://wiki.friendlyarm.com/wiki/index.php/NanoPC-T4/zh#FriendlyDesktop.E7.B3.BB.E7.BB.9F.E7.9A.84.E4.BD.BF.E7.94.A8


二、编译NASM

下载NASM库:  http://distfiles.macports.org/nasm/

image.png

下载nasm-2.14.02 .tar.bz2 进行解压。


nasm-2.14.02CSDN下载地址:  https://download.csdn.net/download/xiaolong1126626497/12339734



注意: 下面代码是直接在RK3399系统里运行的,不是在PC电脑上,使用的编译器是aarch64-linux-gcc


aarch64位的编译器下载地址: https://download.csdn.net/download/xiaolong1126626497/12203205


编译安装NASM库示例:

wbyq@wbyq:~$ tar xvf nasm-2.14.02 .tar.bz2
wbyq@wbyq:~$ ./configure
wbyq@wbyq:~$ make
wbyq@wbyq:~$ sudo make install

三、编译X264

下载x264库:https://download.csdn.net/download/xiaolong1126626497/12339693

编译x264库:

wbyq@wbyq:~$ ./configure --prefix=$PWD/_install --enable-static --enable-shared
wbyq@wbyq:~$ make && make install

image.png

编码运行时提示:


[libx264 @ 0x7f34004aa0]

using cpu capabilities: ARMv8 NEON

[libx264 @ 0x7f34004aa0] profile High, level 2.2, 4:2:0, 8-bit

[libx264 @ 0x7f34004aa0] 264 - core 157 - H.264/MPEG-4 AVC codec - Copyleft 2003-2018 - http://www.videolan.org/x264.html - options: cabac=1 ref=1 deblock=1:0:0 analyse=0x3:0x3 me=dia subme=1 psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=9 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=1 keyint=10 keyint_min=1 scenecut=40 intra_refresh=0 rc=abr mbtree=0 bitrate=400 ratetol=1.0 qcomp=0.60 qpmin=10 qpmax=51 qpstep=4 ip_ratio=1.40 aq=1:1.00


X264库编译好之后,就可以编译FFMPEG库了。


编译好的ffmpeg库下载地址: https://download.csdn.net/download/xiaolong1126626497/12339799

wbyq@wbyq:~/work/rk3399/ffmpeg-4.2.2$ make clean
wbyq@wbyq:~/work/rk3399/ffmpeg-4.2.2$ ./configure --enable-shared --enable-static --prefix=$PWD/_install --enable-gpl --enable-ffmpeg --enable-libx264 --extra-cflags=-I/home/wbyq/work/rk3399/x264-snapshot-20181217-2245/_install/include --extra-ldflags=-L/home/wbyq/work/rk3399/x264-snapshot-20181217-2245/_install/lib
wbyq@wbyq:~/work/rk3399/ffmpeg-4.2.2$ make && make install

image.png

目录
相关文章
|
8月前
|
运维 Linux 虚拟化
Linux 查看 CPU 使用情况
在 Linux 系统中,查看 CPU 使用情况是性能分析和故障排查的重要环节。查看 CPU 使用情况,使用 top 命令或者 htop 命令来查看。
|
8月前
|
Ubuntu Linux 应用服务中间件
Linux使用cpulimit对CPU使用率进行限制
cpulimit是一款简单易用的CPU使用率限制工具,支持对特定程序或整个CPU使用率进行限制。可通过源安装(如`yum`或`apt-get`)或编译安装获取。使用时,可针对程序名、进程号或绝对路径设置CPU占用上限(如`cpulimit -e xmrig -l 60 -b`)。ROOT用户可限制所有进程,普通用户仅限于权限范围内进程。注意,CPU百分比基于实际核心数(单核100%,双核200%,依此类推)。
737 7
|
8月前
|
存储 缓存 Linux
Linux系统中如何查看CPU信息
本文介绍了查看CPU核心信息的方法,包括使用`lscpu`命令和读取`/proc/cpuinfo`文件。`lscpu`能快速提供逻辑CPU数量、物理核心数、插槽数等基本信息;而`/proc/cpuinfo`则包含更详细的配置数据,如核心ID和处理器编号。此外,还介绍了如何通过`lscpu`和`dmidecode`命令获取CPU型号、制造商及序列号,并解释了CPU频率与缓存大小的相关信息。最后,详细解析了`lscpu`命令输出的各项参数含义,帮助用户更好地理解CPU的具体配置。
974 8
|
10月前
|
缓存 安全 Linux
Linux系统查看操作系统版本信息、CPU信息、模块信息
在Linux系统中,常用命令可帮助用户查看操作系统版本、CPU信息和模块信息
2038 23
|
10月前
|
Ubuntu Linux 开发者
Ubuntu20.04搭建嵌入式linux网络加载内核、设备树和根文件系统
使用上述U-Boot命令配置并启动嵌入式设备。如果配置正确,设备将通过TFTP加载内核和设备树,并通过NFS挂载根文件系统。
569 15
|
11月前
|
存储 监控 Linux
嵌入式Linux系统编程 — 5.3 times、clock函数获取进程时间
在嵌入式Linux系统编程中,`times`和 `clock`函数是获取进程时间的两个重要工具。`times`函数提供了更详细的进程和子进程时间信息,而 `clock`函数则提供了更简单的处理器时间获取方法。根据具体需求选择合适的函数,可以更有效地进行性能分析和资源管理。通过本文的介绍,希望能帮助您更好地理解和使用这两个函数,提高嵌入式系统编程的效率和效果。
507 13
|
11月前
|
Ubuntu 芯片 开发者
Ubuntu 25 ARM 桌面系统抢先版发布:第一个Ubuntu ARM桌面系统
Ubuntu 25.04 将于2025年发布,首次支持ARM Desktop桌面版系统,为ARM架构设备如Mac M系列芯片、Raspberry Pi等带来全新的桌面体验。用户可通过虚拟机或双系统安装在Mac上运行Ubuntu ARM,抢先体验版已开放下载:[链接](https://www.baihezi.com/ubuntu/arm/desktop)。此版本不仅扩展了Ubuntu的硬件兼容性,还提供了丰富的功能和流畅的操作体验,适合开发者和技术爱好者尝试。
3850 9
|
10月前
|
人工智能 前端开发 测试技术
为RTP-LLM提供Arm CPU后端,助力Arm
本次主题是为 RTP LLM 提供 Arm CPU 后端,助力 Arm AI 软件生态持续发展。随着大语言模型(LLM)的普及与应用, AI 计算需求快速增长。许多 LLM 模型运行在基于 GPU 的硬件上,而随着 Arm 架构不仅在边缘设备,而且在数据中心领域也愈发流行,如何让 RTP LLM (实时推理框架)有效支持 Arm CPU 平台变得尤为重要。通过优化 LLM 在 Arm 平台的推理性能,可以进一步提升功耗效率和模型部署的灵活性。
442 0
|
网络协议 Linux 网络安全
Linux的capability深入分析
http://www.cnblogs.com/iamfy/archive/2012/09/20/2694977.
2800 0
|
2月前
|
Linux 应用服务中间件 Shell
二、Linux文本处理与文件操作核心命令
熟悉了Linux的基本“行走”后,就该拿起真正的“工具”干活了。用grep这个“放大镜”在文件里搜索内容,用find这个“探测器”在系统中寻找文件,再用tar把东西打包带走。最关键的是要学会使用管道符|,它像一条流水线,能把这些命令串联起来,让简单工具组合出强大的功能,比如 ps -ef | grep 'nginx' 就能快速找出nginx进程。
420 2
二、Linux文本处理与文件操作核心命令