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模拟器环境…...
ChatGLM3-6B-128K实战案例:Ollama中构建政府政策文件智能解读与条款匹配
ChatGLM3-6B-128K实战案例:Ollama中构建政府政策文件智能解读与条款匹配 1. 项目背景与需求场景 在日常工作中,我们经常需要处理大量的政策文件、法规条文和规范性文档。这些文件往往篇幅冗长、条款复杂,人工阅读和理解需要耗费大量时间和精…...
Phi-4-mini-reasoning实操手册:对接企业微信机器人实现每日逻辑题自动推送
Phi-4-mini-reasoning实操手册:对接企业微信机器人实现每日逻辑题自动推送 1. 项目背景与价值 企业微信机器人是许多团队日常工作中常用的自动化工具,能够帮助团队提升工作效率。而Phi-4-mini-reasoning作为一款专注于推理任务的文本生成模型ÿ…...
注意!2026临沂可靠销售增长咨询公司排行
在竞争激烈的商业环境中,销售增长是企业生存与发展的关键。对于临沂的商贸和生产型企业来说,选择一家可靠的销售增长咨询公司至关重要。今天,我们就来深入了解一下2026年临沂可靠的销售增长咨询公司排行情况,其中山东润行管理咨询…...
Cosmos-Reason1-7B效果展示:对‘为什么这个递归会栈溢出’提问,输出调用深度热力图分析
Cosmos-Reason1-7B效果展示:对为什么这个递归会栈溢出提问,输出调用深度热力图分析 提示:本文所有展示效果均基于真实测试,Cosmos-Reason1-7B模型能够深入分析递归函数的调用过程,并通过热力图直观展示栈溢出原因 1. 工…...
Typora笔记完美发布CSDN:图片自动上传+排版优化保姆级教程
Typora 图像上传 完整操作说明 发现问题 当我们使用Typora这款强大的Markdown编辑器记录笔记时,经常会遇到一个让人困扰的问题:在将笔记上传到CSDN博客或者其他网站上后,图片无法正确显示。这不仅会大大降低我们的效率,还可能给…...
PyTorch 笔记学习(15) : aot_autograd.py 解析
本文是 聚焦 torch/_functorch/aot_autograd.py 这一 1863 行的关键文件。它是 torch.compile 编译栈中承上启下的核心枢纽——向上承接 TorchDynamo 捕获的 FX 图,向下将前向/反向图交付给 Inductor 代码生成后端。理解这个文件,就掌握了 PyTorch 2.0 编…...
LFM2.5-1.2B-Thinking-GGUF效果展示:32K上下文下跨段落信息关联与归纳能力实测
LFM2.5-1.2B-Thinking-GGUF效果展示:32K上下文下跨段落信息关联与归纳能力实测 1. 模型核心能力展示 1.1 32K上下文处理实测 LFM2.5-1.2B-Thinking-GGUF最突出的能力是其32K超长上下文处理能力。在实际测试中,我们输入了一篇约2万字的技术文档&#x…...
Debian系统安装与配置全攻略:从下载到优化
1. 为什么选择Debian系统 第一次接触Linux系统时,面对众多发行版的选择确实容易让人眼花缭乱。经过多年使用,我发现Debian特别适合作为长期稳定的工作环境。它不仅被广泛应用于服务器领域,也是许多热门发行版(如Ubuntu、Kali Lin…...
避坑指南:ROS2与NVIDIA Isaac Sim联调机械臂,我踩过的那些“坑”
ROS2与NVIDIA Isaac Sim联调机械臂:开发者避坑实战手册 当机械臂在虚拟环境中突然抽搐起舞,当关节角度指令像被黑洞吞噬般消失无踪——这些场景对尝试将ROS2与NVIDIA Isaac Sim联调的开发者来说并不陌生。作为经历过数十次配置崩溃的老兵,我将…...
2026年4月OpenClaw(Clawdbot)如何集成?华为云新手攻略:搭建及大模型API、Skill配置指南
2026年4月OpenClaw(Clawdbot)如何集成?华为云新手攻略:搭建及大模型API、Skill配置指南。OpenClaw(Clawdbot)是2026年主流的AI自动化助理平台,能借助阿里云轻量服务器达成724小时稳定运转&#…...
