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

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

前文&#xff1a; 因为之前听说过&#xff0c;QMediaPlayer已经集成了gstreamer&#xff0c;但是并没有什么接口来例子来说明&#xff0c;根本看不出来有任何gstreamer的形式&#xff0c;于是在QT5助手里面搜了一下&#xff0c;发现确实有gstreamer的痕迹&#xff0c;但是例子写…...

Ubuntu22扩大分区

一台Ubuntu一直以为扩展成功了的&#xff0c;但是用起来空间不够&#xff0c;才发现空间还是那么小&#xff0c;所以赶快想办法扩展。 首先尝试使用gparted软件&#xff0c;结果在软件里面发现硬盘分区/dev/sda3已经全分配78G了。 但是看df -H&#xff0c;明明没有扩展: /dev…...

数据结构篇-05:哈希表解决字母异位词分组

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

添加了gateway之后远程调用失败

前端提示500&#xff0c;后端提示[400 ] during [GET] to [http://userservice/user/1] 原因是这个&#xff0c;因为在请求地址写了两个参数&#xff0c;实际上只传了一个参数 解决方案&#xff1a;加上(required false)并重启所有相关服务...

C#,哥伦布数(Golomb Number)的算法与源代码

1 哥伦布数&#xff08;Golomb Number&#xff09; 哥伦布数&#xff08;Golomb Number&#xff09;是一个自然数的非减量序列&#xff0c;使得n在序列中正好出现G&#xff08;n&#xff09;次。前几个15的G&#xff08;n&#xff09;值为&#xff1a;1 2 2 3 3 4 4 4 5 5 5 6…...

JVM学习

1.Java虚拟机内部有哪些线程共享&#xff0c;那些线程隔离 程序计数器&#xff1a; 通过改变这个计数器的值来选取下一条需要执行的字节码命令 Java虚拟机栈&#xff1a; 栈&#xff0c;每个方法被执行时&#xff0c;Java虚拟机都会同步的创建一个栈帧用于存储局部变量表&…...

Visual Studio 20XX中utf-8中文在控制台显示乱码

文章目录 在 Visual Studio 20xx中&#xff0c;如果源码文件是 UTF8编码&#xff0c;要打印中文到控制台时&#xff0c;控制台会显示乱码&#xff0c;可以进行以下设置。 包含<Windows.h>头文件。在main函数初始调用SetConsoleOutputCP(CP_UTF8)设置控制台输出字符集为UT…...

拥抱个人成长与社会进步:自我认知与开放心态的相互影响

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

【PostgreSQL内核学习(二十五) —— (DBMS存储空间管理)】

DBMS存储空间管理 概述块&#xff08;或页面&#xff09;PageHeaderData 结构体HeapTupleHeaderData 结构 表空间表空间的作用&#xff1a;表空间和数据库关系表空间执行案例 补充 —— 模式&#xff08;Schema&#xff09; 声明&#xff1a;本文的部分内容参考了他人的文章。在…...

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. 前言 随着大数据和实时处理需求的增长&#xff0c;Kafka作为一种分布式流处理平台&#xff0c;与Spring Boot的集成变得尤为重要。本文将详细探讨如何在Spring Boot应用程序中设置和使用Kafka&#xff0c;从基础概念到高级特性&#xff0c;通过实际代码示例帮助读者深入理解…...

解决:java -jar 在cmd中运行 程序卡顿,卡死的 问题。BIO和NIO案例保存

解决 怎么解决&#xff0c;就是 日志别输出到 cmd 就行了。就行了。就行了。 java -jar demo.jar > output.log 2>&1 &最近写东西&#xff0c;遇到了 程序偶尔卡死的情况。是java -jar 启动的。具体卡死为&#xff1a;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来解决乳腺癌数据集上的二分类问题

什么是线性回归和逻辑回归&#xff1f; 线性回归是一种用于解决回归问题的统计模型。它通过建立自变量&#xff08;或特征&#xff09;与因变量之间的线性关系来预测连续数值的输出。线性回归的目标是找到一条直线&#xff08;或超平面&#xff09;&#xff0c;使得预测值与观…...

那些不输于乙游男主人设的国漫男主

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

Apache Doris 整合 FLINK CDC + Iceberg 构建实时湖仓一体的联邦查询

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

关于华为应用市场上架,申请权限未告知目的被驳回问题的简单处理方式

关于华为应用市场上架过程中出现的【您的应用在运行时&#xff0c;未同步告知权限申请的使用目的&#xff0c;向用户索取&#xff08;存储、拍照&#xff09;等权限&#xff0c;不符合华为应用市场审核标准。】 使用方式&#xff1a; 1、引入 import permision from "/m…...

【ElasticSearch】概述

文章目录 ElasticSearch1.基本介绍2.设计理念3.基本架构与核心概念学习参考资料&#xff1a; ElasticSearch 简单整理ES基本概念&#xff0c;设计理念&#xff0c;构建与使用&#xff0c;供回顾。 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个符号&#xff0c;分别表示十进制数的0至15。十六进制的计数方法是满16进1&#xff0c;所以十进制数16在十六进制中是10&#xff0c;而十进制的17在十六进制中是…...

【LVGL环境搭建】

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

eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)

说明&#xff1a; 想象一下&#xff0c;你正在用eNSP搭建一个虚拟的网络世界&#xff0c;里面有虚拟的路由器、交换机、电脑&#xff08;PC&#xff09;等等。这些设备都在你的电脑里面“运行”&#xff0c;它们之间可以互相通信&#xff0c;就像一个封闭的小王国。 但是&#…...

日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻

在如今就业市场竞争日益激烈的背景下&#xff0c;越来越多的求职者将目光投向了日本及中日双语岗位。但是&#xff0c;一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧&#xff1f;面对生疏的日语交流环境&#xff0c;即便提前恶补了…...

循环冗余码校验CRC码 算法步骤+详细实例计算

通信过程&#xff1a;&#xff08;白话解释&#xff09; 我们将原始待发送的消息称为 M M M&#xff0c;依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)&#xff08;意思就是 G &#xff08; x ) G&#xff08;x) G&#xff08;x) 是已知的&#xff09;&#xff0…...

Docker 运行 Kafka 带 SASL 认证教程

Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明&#xff1a;server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...

JVM垃圾回收机制全解析

Java虚拟机&#xff08;JVM&#xff09;中的垃圾收集器&#xff08;Garbage Collector&#xff0c;简称GC&#xff09;是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象&#xff0c;从而释放内存空间&#xff0c;避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...

多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验

一、多模态商品数据接口的技术架构 &#xff08;一&#xff09;多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如&#xff0c;当用户上传一张“蓝色连衣裙”的图片时&#xff0c;接口可自动提取图像中的颜色&#xff08;RGB值&…...

【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)

可以使用Sqliteviz这个网站免费编写sql语句&#xff0c;它能够让用户直接在浏览器内练习SQL的语法&#xff0c;不需要安装任何软件。 链接如下&#xff1a; sqliteviz 注意&#xff1a; 在转写SQL语法时&#xff0c;关键字之间有一个特定的顺序&#xff0c;这个顺序会影响到…...

WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)

一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解&#xff0c;适合用作学习或写简历项目背景说明。 &#x1f9e0; 一、概念简介&#xff1a;Solidity 合约开发 Solidity 是一种专门为 以太坊&#xff08;Ethereum&#xff09;平台编写智能合约的高级编…...

【JVM】Java虚拟机(二)——垃圾回收

目录 一、如何判断对象可以回收 &#xff08;一&#xff09;引用计数法 &#xff08;二&#xff09;可达性分析算法 二、垃圾回收算法 &#xff08;一&#xff09;标记清除 &#xff08;二&#xff09;标记整理 &#xff08;三&#xff09;复制 &#xff08;四&#xff…...

R 语言科研绘图第 55 期 --- 网络图-聚类

在发表科研论文的过程中&#xff0c;科研绘图是必不可少的&#xff0c;一张好看的图形会是文章很大的加分项。 为了便于使用&#xff0c;本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中&#xff0c;获取方式&#xff1a; R 语言科研绘图模板 --- sciRplothttps://mp.…...