Jetson Xavier NX FFmpeg支持硬件编解码

news2024/9/24 11:33:06

最近在用Jetson Xavier NX板子做视频处理,但是CPU进行视频编解码,效率比较地下。

于是便考虑用硬解码来对视频进行处理。

通过jtop查看,发现板子是支持 NVENC硬件编解码的。

1、下载源码

因为需要对ffmpeg进行打补丁修改,因此需要编译两份源码

1.1、编译jetson-ffmpeg

1)、下载jetson-ffmpeg (GitHub - jocover/jetson-ffmpeg: ffmpeg support on jetson nanohttps://github.com/Keylost/jetson-ffmpegGitHub - jocover/jetson-ffmpeg: ffmpeg support on jetson nano) 源码

2)、 编译jetson-ffmpeg

下载后,依次执行如下命令进行编译

cd jetson-ffmpeg
mkdir build
cd build
cmake ..
make
sudo make install
sudo ldconfig

1.2、编译ffmpeg

1)、下载ffmpeg源码

本博文 以 4.2版本为例

git clone git://source.ffmpeg.org/ffmpeg.git -b release/4.2 --depth=1

2)、下载patch补丁

网络上不少提示补丁地址

https://github.com/Keylost/jetson-ffmpeg/raw/master/ffmpeg_patches/ffmpeg4.2_nvmpi.patch

但是我执行,报错。

最后发现,在jetson-ffmpeg下面就有相应的patch版本

ll ffmpeg_patches/
total 116
drwxr-xr-x 2 root root  4096 10月 30 19:11 ./
drwxr-xr-x 8 root root  4096 10月 30 19:11 ../
-rw-r--r-- 1 root root 34433 10月 30 19:11 ffmpeg4.2_nvmpi.patch
-rw-r--r-- 1 root root 34216 10月 30 19:11 ffmpeg4.4_nvmpi.patch
-rw-r--r-- 1 root root 34497 10月 30 19:11 ffmpeg6.0_nvmpi.patch

将 对应的 ffmpeg4.2_nvmpi.patch 拷贝到ffmpeg目录下

3)、升级补丁

执行如下命令进行补丁升级4

git apply ffmpeg4.2_nvmpi.patch
ffmpeg4.2_nvmpi.patch:249: trailing whitespace.

ffmpeg4.2_nvmpi.patch:271: trailing whitespace.

ffmpeg4.2_nvmpi.patch:351: trailing whitespace.

ffmpeg4.2_nvmpi.patch:353: trailing whitespace.

ffmpeg4.2_nvmpi.patch:359: trailing whitespace.

warning: squelched 21 whitespace errors
warning: 26 lines add whitespace errors.

4)、编译ffmpeg

配置

mkdir build
cd build/
../configure --prefix=../ffmpeg_install

编译

make
make install

编译完成。

2、测试

执行如下命令,即可以使用硬编码

ffmpeg -c:v h264_nvmpi  -rtsp_transport tcp -i rtsp -hls_time 10 -hls_list_size 1 -hls_flags delete_segments -f hls index.m3u8

运行jtop 查看

已经调动了硬编码与硬解码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1152263.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

堆栈与队列算法-以数组来实现堆栈

目录 堆栈与队列算法-以数组来实现堆栈 C代码 扑克牌发牌算法 C代码 堆栈与队列算法-以数组来实现堆栈 以数组结构来实现堆栈的好处是设计的算法都相当简单。不过,如果堆栈本身的大小是变动的,而数组大小只能事先规划和声明好,那么数组规…

Qt QUrl详解

1.QUrl概述 QUrl 是Qt框架中用于处理URL的类,提供了一些方法来解析和构造URL。URL(Uniform Resource Locator)是用于定位和访问互联网资源的地址。QUrl类可以用于解析URL的各个部分,并提供了一些方法来获取和设置URL的各个部分。…

Android RecyclerView — 实现自动加载更多

在App中,使用列表来显示数据是十分常见的。使用列表来展示数据,最好不要一次加载太多的数据,特别是带图片时,页面渲染的时间会变长,常见的做法是进行分页加载。本文介绍一种无感实现自动加载更多的实现方式。 实现自动…

Windows原生蓝牙编程 第三章 配对后进行蓝牙通信【C++】

蓝牙系列文章目录 第一章 获取本地蓝牙并扫描周围蓝牙信息并输出 第二章 选取设备输入配对码并配对 第三章 配对后进行蓝牙通信 文章目录 前言头文件一、建立连接套接字二、设置发送信息函数三、全部代码四、测试服务端选择及蓝牙通信总结 前言 接着第二章,我们已经…

爱写bug的小邓程序员个人博客

博客网址: http://www.006969.xyz 欢迎来到我的个人博客,这里主要分享我对于前后端相关技术的学习笔记、项目实战经验以及一些技术感悟。 在我的博客中,你将看到以下主要内容: 技术文章 我将会分享我在学习前后端技术过程中的一些感悟&am…

【并发编程】进程与线程

主要知识点: 进程和线程的概念 并行和并发的概念 线程基本应用 一、进程与线程 进程 程序由指令和数据组成,但这些指令要运行,数据要读写,就必须将指令加载至 CPU,数据加载至内存。在指令运行过程中还需要用到磁盘、…

【SpringMVC篇】讲解RESTful相关知识

🎊专栏【SpringMVC】 🍔喜欢的诗句:天行健,君子以自强不息。 🎆音乐分享【如愿】 🎄欢迎并且感谢大家指出小吉的问题🥰 文章目录 🎄REST简介🌺RESTful入门案例⭐案例一⭐…

【Java笔试强训】Day7(WY22 Fibonacci数列、CM46 合法括号序列判断)

Fibonacci数列 链接:Fibonacci数列 题目: Fibonacci数列是这样定义的: F[0] 0 F[1] 1 for each i ≥ 2: F[i] F[i-1] F[i-2] 因此,Fibonacci数列就形如:0, 1, 1, 2, 3, 5, 8, 13, …,在Fibonacci数列…

虚拟机上的linux centos7无法连接ssh

1、排查有没有安装 openssh-server,在终端中输入 yum list installed | grep openssh-server此处显示已经安装了 openssh-server,如果又没任何输出显示表示没有安装 openssh-server,通过输入 yum install openssh-server进行安装 2、找到了…

Spring本地jar包依赖项目改为maven依赖

1.简介 我们在做项目的时候,可能会偶尔接手较为古老的项目,这些项目使用了较为老旧的版本管理或依赖管理方法,对于新开发项目来说,这些老旧的依赖管理方式会影响开发效率,所以,一般我们会选择将老项目的依…

MySQL教程笔记

MySQL 关系型数据库:建立在关系模型基础上,由多张相互连接的二维表组成的数据库。 MYSQL基础 DDL Data Definition Language,数据定义语言,用来定义数据库对象(数据库,表,字段) 。 相关操作如下&#x…

golang中的Interface接口 类型断言、接口赋值、空接口的使用、接口嵌套

Interface整理 文章目录 Interface整理接口嵌套接口类型断言类型判断 type-switch使用方法集与接口空接口实例 接口赋值给接口 接口是一种契约,实现类型必须满足它,它描述了类型的行为,规定类型可以做什么。接口彻底将类型能做什么&#xff0…

如何在十亿级别用户中检查用户名是否存在?

不知道大家有没有留意过,在使用一些app注册的时候,提示你用户名已经被占用了,需要更换一个,这是如何实现的呢?你可能想这不是很简单吗,去数据库里查一下有没有不就行了吗,那么假如用户数量很多&…

常用排序算法的理解

1.插入排序 插入排序的思想是将一个记录插入到已经排好序的有序表中,从而形成一个新的、记录数加1的有序表。在其实现过程使用双层循环,外层循环是进行插入的次数(也可以理解为比较的轮数),内层循环是当前记录查找插入…

Echats-自定义图表2

效果图&#xff1a; 代码&#xff1a; <!DOCTYPE html> <html lang"zh-cmn-Hans"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><title>…

iptables的四表五链以及一些应用小场景

一、前言 本文主要学习iptables的一些学习&#xff0c;讲解一些四表五链的基本概念&#xff0c;同时通过iptables实现一下场景&#xff0c;比如反向代理端口、禁用域名、限制IP和端口访问。 二、基本概念 2.1 什么是iptables iptables是Linux的防火墙管理工具而已&#xff0c…

昂利康-002940 三季报分析(20231030)

昂利康-002940 基本面分析 基本情况 公司名称&#xff1a;浙江昂利康制药股份有限公司 A股简称&#xff1a;昂利康 成立日期&#xff1a;2001-12-30 上市日期&#xff1a;2018-10-23 所属行业&#xff1a;医药制造业 周期性&#xff1a;0 主营业务&#xff1a;化学原料药及制剂…

hack_me_please靶机攻略

hack_me_please 扫描 探查无果&#xff0c;扫描js的时候有结果 访问可以看到 该页面可以看到是SeedDMS搭的 应该和CMS类似 渗透 漏洞库查找一下有没有该漏洞 使用whatweb扫描一下刚才的页面 whatweb http://10.4.7.154/seeddms51x/seeddms-5.1.22/ 这个版本高于漏洞库的&a…

软考系统架构师知识点集锦八:嵌入式系统

一、考情分析 二、考点精讲 2.1嵌入式系统概述 2.1.1基本概念 (1)嵌入式系统是以应用为中心、以计算机技术为基础,并将可配置与可裁剪的软、硬件集成于一体的专用计算机系统&#xff0c;需要满足应用对功能、可靠性、成本、体积和功耗等方面的严格要求。 (2)从计算机角度看,嵌…

0039Java程序设计-基于java校园闲置物交易系统论文

文章目录 摘 要目 录系统设计开发环境 摘 要 本文的研究方向是设计和实现学生闲置物网上交易平台。目前&#xff0c;各大高校每年都要举办热热闹闹的“跳蚤”市场&#xff0c;就是给师生的一个闲置物品交易的场所&#xff0c;由此可以看出&#xff0c;大学生对闲置物品交易掉的…