Qt之基于QMediaPlayer的音视频播放器(支持常见音视频格式)

Qt自带了一个Media Player的例子,如下图所示:


但是运行这个例子机会发现,连最基本的MP4格式视频都播放不了。因为QMediaPlayer是个壳(也可以叫框架),依赖本地解码器,视频这块默认基本上就播放个MP4,甚至连MP4都不能播放,如果要支持其他格式需要下载k-lite或者LAVFilters安装即可(k-lite或者LAVFilters是指windows上的,其他系统上自行搜索,貌似嵌入式linux上依赖GStreamer(sudo apt-get install gstreamer1.0-libav ubuntu-restricted-extras),并未完整验证,报错提示 Your GStreamer installation is missing a plug-in,需要命令安装 sudo apt-get install ubuntu-restricted-extras)。如果需要做功能强劲的播放器,初学者建议用vlc、mpv,终极万能大法用ffmpeg(解码出来的视频可以用QOpenGLWidget走GPU绘制或者转成QImage绘制,音频数据可以用QAudioOutput播放)。

一.安装LAVFilters

LAVFilters—基于ffmpeg的DirectShow分离器和解码器。LAVFilters,是一组基于libavformat和libavcodec库的DirectShow Filters。由于基于ffmpeg项目,它将允许您在DirectShow播放器中播放几乎任何格式。

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

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

相关文章

回归模型中多重共线性问题——逐步回归法、方差膨胀因子(VIF)、因子分析【含代码与解释】

特征之间的多重共线性,是指在回归模型中,自变量之间存在高度的线性相关性,导致回归系数的估计不准确,不稳定,甚至不可信的现象。多重共线性的存在会影响模型的解释能力和预测能力,增加模型的复杂度和不确定…

机器学习---环境准备

一、pySpark环境准备 1、window配置python环境变量 window安装python,配置python环境变量。安装python后,在环境变量path中加入安装的路径,cmd中输入python,检验python是否安装成功。 注意:如果使用的是anaconda安装的python环境…

MySql MVCC 详解

注意以下操作都是以InnoDB引擎为操作基准。 一,前置知识准备 1,MVCC简介 MVCC 是多版本并发控制(Multiversion Concurrency Control)的缩写。它是一种数据库事务管理技术,用于解决并发访问数据库的问题。MVCC 通过创…

Matlab使用基础

基本命令 clear all %清除Workspace中的所有变量 clc %清除Command Window中的所有命令 %和%%是注释基础函数 abs()%取绝对值 char(65)%将ASCII码数值变成字符 num2str(65)%将里面的内容变成字符串 length()%字符串长度,不把/0的长度计算进去 矩阵 A[1 2 3;4 5 …

C语言-指针运算

1 1 2? 给一个指针加1表示要让指针指向下一个变量 int a[10]; int *p a; *(p 1) —>a[1]如果指针不是指向一片连续分配的空间,如数组,则这种运算没有意义 指针运算 这些算术运算可以对指针做:给指针加、减一个整数&…

python循环遍历指定路径下所有文件夹和文件

可以使用Python的内置库os和os.path来遍历文件夹。以下是一个简单的示例,该示例遍历给定目录下的所有文件和文件夹,并打印出文件类型和名称。 import osdef print_files(path):for root, dirs, files in os.walk(path):for file in files:print(os.path…

MinIO使用

MinIO基于Apache License v2.0开源协议的对象存储服务,可以做为云存储的解决方案用来保存海量的图片,视频,文档。由于采用Golang实现,服务端可以工作在Windows,Linux, OS X和FreeBSD上。配置简单,基本是复制可执行程序…

Python 有趣的几个案例

1 有趣的回文数 **题目需求:**对于任何自然数,将它自身和它的倒序数(反转过来)相加,再将得到的和与它的倒序数相加,一直重复,最终总会得到一个回文数。 提示;回文数,如 …

GUI的简单概述和基本使用

GUI的概念 1,到目前为止,我们编写的都是控制输入的程序,操作使用非常不直观,采取一直方式让效果呈现在窗口上。 2,GUI及图形界面指采用图像方式显示的用户界面,与早期计算机的命令行界面相比,…

p标签显示不全并且实现自动换行

之前的代码 发现效果是这样的 ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/5561e9dbe4b64cf49c85fcbac3f2c7c8.png) # 修改 添加word-wrap: break-word;"实现自动换行 ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/59a9b5ef89eb4d0dbeae1cae…

【SpringCloud】通过Redis手动更新Ribbon缓存来解决Eureka微服务架构中服务下线感知的问题

文章目录 前言1.第一次尝试1.1服务被调用方更新1.2压测第一次尝试1.3 问题分析1.4 同步的不是最新列表 2.第二次尝试2.1调用方过滤下线服务2.2压测第二次尝试2.3优化 写到最后 前言 在上文的基础上,通过压测的结果可以看出,使用DiscoveryManager下线服务…

程序员如何开发高级python爬虫?

之前我有写过一篇“高级爬虫和低级爬虫的区别”的文章,我们知道它并非爬虫领域中专用术语。只是根据爬虫的复杂性来断定是否是高级爬虫。以我个人理解:高级爬虫是可能具有更复杂的功能和更高的灵活性的爬虫。下面我们围绕高级爬虫来了解下有趣的事情。 低…

从输入URL到页面加载的全过程

从输入URL到页面加载的全过程 输入URL,并按下回车 浏览器检查浏览器缓存、系统缓存、路由器缓存,如果缓存中有,则直接显示页面,如果没有进行下一步 根据URL通过DNS进行域名解析,获取IP地址 DNS解析过程:是一…

python可视化plotly 图例(legend)设置大全,值得收藏!

文章目录 一、图例(legend)二、update\_layout(legend{}) 相关参数及示例关于Python技术储备一、Python所有方向的学习路线二、Python基础学习视频三、精品Python学习书籍四、Python工具包项目源码合集①Python工具包②Python实战案例③Python小游戏源码五、面试资料六、Python…

多向通信----多人聊天

package 多人聊天; import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.PrintStream; import java.net.ServerSocket; import java.net.Socket; import java.util.ArrayList; publ…

K8s中安装calico一直无法启动成功

问题描述 #k8s版本为v1.20.9查看对应日志 #calico-node-xxx 对应pod名称 kubectl logs calico-node-xxxx -n kube-system #没有错误但是一直启动不起来应该是版本不匹配问题解决方案 删除 calico重新安装对应版本删除podskubectl delete -f calico.yaml删除文件 rm -f calico.…

四步实现企业微信群的裂变增长

在这个流量红利逐渐消失的时代,获取客户变得越来越困难且成本高昂。因此,许多企业和商家开始转向私域流量的开发,以实现客户的持续增长和转化。企业微信作为一种有效的客户管理工具,被广泛用于私域流量的构建和管理。在私域流量的…

传统软件正在颠覆SaaS

曾经,SaaS的口号:“颠覆传统软件”喊得无比响亮。 但传统软件存在了这么多年,必然有其存在的合理性。 而自诩为“互联网公司”的SaaS公司,为了证明自己比传统软件“更先进”,反而犯过不少低级错误。 比如&#xff0…

electron-builder 的基本使用

electron打包说明 打包步骤 step1: 将 index.html 放到 h5 目录中 step2:在h5目录中 执行打包命令 yarn electron-builder打包结果 会生成一个 字里华夏 的目录, 1、cd 到 字里华夏 目录 其中有一个 字里华夏Setup1.2.0.exe文件, 这个是 桌面应用的…

【NLP】如何管理大型语言模型 (LLM)

什么是LLM编排? LLM 编排是管理和控制大型语言模型 (LLM)的过程,以优化其性能和有效性。这包括以下任务: 提示LLM:生成有效的提示,为LLMs提供适当的背景和信息以产生所需的输出。链接LLM: 结合多个LLM的输…