Qt实战--多画面播放器
本栏目以一个多画面播放器为例,帮助Qter快速上手项目,并给出优雅的可重用的实现源码。
通过此项目你可以学习到Qt+FFmpeg+OpenCV+OpenGL
ithewei
这个作者很懒,什么都没留下…
展开
-
Qt实战--多画面播放器项目
多画面播放器需求分析做一个类似VLC的播放器,能播放本地媒体文件、捕获设备、网络流;界面要求多画面监控网格,可自由切换多画面风格;概要设计使用Qt实现界面;使用OpenCV的VideoCapture获取视频帧;使用OpenGL渲染视频帧;详细设计界面设计截图编码实现编码部分我们放在后面章节分解,先贴出完整的项目github地址,欢迎clone和...原创 2018-06-21 18:00:33 · 14350 阅读 · 68 评论 -
Qt实战--从main开始
Qt作为C/C++框架库,入口函数自然还是main,不像MFC那样隐藏了main,搞得人云里雾里。 我们就从main开始,开启Qt之旅。main函数源码int main(int argc, char *argv[]){ qInstallMessageHandler(myLogHandler); qInfo("-------------------app start...原创 2018-06-21 19:52:19 · 5821 阅读 · 0 评论 -
Qt实战--主窗口布局
QMainWindow构造函数initUIinitMenuCentralWidgetHMultiViewHVideoWidgetQMainWindowMainWindow类我们一般选择直接继承自QMainWindow,因为QMainWindow已经向我们提供了一个常用的应用程序主窗口布局,包括QMenuBar菜单栏、QToolBar工具栏、QStatusB...原创 2018-06-29 12:07:08 · 8284 阅读 · 0 评论 -
Qt实战--自定义播放控件类HVideoWidget
HVideoWidgetinitUIinitConnectupdateUIHVideoTitlebar、HVideoToolbarHVideoWndHGLWidgetHVideoWidgetHVideoWidget用来显示、控制视频,包括打开、关闭媒体、开始、停止、暂停播放等功能public slots: void open(HMedia...原创 2018-07-05 12:35:55 · 5179 阅读 · 2 评论 -
Qt实战--视频引擎接口类HVideoPlayer
HVideoPlayer接口功能定义代码HMediaHFrameHFrameBufHBuf、HRingBufHVideoPlayer接口功能设置媒体源HMedia开始start、停止stop、暂停pause、继续resume视频帧HFrame的push、pop定义代码#ifndef HVIDEOPLAYER_H#define HV...原创 2018-09-03 11:31:38 · 3344 阅读 · 0 评论 -
Qt实战--基于OpenCV的VideoCapture实现视频引擎类
HVideoCapture上一节中我们给出了播放引擎接口类HVideoPlayer,下面我们给出基于OpenCV的VideoCapture类实现的播放引擎实现类HVideoCaptureHVideoCapture首先播放引擎类从媒体源中获取帧,解码,push到缓存区等工作我们放到另外一个线程中做,以免阻塞GUI线程,为此HVideoPlayer多重继承自HVideoP...原创 2018-09-03 12:34:26 · 5027 阅读 · 3 评论 -
Qt实战--基于FFmpeg的视频引擎实现类
FFmpeg搞音视频开发的基本都会接触到FFmpeg这个库,支持几乎所有的音视频编解码格式。相对于上节我们用OpenCV实现的获取视频帧,FFmpeg对底层的控制粒度更细,有利于我们后续开发,精准控制编解码格式,获取码流信息,实现进度调整等;FFmpeg编译或下载教程网上很多,在此就不介绍了。在此主要贴出一张解码流程图:HFFPlayer#include "hffplayer.h"#...原创 2018-09-28 18:44:51 · 4184 阅读 · 9 评论