用Qt做一个读取视频文件并显示出来的工具

2025-02-04 13:29:47
推荐回答(4个)
回答(1):

看看这个

QtAV 1.5.0 发布,更新内容如下:•
加入QtAVWidgets模块。和QtMultimeida一样,QtAV模块只包含核心的功能,只依赖QtCore和QtGui。这样部署QtQuick应用可以去掉QtWidgets模块,大概小6M。QtAV模块还是可以进行视频显示的,要用Qt5的QWindow。QtAVWidgets模块中包含了几种显示视频的widget,还有实时预览的widget。使用该模块前要在pro文件中加入QT +=avwidgets

改进音频输出接口。修复音量增大噪音问题。

提高音轨切换速度

修复wmv播放卡顿和噪音问题。这个问题存在很久很久了,最近才发现是个很低级的错误

预览更加精确

修复seek可能导致的花屏

减少ffmpeg读出来的数据的拷贝

修复QML中的几个崩溃问题

QML加入基于FBO的视频显示元素,完全重用QtAV模块的opengl渲染代码。默认已使用,要在qml文件中加入import QtAV 1.5

简化OSX的部署,无需自行编译QtAV。只要下载我发布的player安装包,安装到”应用程序”,然后运行 /Applications/player.app/sdk_osx.sh ~/Qt5.4.0/5.4/clang_64/lib 就行

windows的安装包支持HEVC硬解

大量其他改进和bug修复

播放器例子:C++和QML的两个播放器都支持进度条上实时预览了

源码: https://github.com/wang-bin/QtAV
安装包下载:https://sourceforge.net/projects/qtav/files/release/1.5.0

回答(2):

用Qt的话还是用QFile读取文件吧,功能比较强大,配套的QString或者IO
Stream的功能同样强大,处理起来会很方便

问题是你描述的太简单了,就是去Qt assistant看看QFile怎么用就可以了

回答(3):

视频软件不是那么好做的,要嵌入好多格式,怎么读取 ,方法很重要。

回答(4):

cv::VideoCapture capture(fileName);改为如下就可以了
cv::VideoCapture capture(fileName.toStdString());