当前位置: 首页 > news >正文

Jetson NX FFmpeg硬件编解码实现

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

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

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

1、下载源码

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

1.1、编译jetson-ffmpeg

1)、下载jetson-ffmpeg (https://github.com/Keylost/jetson-ffmpeg) 源码

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 查看

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

相关文章:

Jetson NX FFmpeg硬件编解码实现

最近在用Jetson Xavier NX板子做视频处理,但是CPU进行视频编解码,效率比较地下。 于是便考虑用硬解码来对视频进行处理。 通过jtop查看,发现板子是支持 NVENC硬件编解码的。 1、下载源码 因为需要对ffmpeg进行打补丁修改,因此需…...

5.2用队列实现栈(LC225-E)

算法: 其实这道题不用像上一道题一样,用两个队列实现栈。 由于队列的数据结构特性。用一个队列就可实现栈。 难点还是在出队的时候: 比如队列[1,2,3],要模拟一个栈入栈就是直接append(其实就是C中的push&#xff0…...

项目上线前发现严重Bug怎么办?

今天分享一个面试问题,现在有一个面试场景: 项目计划明天发布,但是在今天你作为测试人员发现了一个严重的bug,市场相关人员又在催发布的事情,这个时候你应该怎么办? 这是测试工程师不管是在面试&#xff0…...

【WPF系列】- Application详解

【WPF系列】- Application详解 文章目录 【WPF系列】- Application详解一、Application简介Application 类具体有以下功能: 二、初始App.xaml二、自定义Main方法启动WPF应用程序第一种:启动应用程序的代码第二种:启动应用程序的代码第三种:启…...

常见的内置方法:__call__,__getitem__,__iter__,__next__

1.__call__方法 在创建好一个实例后,直接调用一个实例会报错。但使用__call__后,可以让这个实例可以像方法一样被调用(就是一个函数后面加个括号的函数调用形式) class Person:passp1 Person() p1() # 实例这样无法直接被调…...

python用cv2画图(line, rectangle, text等)

Python做图像图形研究的时候,通常需要画很多辅助几何形状(比如bounding box等)。基于opencv的几何图形绘制具有易用性,而且天然能和numpy数组交互。 本文总结了几种常用的cv2画几何图形的方法,当一个简易的手册使用&a…...

解决方案中word中分页符的使用

在投标方案中要善于使用“分页符”,尽可能少使用分节符号,没有分页符前,你每次修改你的标书或者文件,增加或者修改内容后。你的格式字段前后都是会发生变化,如何稳定的保证结构呢,那就是分页符的使用&#…...

ubuntu20.04下apache启用php7.4-fpm

默认的apache不解析php文件: 直接安装提示依赖有问题: libapache2-mod-php7.4 : Depends: php7.4-common ( 7.4.3-4ubuntu2.19) but 1:7.4.33-8ubuntu20.04.1deb.sury.org1 is to be installed rootfv-az1492-145:/tmp# sudo apt install libapache2-…...

在 CentOS 服务器上部署 JAR 文件到 Docker 容器

标题:在 CentOS 服务器上部署 JAR 文件到 Docker 容器的详细步骤 步骤 1: 确保 Docker 已安装 在开始之前,确保在 CentOS 服务器上已经安装了 Docker。如果没有安装,可以使用以下命令进行安装: sudo yum install docker步骤 2:…...

vector类模拟实现(c++)(学习笔记)

vector 构造函数析构函数[]push_backsize()capacity()reserve()push_back() 迭代器实现非const和const版本 pop_back()resize()insert()***重点erase()***重点再谈构造函数!拷贝构造函数****(重点)运算符重载***(重点)…...

Redis Sentinel 哨兵模式

Sentinel 哨兵模式 Redis Sentinel 官网 Redis 的 Sentinel 文档 -- Redis中国用户组(CRUG) Sentinel Redis 命令参考(红色) Sentinel 通过监控的方式获取主机的工作状态是否正常,当主机发生故障时, Senti…...

实用篇-MQ消息队列

一、初识MQ 通讯分为同步通讯和异步通讯,同步通讯就比如我们日常生活中的打电话,看直播,能够得到及时的反馈。而异步通讯则类似于聊天软件聊天,不需要建立实时的连接,并且可以进行建立多个业务一起异步执行 1. 同步通…...

springboot打包时依赖jar和项目jar分开打包;jar包瘦身

概述 最近感觉项目在部署时时jar包传输太慢了; 看了下jar包内容,除了项目代码,其余大部分都是依赖jar; 平时改动较多的只是项目代码,依赖jar改动比较少; 所以就在想能不能分开打包;这样只部署项…...

嵌入式系统的元素

注意:关于嵌入式系统的元素这一块儿内容,定义太多了。例如:吉姆莱丁 著,陈会翔 译,由清华大学出版社出版的《构建高性能嵌入式系统》中提到:嵌入式系统通常由电源、时基、数字处理、内存、软件和固件、专用…...

提升ChatGPT答案质量和准确性的方法Prompt engineering实用的prompt灵感和技巧

文章目录 1. 实用的prompt灵感和技巧小技巧常用prompt保存到输入法中普通promptprompt通用公式保存到输入法快捷指令中尝试用英语去写prompt沉浸式翻译软件3. 补充1. 实用的prompt灵感和技巧 解释***,并且给出暗喻/隐喻/类比(解释术语、专业名称,用一个词或短语指出常见的一…...

[Machine Learning] Learning with Noisy Labels

文章目录 随机分类噪声 (Random Classification Noise, RCN)类别依赖的标签噪声 (Class-Dependent Noise, CCN)二分类多分类 实例和类别依赖的标签噪声 (Instance and Label-Dependent Noise, ILN) 标签噪声是指分类任务中的标签被错误地标记。这可能是由于各种原因&#xff0c…...

集简云slack(自建)无需API开发轻松连接OA、电商、营销、CRM、用户运营、推广、客服等近千款系统

slack是一个工作效率管理平台,让每个人都能够使用无代码自动化和 AI 功能,还可以无缝连接搜索和知识共享,并确保团队保持联系和参与。在世界各地,Slack 不仅受到公司的信任,同时也是人们偏好使用的平台。 官网&#x…...

Idea 对容器中的 Java 程序断点远程调试

第一种:简单粗暴型 直接在java程序中添加log.info(),根据需要打印信息然后打包覆盖,根据日志查看相关信息 第二种:远程调试 在IDEA右上角点击编辑配置设置相关参数在Dockerfile中加入 "-jar", "-agentlib:jdwp…...

vscode设置保存后,自动格式化代码

第一步:打开setting.json文件 第二步:在setting.json中加入以下代码 "editor.formatOnType": true, "editor.formatOnSave": true, "editor.formatOnPaste": true...

datagrip出现 java.net.ConnectException: Connection refused: connect.

出现这样的情况要看一下hadoop有没有启动 start-all.sh nohup /export/server/apache-hive-3.1.2-bin/bin/hive --service hiveserver2 & scp -r /export/server/apache-hive-3.1.2-bin/ node3:/export/server/ /export/server/apache-hive-3.1.2-bin/bin/hive show databa…...

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向: 逆向设计 通过神经网络快速预测微纳结构的光学响应,替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...

Cursor实现用excel数据填充word模版的方法

cursor主页:https://www.cursor.com/ 任务目标:把excel格式的数据里的单元格,按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例,…...

高频面试之3Zookeeper

高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个?3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制(过半机制&#xff0…...

【python异步多线程】异步多线程爬虫代码示例

claude生成的python多线程、异步代码示例,模拟20个网页的爬取,每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程:允许程序同时执行多个任务,提高IO密集型任务(如网络请求)的效率…...

3-11单元格区域边界定位(End属性)学习笔记

返回一个Range 对象,只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意:它移动的位置必须是相连的有内容的单元格…...

Proxmox Mail Gateway安装指南:从零开始配置高效邮件过滤系统

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「storms…...

从物理机到云原生:全面解析计算虚拟化技术的演进与应用

前言:我的虚拟化技术探索之旅 我最早接触"虚拟机"的概念是从Java开始的——JVM(Java Virtual Machine)让"一次编写,到处运行"成为可能。这个软件层面的虚拟化让我着迷,但直到后来接触VMware和Doc…...

sshd代码修改banner

sshd服务连接之后会收到字符串: SSH-2.0-OpenSSH_9.5 容易被hacker识别此服务为sshd服务。 是否可以通过修改此banner达到让人无法识别此服务的目的呢? 不能。因为这是写的SSH的协议中的。 也就是协议规定了banner必须这么写。 SSH- 开头&#xff0c…...

Vue3中的computer和watch

computed的写法 在页面中 <div>{{ calcNumber }}</div>script中 写法1 常用 import { computed, ref } from vue; let price ref(100);const priceAdd () > { //函数方法 price 1price.value ; }//计算属性 let calcNumber computed(() > {return ${p…...

Vue 3 + WebSocket 实战:公司通知实时推送功能详解

&#x1f4e2; Vue 3 WebSocket 实战&#xff1a;公司通知实时推送功能详解 &#x1f4cc; 收藏 点赞 关注&#xff0c;项目中要用到推送功能时就不怕找不到了&#xff01; 实时通知是企业系统中常见的功能&#xff0c;比如&#xff1a;管理员发布通知后&#xff0c;所有用户…...