QT播放gstreamer命令(三)---使用QMediaPlayer
前文:
因为之前听说过,QMediaPlayer已经集成了gstreamer,但是并没有什么接口来例子来说明,根本看不出来有任何gstreamer的形式,于是在QT5助手里面搜了一下,发现确实有gstreamer的痕迹,但是例子写的极其拉胯,经过自己尝试,终于发现了一种直接使用QMediaPlayer播放gstreamer命令的方式,以下是官方截图:
以上是官方截图,实际测试发现,会单独弹出来,有点小问题,不过我已经解决了,说明这种方案确实可行。
步骤:
一、pro文件修改
1. 增加QT += multimediawidgets
二、
main.cpp文件:
记得,sink的名字必须是 qtvideosink !!! 比如:
mediaPlayer.setMedia(QUrl("gst-pipeline: videotestsrc ! xvimagesink name=qtvideosink"));
#include <QWidget>
#include <QUrl>
#include <QVBoxLayout>
#include <QtMultimediaWidgets>
#include <gst/gst.h>
#include <gst/video/videooverlay.h>int main(int argc, char *argv[])
{QApplication app(argc, argv);QWidget window;QVBoxLayout layout(&window);QVideoWidget *videoWidget = new QVideoWidget;QPushButton playButton1("Play");QPushButton playButton2("Stop");QMediaPlayer mediaPlayer;mediaPlayer.setVideoOutput(videoWidget);// 设置视频源
// mediaPlayer.setMedia(QUrl::fromLocalFile("/home/enpht/Videos/1080.mp4"));//mediaPlayer.setMedia(QUrl("gst-pipeline: v4l2src device=/dev/video0 ! videoconvert ! xvimagesink name=qtvideosink"));mediaPlayer.setMedia(QUrl("gst-pipeline: videotestsrc ! xvimagesink name=qtvideosink"));// 连接按钮的点击信号到播放视频的槽函数QObject::connect(&playButton1, &QPushButton::clicked, [&mediaPlayer]() {mediaPlayer.play();});QObject::connect(&playButton2, &QPushButton::clicked, [&mediaPlayer]() {mediaPlayer.stop();});layout.addWidget(videoWidget);layout.addWidget(&playButton1);layout.addWidget(&playButton2);window.show();return app.exec();
}
经过我的继续测试,发现了这种用法一些很牛逼的用法,比如封装头文件,使用提升等等,具体就不透露了哈,偷偷用就行。
同时这种方法看似方便,底层有一些问题需要解决,以后会继续更新。
更新:
1.甚至可以推流,以及设置caps:
mediaPlayer.setMedia(QUrl("gst-pipeline: v4l2src ! capsfilter caps=\"image/jpeg,width=1920,height=1080,framerate=30/1\" ! jpegdec ! nvvidconv ! nvv4l2h264enc ! queue ! mpegtsmux ! srtsink uri=srt://192.168.1.125:10016?mode=listener"));
相关文章:

QT播放gstreamer命令(三)---使用QMediaPlayer
前文: 因为之前听说过,QMediaPlayer已经集成了gstreamer,但是并没有什么接口来例子来说明,根本看不出来有任何gstreamer的形式,于是在QT5助手里面搜了一下,发现确实有gstreamer的痕迹,但是例子写…...
Ubuntu22扩大分区
一台Ubuntu一直以为扩展成功了的,但是用起来空间不够,才发现空间还是那么小,所以赶快想办法扩展。 首先尝试使用gparted软件,结果在软件里面发现硬盘分区/dev/sda3已经全分配78G了。 但是看df -H,明明没有扩展: /dev…...

数据结构篇-05:哈希表解决字母异位词分组
本文对应力扣高频100 ——49、字母异位词分组 哈希表最大的特点就是它可以把搜索元素的时间复杂度降到O(1)。这一题就是要我们找到 “字母异位词” 并把它们放在一起。 “字母异位词”就是同一个单词中字母的不同组合形式。判断“字母异位词”有两个视角:1、所含字…...

添加了gateway之后远程调用失败
前端提示500,后端提示[400 ] during [GET] to [http://userservice/user/1] 原因是这个,因为在请求地址写了两个参数,实际上只传了一个参数 解决方案:加上(required false)并重启所有相关服务...

C#,哥伦布数(Golomb Number)的算法与源代码
1 哥伦布数(Golomb Number) 哥伦布数(Golomb Number)是一个自然数的非减量序列,使得n在序列中正好出现G(n)次。前几个15的G(n)值为:1 2 2 3 3 4 4 4 5 5 5 6…...

JVM学习
1.Java虚拟机内部有哪些线程共享,那些线程隔离 程序计数器: 通过改变这个计数器的值来选取下一条需要执行的字节码命令 Java虚拟机栈: 栈,每个方法被执行时,Java虚拟机都会同步的创建一个栈帧用于存储局部变量表&…...
Visual Studio 20XX中utf-8中文在控制台显示乱码
文章目录 在 Visual Studio 20xx中,如果源码文件是 UTF8编码,要打印中文到控制台时,控制台会显示乱码,可以进行以下设置。 包含<Windows.h>头文件。在main函数初始调用SetConsoleOutputCP(CP_UTF8)设置控制台输出字符集为UT…...

拥抱个人成长与社会进步:自我认知与开放心态的相互影响
拥抱个人成长与社会进步:自我认知与开放心态的相互影响 Embracing Personal Growth and Societal Progress: The Interplay of Self-Awareness and Open-mindedness 一、引言 I. Introduction 在当今急速发展的时代,个人成长与社会进步交织在一起&…...

【PostgreSQL内核学习(二十五) —— (DBMS存储空间管理)】
DBMS存储空间管理 概述块(或页面)PageHeaderData 结构体HeapTupleHeaderData 结构 表空间表空间的作用:表空间和数据库关系表空间执行案例 补充 —— 模式(Schema) 声明:本文的部分内容参考了他人的文章。在…...

2024年 复习 HTML5+CSS3+移动web 笔记 之CSS遍 第5天
第 五 天 整个网站例 5.1 准备工作 项目目录与版心 base.css 5.2 网页制作思路 5.3 header 区域-整体布局 5.4 header区域-logo 5.5 header区域-导航 index.html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8">&l…...
SpringBoot使用Kafka详解含完整代码
1. 前言 随着大数据和实时处理需求的增长,Kafka作为一种分布式流处理平台,与Spring Boot的集成变得尤为重要。本文将详细探讨如何在Spring Boot应用程序中设置和使用Kafka,从基础概念到高级特性,通过实际代码示例帮助读者深入理解…...
解决:java -jar 在cmd中运行 程序卡顿,卡死的 问题。BIO和NIO案例保存
解决 怎么解决,就是 日志别输出到 cmd 就行了。就行了。就行了。 java -jar demo.jar > output.log 2>&1 &最近写东西,遇到了 程序偶尔卡死的情况。是java -jar 启动的。具体卡死为:http请求超级卡顿 或 偶尔反应好多个请求&…...
LeetCode第824题 - 山羊拉丁文
题目 解答 String toGoatLatin(String S) {if (S null) {return "";}S S.trim();if (S.isEmpty()) {return "";}StringBuilder sb new StringBuilder();String[] tokens S.split(" ");for (int i 0, j 1, length tokens.length; i <…...

[Python] 什么是逻辑回归模型?使用scikit-learn中的LogisticRegression来解决乳腺癌数据集上的二分类问题
什么是线性回归和逻辑回归? 线性回归是一种用于解决回归问题的统计模型。它通过建立自变量(或特征)与因变量之间的线性关系来预测连续数值的输出。线性回归的目标是找到一条直线(或超平面),使得预测值与观…...

那些不输于乙游男主人设的国漫男主
最近乙游的势头越来越猛,新宠旧爱一起上阵,叫人应接不暇。在二次元的世界里,乙游男主们凭借着超凡的魅力,成为了无数少女心中的理想对象。他们或冷酷、或温柔、或阳光、或神秘,每一个角色都有着独特的性格和故事。 乙游…...

Apache Doris 整合 FLINK CDC + Iceberg 构建实时湖仓一体的联邦查询
1概况 本文展示如何使用 Flink CDC Iceberg Doris 构建实时湖仓一体的联邦查询分析,Doris 1.1版本提供了Iceberg的支持,本文主要展示Doris和Iceberg怎么使用,大家按照步骤可以一步步完成。完整体验整个搭建操作的过程。 2系统架构 我们整…...

关于华为应用市场上架,申请权限未告知目的被驳回问题的简单处理方式
关于华为应用市场上架过程中出现的【您的应用在运行时,未同步告知权限申请的使用目的,向用户索取(存储、拍照)等权限,不符合华为应用市场审核标准。】 使用方式: 1、引入 import permision from "/m…...
【ElasticSearch】概述
文章目录 ElasticSearch1.基本介绍2.设计理念3.基本架构与核心概念学习参考资料: ElasticSearch 简单整理ES基本概念,设计理念,构建与使用,供回顾。 1.基本介绍 Elasticsearch 是一个基于 Apache Lucene 的开源的分布式搜索引擎…...
十进制转十六进制 C/C++蓝桥杯基础试题BASIC-10
问题描述 十六进制数是在程序设计时经常要使用到的一种整数的表示方式。它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16个符号,分别表示十进制数的0至15。十六进制的计数方法是满16进1,所以十进制数16在十六进制中是10,而十进制的17在十六进制中是…...

【LVGL环境搭建】
LVGL环境搭建 win模拟器环境搭建一.二.三.四.五. Ubuntu模拟器环境搭建一. 前置准备二. 下载LVGL Source code:三. 安装sdl2:四. 开启VScode执行五. 安装扩展套件六. 按F5执行七. 执行结果 win模拟器环境搭建 一. 二. 三. 四. 五. Ubuntu模拟器环境…...

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式
一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明:假设每台服务器已…...
【杂谈】-递归进化:人工智能的自我改进与监管挑战
递归进化:人工智能的自我改进与监管挑战 文章目录 递归进化:人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管?3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…...

css实现圆环展示百分比,根据值动态展示所占比例
代码如下 <view class""><view class"circle-chart"><view v-if"!!num" class"pie-item" :style"{background: conic-gradient(var(--one-color) 0%,#E9E6F1 ${num}%),}"></view><view v-else …...

基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容
基于 UniApp + WebSocket实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...

使用分级同态加密防御梯度泄漏
抽象 联邦学习 (FL) 支持跨分布式客户端进行协作模型训练,而无需共享原始数据,这使其成为在互联和自动驾驶汽车 (CAV) 等领域保护隐私的机器学习的一种很有前途的方法。然而,最近的研究表明&…...

关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案
问题描述:iview使用table 中type: "index",分页之后 ,索引还是从1开始,试过绑定后台返回数据的id, 这种方法可行,就是后台返回数据的每个页面id都不完全是按照从1开始的升序,因此百度了下,找到了…...
渲染学进阶内容——模型
最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...
[Java恶补day16] 238.除自身以外数组的乘积
给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O(n) 时间复杂度…...
使用Matplotlib创建炫酷的3D散点图:数据可视化的新维度
文章目录 基础实现代码代码解析进阶技巧1. 自定义点的大小和颜色2. 添加图例和样式美化3. 真实数据应用示例实用技巧与注意事项完整示例(带样式)应用场景在数据科学和可视化领域,三维图形能为我们提供更丰富的数据洞察。本文将手把手教你如何使用Python的Matplotlib库创建引…...

SiFli 52把Imagie图片,Font字体资源放在指定位置,编译成指定img.bin和font.bin的问题
分区配置 (ptab.json) img 属性介绍: img 属性指定分区存放的 image 名称,指定的 image 名称必须是当前工程生成的 binary 。 如果 binary 有多个文件,则以 proj_name:binary_name 格式指定文件名, proj_name 为工程 名&…...