gstreamer+mpp调用硬解码播放视频

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、cpu解码
  • 二、gstreamer+mpp
    • 1.默认已安装
    • 2.没安装必要软件
  • 总结


前言

以前一直在MPP上开发硬解码推理,最近想弄一个盒子支持调用mpp硬解码播放视频的。我使用的盒子是firefly的rk3399,这个板子的cpu说强也不强,说弱也不算太弱。


一、cpu解码

为了对比先使用cpu解码,最典型的就是随便用一个播放器即可,比如vlc。
在这里插入图片描述
这个占用太大了吧,不要说4K了,就算1080p也差点顶不住。

二、gstreamer+mpp

firefly的系统还是可以的,基本上不需要安装什么软件,默认完整版系统都自带了。

1.默认已安装

这个默认你已经安装了所有必要的软件。

gst-play-1.0 --flags=3 --videosink="fpsdisplaysink video-sink=xvimagesink signal-fps-measurements=true text-overlay=false sync=true" <视频文件>

在这里插入图片描述
单看gst明显小太多了,说明调用了硬件解码器(mpp)。

2.没安装必要软件

firefly默认是安装了软件的,其它的系统安装就复杂些。参考我的安装就行了。

ii  gir1.2-gstreamer-1.0:arm64           1.14.5-0ubuntu1~18.04.1firefly1        arm64        GObject introspection data for the GStreamer library
ii  gstreamer1.0-alsa:arm64              1.14.5-0ubuntu1~18.04.1firefly2        arm64        GStreamer plugin for ALSA
ii  gstreamer1.0-doc                     1.14.5-0ubuntu1~18.04.1firefly1        all          GStreamer core documentation and manuals
ii  gstreamer1.0-gl:arm64                1.14.5-0ubuntu1~18.04.1firefly2        arm64        GStreamer plugins for GL
ii  gstreamer1.0-gtk3:arm64              1.14.5-0ubuntu1~18.04.1firefly2        arm64        GStreamer plugin for GTK+3
ii  gstreamer1.0-libav:arm64             1.14.5-0ubuntu1~18.04.1firefly1        arm64        libav plugin for GStreamer
ii  gstreamer1.0-pipewire:arm64          0.2.7-1firefly1                        arm64        GStreamer 1.0 plugin for the PipeWire multimedia server
ii  gstreamer1.0-plugins-bad:arm64       1.14.5-0ubuntu1~18.04.1firefly2        arm64        GStreamer plugins from the "bad" set
ii  gstreamer1.0-plugins-base:arm64      1.14.5-0ubuntu1~18.04.1firefly2        arm64        GStreamer plugins from the "base" set
ii  gstreamer1.0-plugins-base-apps       1.14.5-0ubuntu1~18.04.1firefly2        arm64        GStreamer helper programs from the "base" set
ii  gstreamer1.0-plugins-base-doc        1.14.5-0ubuntu1~18.04.1firefly2        all          GStreamer documentation for plugins from the "base" set
ii  gstreamer1.0-plugins-good:arm64      1.14.5-0ubuntu1~18.04.1firefly2        arm64        GStreamer plugins from the "good" set
ii  gstreamer1.0-plugins-ugly:arm64      1.14.5-0ubuntu1~18.04.1                arm64        GStreamer plugins from the "ugly" set
ii  gstreamer1.0-pulseaudio:arm64        1.14.5-0ubuntu1~18.04.1firefly2        arm64        GStreamer plugin for PulseAudio
ii  gstreamer1.0-rockchip1               1.14.2firefly3                         arm64        The Gstreamer plugins for Rockchip RK3xxx platform.
ii  gstreamer1.0-tools                   1.14.5-0ubuntu1~18.04.1firefly1        arm64        Tools for use with GStreamer
ii  gstreamer1.0-vaapi:arm64             1.14.5-0ubuntu1~ubuntu18.04.1          arm64        VA-API plugins for GStreamer
ii  gstreamer1.0-x:arm64                 1.14.5-0ubuntu1~18.04.1firefly2        arm64        GStreamer plugins for X11 and Pango
ii  libgstreamer-gl1.0-0:arm64           1.14.5-0ubuntu1~18.04.1firefly2        arm64        GStreamer GL libraries
ii  libgstreamer-opencv1.0-0:arm64       1.14.5-0ubuntu1~18.04.1firefly2        arm64        GStreamer OpenCV libraries
ii  libgstreamer-plugins-bad1.0-0:arm64  1.14.5-0ubuntu1~18.04.1firefly2        arm64        GStreamer libraries from the "bad" set
ii  libgstreamer-plugins-base1.0-0:arm64 1.14.5-0ubuntu1~18.04.1firefly2        arm64        GStreamer libraries from the "base" set
ii  libgstreamer-plugins-good1.0-0:arm64 1.14.5-0ubuntu1~18.04.1firefly2        arm64        GStreamer development files for libraries from the "good" set
ii  libgstreamer1.0-0:arm64              1.14.5-0ubuntu1~18.04.1firefly1        arm64        Core GStreamer libraries and elements
ii  libgstreamer1.0-dev:arm64            1.14.5-0ubuntu1~18.04.1firefly1        arm64        GStreamer core development files

总结

1、目前实现了视频播放,接下来研究chrome硬解码和播放器硬解码

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

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

相关文章

跑图像生成模型GAN时,遇到OSError: cannot open resource 报错解决办法

报错信息如下&#xff1a; Traceback (most recent call last): File "/root/autodl-tmp/ssa-gan/pretrain_DAMSM.py", line 276, in <module> count train(dataloader, image_encoder, text_encoder, File "/root/autodl-tmp/ssa-gan/pretrain_DAMSM.py…

QT Creator与QT的下载安装

0.起因/小结&#xff1a; 因为运行项目需要更高版本的QT。 下载了QT 6.2.0&#xff0c;但是里面的gcc&#xff0c;g&#xff0c;gdb是64bit的&#xff0c;而我的QT Creator是32bit的&#xff0c;所以又下载了QT 13.0.0的64bit版本。 遇到问题&#xff1a;msvcp140_1.dll找不到…

软件管理及部分命令

sed命令 格式&#xff1a; sed [选项] 操作 目标文件 选项&#xff1a; -i&#xff1a;修改原始文件【如果不加-i&#xff0c;那就是仅仅修改内存中的文件副本】 案例&#xff1a;将1.txt中的tom修改成jerry。 sed -i "s/tom/jerry/g" 1.txt 将1…

基于FPGA的任意点滑动平均(滑动窗长度和数据位宽参数化,例化时参数可设置)

目录 1.前言2.原理3.举例说明4.Matlab实现5.FPGA实现滑动平均 微信公众号获取更多FPGA相关源码&#xff1a; 1.前言 对于一维信号&#xff0c;我们可以使用类似移动平均滤波&#xff08;Moving Average Filtering&#xff09;实现denoising。Moving Average Filtering 是一种…

vue-router 源码分析——3. 动态路由匹配

这是对vue-router 3 版本的源码分析。 本次分析会按以下方法进行&#xff1a; 按官网的使用文档顺序&#xff0c;围绕着某一功能点进行分析。这样不仅能学习优秀的项目源码&#xff0c;更能加深对项目的某个功能是如何实现的理解。这个对自己的技能提升&#xff0c;甚至面试时…

Jmeter性能分析及调优详解(入门)

一、系统性能理解 如果说需求、开发、DB、运维、测试是单一一门学科&#xff0c;那么性能就是综合学科&#xff0c;它包含了需求分析、DB、开发、测试、运维的所有学科。其实一般来说在实际性能分析和调优中&#xff0c;测试担任的角色就是写压测脚本并执行脚本查看结果&#…

TPM 是什么?如何查看电脑的 TPM?

TPM 是什么&#xff1f; 首先我们来了解一下 TPM 是什么&#xff0c;TPM 由可信计算组织&#xff08;Trusted Computing Group&#xff0c;TCG&#xff09;开发&#xff0c;为了在提高计算机系统的安全性。随着网络安全威胁的不断增加&#xff0c;TPM 技术逐渐成为确保系统安全…

PDF文件处理不再复杂:9个Python库让一切变得简单

大家好&#xff0c;这里是程序员晚枫&#xff0c;2年前发布了一个开源项目&#xff1a;python-office&#xff0c;目前在GitHub上有800⭐&#xff0c;最近在开发新功能时感觉Python知识有点不够用了。 所以打算从2方面补充自己的知识&#xff1a;研究优秀的第三方库和学习Pyth…

力扣算法题:多数元素 --多语言实现

无意间看到&#xff0c;力扣存算法代码居然还得升级vip。。。好吧&#xff0c;我自己存吧 golang&#xff1a; func majorityElement(nums []int) int {count : 0condidate : 0for _,val : range nums {if count 0 {condidate valcount 1} else if val condidate {count} …

Qt实现程序单实例运行(只能运行1个进程)及QSharedMemory用法

1. 问题提出 在开发时&#xff0c;经常遇到这样的需求或场景&#xff1a;程序只能被启动一次&#xff0c;不能启动多次&#xff0c;启动多次会导致混乱&#xff0c;如&#xff1a;可执行程序用到文件指针、串口句柄等。试想如果存在多个同一个文件的句柄或同一个串口的句柄&…

开源网关Apache APISIX启用JWT身份验证

说明&#xff1a; 本文APISIX的配置参考我之前写的《Ubuntu部署Apache APISIX》 创建最小API 首先&#xff0c;确保你已经安装了.NET 6 SDK。创建文件夹“MinimalApiDemo”&#xff0c;VS Code打开文件夹&#xff0c;打开终端 dotnet new web -o MinimalApiDemo cd Minimal…

python字典包连接mysql

连接mysql, 使用清华大学或其他国内 PyPI 镜像源 如果你在中国&#xff0c;由于网络问题&#xff0c;连接到 Oracle 的官方仓库可能会很慢或失败。在这种情况下&#xff0c;你可以使用国内的 PyPI 镜像源。例如&#xff0c;使用清华大学的镜像源&#xff1a; bash复制代码 pi…

鸿蒙开发接口数据管理:【@ohos.data.distributedData (分布式数据管理)】

分布式数据管理 分布式数据管理为应用程序提供不同设备间数据库的分布式协同能力。通过调用分布式数据各个接口&#xff0c;应用程序可将数据保存到分布式数据库中&#xff0c;并可对分布式数据库中的数据进行增加、删除、修改、查询、同步等操作。 该模块提供以下分布式数据…

Spring的bean的生命周期

想象一下&#xff0c;Spring中的Bean就像是你家后院种植的一株植物&#xff0c;从播种到开花结果&#xff0c;再到最后枯萎&#xff0c;整个过程就像是Bean的生命周期。现在&#xff0c;让我们以这个比喻来了解一下Spring Bean的生命周期吧&#xff1a; 1. 播种&#xff08;…

49.线程池的关闭方法

shutdown方法 1.线程池状态变为shutdown 2.不会接收新任务 3.已提交的任务会执行完 4.此方法不会阻塞调用线程执行 ExecutorService executorService = Executors.newFixedThreadPool(2);executorService.submit(() -> {log.debug("task1 running");try {TimeUnit…

ArrayList——简单洗牌算法

特殊语法介绍&#xff1a; List<List<E>> 该语法情况比较特殊&#xff0c;相当于一个“二维数组”存着一个个线性表的结构&#xff0c;如图&#xff1a; 该语法的灵活性强&#xff0c;可适用于多种类型和多种情况。接下来就使用该语法来实现一个简单的洗牌操作。…

Laravel常用数据库操作指令(模型/DB)

1、使用模型操作数据库&#xff0c;需要先引入相应的模型 如:use App\Models\Test; 2、使用DB操作数据库需要先引入DB库 如:use Illuminate\Support\Facades\DB; 一、数据库查询操作 get方法&#xff1a; 写法一:Test::select(id,name)->where(id,,1)->get();//sel…

vite+ts设置别名

准备工作 安装 types/node 避免代码爆红 npm install types/node一、根目录下 vite.config.ts 文件中配置 import { resolve } from path;resolve: {// 设置文件./src路径为 alias: [{find: ,replacement: resolve(__dirname, ./src)}] }二、根目录下 tsconfig.json 文件中配…

【漏洞复现】用友NC downCourseWare 任意文件读取漏洞

0x01 产品简介 用友NC是一款企业级ERP软件。作为一种信息化管理工具&#xff0c;用友NC提供了一系列业务管理模块&#xff0c;包括财务会计、采购管理、销售管理、物料管理、生产计划和人力资源管理等&#xff0c;帮助企业实现数字化转型和高效管理。 0x02 漏洞概述 用友NC …

618网购节,电商能挡住恶意网络爬虫的攻击吗?

目录 爬虫盗取电商数据的步骤 电商平台如何发现网络爬虫&#xff1f; 如何拦截违法网络爬虫 2023年&#xff0c;杭州中院审结了两起涉及“搬店软件”的不正当竞争案件。本案的原告是国内某大型知名电子商务平台的运营主体&#xff0c;而被告则是开发了一款名为“某搬家快速商品…