徐州模板开发建站/seo的优点
前言
由于项目需要,需要开发Jetson平台的硬件编解码;
优化CPU带宽,后续主要以介绍硬件编解码为主
1.Jetson各平台编解码性能说明
如下是拿了Jetson nano/tx2/Xavier等几个平台做对比;
这里说明的编解码性能主要是对硬件来说的
2. 编解码实现说明
2.1 软件编解码
优点:功能强大、实现容易,工具强大
缺点: 占用CPU很大
常用工具有如下: ffmpeg、gstreamer,只做简单介绍
2.1.1 ffmpeg
FFMPEG是领先的多媒体框架,提供了音视频的编码,解码,转码,封装,解封装,流,滤镜,播放等功能。
它几乎支持所有的音视频格式,不管是标准委员会,社区,还是公司设计的。
它是高度可移植,跨平台的:
可以在Linux, Mac OS X, Microsoft Windows, the BSDs, Solaris等系统上,在
各种不同的编译环境,机器架构,配置下编译,运行,并通过测试。
FFmpeg 一共包含 8 个库:
avcodec 编解码(最重要的库)
avformat 封装格式处理
avfilter 滤镜特效处理
avdevice 各种设备的输入输出
avutil 工具库
postproc 后加工
swresample 音频采样数据格式转换
swscale 视频像素数据格式转换
2.1.2 gstreamer
Gstreamer是一个支持Windows,Linux,Android, iOS的跨平台的多媒体框架,
应用程序可以通过管道(Pipeline)的方式,将多媒体处理的各个步骤串联起来,达到预期的效果。
每个步骤通过元素(Element)基于GObject对象系统通过插件(plugins)的方式实现,方便了各项功能的扩展。
2.2 硬件编解码
优点: 占用CPU很小, 功能实现更灵活
缺点: 不通用,需要调用平台相关API,有些硬件方面的限制
2.2.1 Multimedia API
Multimedia API为那些不使用GStreamer等框架或利用自定义框架的开发人员提供了另一条应用程序开发路径。
Multimedia API是支持灵活的应用程序开发的低级API的集合。
这些低级API通过提供对底层硬件块的更好控制来实现灵活性。
多媒体API包括:
• libargus for imaging applications
• V4L2 API for encoding, decoding, scaling, and other media functions
• NVOSD for On-Screen display
• Buffer Utility for buffer allocation, management, and sharing, transform, composition, and blending
Example applications are provided to demonstrate:
• Video decode (dual decode support with NVDEC)
• Video encode (dual encode support with NVENC)
• Video decode and DRM based render
• Video convert
• Video decode with multi-channels
• Multivideo decode (decoding of multiple video streams in parallel)
• JPEG decode and JPEG encode
• Image/video processing with CUDA
• Camera JPEG capture and video record
• Camera capture and CUDA processing
• Multicamera capture with composition
• Object detection and classification with cuDNN
• TensorRT and OpenCV usage
2.2.2 Accelerated GStreamer
由于Jetson平台可支持GStreamer方面得加速;
所以也可以达到降低CPU带宽的目的
2.2.2.1 Encode 示例
(1)Video Encode Examples Using gst-launch-1.0
Video Encode Using gst-omx
//H.264 Encode (NVIDIA Accelerated Encode)
gst-launch-1.0 videotestsrc ! \ 'video/x-raw, format=(string)I420, width=(int)640,
\ height=(int)480' ! omxh264enc !
\ 'video/x-h264, stream-format=(string)byte-stream' ! h264parse !
\ qtmux ! filesink location=test.mp4 -e //H.265 Encode (NVIDIA Accelerated Encode) g
st-launch-1.0 videotestsrc !
\ 'video/x-raw, format=(string)I420, width=(int)640,
\ height=(int)480' ! omxh265enc ! filesink location=test.h265 -e
Video Encode Using gst-v4l2
//H.264 Encode (NVIDIA Accelerated Encode)
gst-launch-1.0 nvarguscamerasrc !
\ 'video/x-raw(memory:NVMM), width=(int)1920, height=(int)1080,
\ format=(string)NV12, framerate=(fraction)30/1' ! nvv4l2h264enc !
\ bitrate=8000000 ! h264parse ! qtmux ! filesink
\ location=<filename_h264.mp4> -e //H.265 Encode (NVIDIA Accelerated Encode)
gst-launch-1.0 nvarguscamerasrc !
\ 'video/x-raw(memory:NVMM), width=(int)1920, height=(int)1080,
\ format=(string)NV12, framerate=(fraction)30/1' ! nvv4l2h265enc
\ bitrate=8000000 ! h265parse ! qtmux ! filesink \ location=<filename_h265.mp4> -e
(2)Image Encode Examples Using gst-launch-1.0
gst-launch-1.0 videotestsrc num-buffers=1 !
\ 'video/x-raw, width=(int)640, height=(int)480,
\ format=(string)I420' ! nvjpegenc ! filesink location=test.jpg -e
2.2.2.2 Decode 示例
(1)Video Decode Examples Using gst-launch-1.0
Video Decode Using gst-omx
//H.264 Decode (NVIDIA Accelerated Decode)
gst-launch-1.0 filesrc location=<filename.mp4> !
\ qtdemux name=demux demux.video_0 ! queue ! h264parse ! omxh264dec !
\ nveglglessink -e //H.265 Decode (NVIDIA Accelerated Decode)
gst-launch-1.0 filesrc location=<filename.mp4> !
\ qtdemux name=demux demux.video_0 ! queue ! h265parse ! omxh265dec ! \ nvoverlaysink -e
Video Decode Using gst-v4l2
//H.264 Decode (NVIDIA Accelerated Decode)
gst-launch-1.0 filesrc location=<filename_h264.mp4> !
\ qtdemux ! queue ! h264parse ! nvv4l2decoder ! nv3dsink -e //H.265 Decode (NVIDIA Accelerated Decode)
gst-launch-1.0 filesrc location=<filename_h265.mp4> !
\ qtdemux ! queue ! h265parse ! nvv4l2decoder ! nv3dsink -e
(2)Image Decode Examples Using gst-launch-1.0
//JPEG Decode (NVIDIA Accelerated Decode) gst-launch-1.0 filesrc location=<filename.jpg> ! nvjpegdec !
\ imagefreeze ! xvimagesink -e
相关文章:

Nvidia Jetson 编解码开发(1)介绍
前言 由于项目需要,需要开发Jetson平台的硬件编解码; 优化CPU带宽,后续主要以介绍硬件编解码为主 1.Jetson各平台编解码性能说明 如下是拿了Jetson nano/tx2/Xavier等几个平台做对比; 这里说明的编解码性能主要是对硬件来说的…...

【操作系统】24王道考研笔记——第一章 计算机系统概述
第一章 计算机系统概述 一、操作系统基本概念 1.1 定义 1.2 特征 并发 (并行:指两个或多个事件在同一时刻同时发生) 共享 (并发性指计算机系统中同时存在中多个运行着的程序,共享性指系统中的资源可供内存中多个并…...

菜鸟Vue教程 - 实现带国际化的注册登陆页面
初接触vue的时候觉得vue好难,因为项目中要用到,就硬着头皮上,慢慢的发现也不难,无外乎画个布局,然后通过样式调整界面。在通过属性和方法跟js交互。js就和我们写的java代码差不多了,复杂一点的就是引用这种…...

Mybatis ORDER BY 排序失效 ORDER BY 与 CASE WHEN THEN 排序问题
一、ORDER BY 排序失效 如果传递给 mapper 的参数值是以 #{test_参数} 的形式,那么就会报错 具体如下: 传递参数是 name 排序规则是升序 asc package com.ruoyi.web.mapper; public interface TestMapper {List<TestEntity> getTestData( Para…...

日常BUG——微信小程序提交代码报错
😜作 者:是江迪呀✒️本文关键词:日常BUG、BUG、问题分析☀️每日 一言 :存在错误说明你在进步! 一、问题描述 在使用微信小程序开发工具进行提交代码时,报出如下错误: Invalid a…...

1048:有一门课不及格的学生
【题目描述】 给出一名学生的语文和数学成绩,判断他是否恰好有一门课不及格(成绩小于60分)。若该生恰好有一门课不及格,输出1;否则输出0。 【输入】 一行,包含两个在0到100之间的整数,分别是该生的语文成绩和数学成…...
数据结构——B-树、B+树、B*树
一、B-树 1. B-树概念 B树是一种适合外查找的、平衡的多叉树。一棵m阶(m>2)的B树,是一棵平衡的M路平衡搜索树,它可以是空树或满足以下性质: (1)根节点至少有两个孩子。 (2&#…...

2023国赛数学建模思路 - 案例:FPTree-频繁模式树算法
文章目录 算法介绍FP树表示法构建FP树实现代码 建模资料 ## 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 算法介绍 FP-Tree算法全称是FrequentPattern Tree算法,就是频繁模式树算法,…...

GPT系列总结
1.GPT1 无监督预训练有监督的子任务finetuning https://cdn.openai.com/research-covers/language-unsupervised/language_understanding_paper.pdf 1.1 Unsupervised pre-training (1)基于一个transformer decoder,通过一个窗口的输入得…...

【福建事业单位-综合基础知识】05民法典
这里写自定义目录标题 一、民法概述概念原则总结 二、自然人概念总结 三、民事法律行为总结 民法考察2-4题(重点总则篇) 一、民法概述 概念原则 总结 二、自然人 概念 总结 三、民事法律行为 总结...

微服务篇
微服务篇 springcloud 常见组件有哪些 面试官: Spring Cloud 5大组件有哪些? 候选人: 早期我们一般认为的Spring Cloud五大组件是 Eureka:注册中心Ribbon:负载均衡Feign:远程调用Hystrix:…...

C++ 的关键字(保留字)完整介绍
1. asm asm (指令字符串):允许在 C 程序中嵌入汇编代码。 2. auto auto(自动,automatic)是存储类型标识符,表明变量"自动"具有本地范围,块范围的变量声明(如for循环体内的变量声明…...

C#小轮子:MiniExcel,快速操作Excel
文章目录 前言环境安装功能测试普通读写读新建Excel表格完全一致测试:成功大小写测试:严格大小写别名读测试:成功 写普通写别名写内容追加更新模板写 其它功能xlsx和CSV互转 前言 Excel的操作是我们最常用的操作,Excel相当于一个…...

Ribbon负载均衡
Ribbon与Eureka的关系 Eureka的服务拉取与负载均衡都是由Ribbon来实现的。 当服务发送http://userservice/user/xxxhtt://userservice/user/xxx请求时,是无法到达userservice服务的,会通过Ribbon会把这个请求拦截下来,通过Eureka-server转换…...

LeetCode--HOT100题(33)
目录 题目描述:148. 排序链表(中等)题目接口解题思路代码 PS: 题目描述:148. 排序链表(中等) 给你链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表 。 LeetCode做题链接࿱…...

【docker练习】
1.安装docker服务,配置镜像加速器 看这篇文章https://blog.csdn.net/HealerCCX/article/details/132342679?spm1001.2014.3001.5501 2.下载系统镜像(Ubuntu、 centos) [rootnode1 ~]# docker pull centos [rootnode1 ~]# docker pull ubu…...

韦东山-电子量产工具项目:业务系统
代码结构 所有代码都已通过测试跑通,其中代码结构如下: 一、include文件夹 1.1 common.h #ifndef _COMMON_H #define _COMMON_Htypedef struct Region {int iLeftUpX; //区域左上方的坐标int iLeftUpY; //区域左下方的坐标int iWidth; //区域宽…...

React(6)
1.React插槽 import React, { Component } from react import Child from ./compoent/Childexport default class App extends Component {render() {return (<div><Child><div>App下的div</div></Child></div>)} }import React, { Compon…...

RabbitMq-2安装与配置
Rabbitmq的安装 1.上传资源 注意:rabbitmq的版本必须与erlang编译器的版本适配 2.安装依赖环境 //打开虚拟机 yum install build-essential openssl openssl-devel unixODBC unixODBC-devel make gcc gcc-c kernel-devel m4 ncurses-devel tk tc xz3.安装erlan…...

论文笔记:Continuous Trajectory Generation Based on Two-Stage GAN
2023 AAAI 1 intro 1.1 背景 建模人类个体移动模式并生成接近真实的轨迹在许多应用中至关重要 1)生成轨迹方法能够为城市规划、流行病传播分析和交通管控等城市假设分析场景提供仿仿真数据支撑2)生成轨迹方法也是目前促进轨迹数据开源共享与解决轨迹数…...

redis实战-缓存数据解决缓存与数据库数据一致性
缓存的定义 缓存(Cache),就是数据交换的缓冲区,俗称的缓存就是缓冲区内的数据,一般从数据库中获取,存储于本地代码。防止过高的数据访问猛冲系统,导致其操作线程无法及时处理信息而瘫痪,这在实际开发中对企业讲,对产品口碑,用户评价都是致命的;所以企业非常重视缓存…...

【排序】选择排序
文章目录 选择排序时间复杂度空间复杂度稳定性 代码 选择排序 以从小到大为例进行说明。 选择排序就是定义出一个最小值下标,然后遍历整个剩下的数组选择出最小的放进最小值下标的位置。 时间复杂度 O(N) 遍历一次即可 空间复杂度 O(1) 稳定性 不稳定 代码 p…...

深入浅出Pytorch函数——torch.nn.init.trunc_normal_
分类目录:《深入浅出Pytorch函数》总目录 相关文章: 深入浅出Pytorch函数——torch.nn.init.calculate_gain 深入浅出Pytorch函数——torch.nn.init.uniform_ 深入浅出Pytorch函数——torch.nn.init.normal_ 深入浅出Pytorch函数——torch.nn.init.c…...

探索高级UI、源码解析与性能优化,了解开源框架及Flutter,助力Java和Kotlin筑基,揭秘NDK的魅力!
课程链接: 链接: https://pan.baidu.com/s/13cR0Ip6lzgFoz0rcmgYGZA?pwdy7hp 提取码: y7hp 复制这段内容后打开百度网盘手机App,操作更方便哦 --来自百度网盘超级会员v4的分享 课程介绍: 📚【01】Java筑基:全方位指…...

国外服务器怎么有效降低延迟
国外服务器怎么有效降低延迟?在全球化网络环境下,越来越多的企业和个人选择使用国外服务器来托管网站、应用程序或数据。然而,由于地理位置、网络连接等因素,使用国外服务器时可能会遇到延迟较高的问题。高延迟不仅影响用户体验,…...

AI百度文心一言大语言模型接入使用(中国版ChatGPT)
百度文心一言接入使用(中国版ChatGPT) 一、百度文心一言API二、使用步骤1、接口2、请求参数3、请求参数示例4、接口 返回示例 三、 如何获取appKey和uid1、申请appKey:2、获取appKey和uid 四、重要说明 一、百度文心一言API 基于百度文心一言语言大模型…...

vue 安装并配置vuex
1.安装vuex命令:npm i vuex3.6.2 2.全局配置 在main文件里边导入-安装-挂载 main.js页面配置的 import Vue from vue import App from ./App.vue import Vuex from vuex//导入 Vue.use(Vuex)//安装插件 // 创建store对象 const store new Vuex.Store({ }) // 挂载到vue对象上…...

有一种新型病毒在 3Ds Max 环境中传播,如何避免?
3ds Max渲染慢,可以使用渲云渲染农场: 渲云渲染农场解决本地渲染慢、电脑配置不足、紧急项目渲染等问题,可批量渲染,批量出结果,速度快,效率高。 此外3dmax支持的CG MAGIC插件专业版正式上线,…...

基于Java/springboot铁路物流数据平台的设计与实现
摘要 随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,铁路物流数据平台当然也不能排除在外,从文档信息、铁路设计的统计和分析,在过程中会产生大量的、各…...

比较杂的html元素
abbr 表示缩写 time 踢动给浏览器或搜索引擎阅读的事件;看着没什么效果 b 以前是一个无语义元素,主要用于加粗字体,有了css之后,加粗就不需要b元素了。 现在作为提醒注意(Bring Attention To)元素&…...