• Qt/C++音视频开发54-视频监控控件的极致设计


    一、前言

    跌跌撞撞摸爬滚打一步步迭代完善到今天,这个视频监控控件的设计,在现阶段水平上个人认为是做的最棒的(稍微自恋一下),理论上来说应该可以用5年不用推翻重写,推翻重写当然也是程序员爱干的事情,这个就要考验个人的功底,设计的好框架搭建的好,可以很多年不用变,只需要在现有框架小修小补即可,最多就是继承基类实现一些特殊性的功能,设计的不好,可能每个月都要重写,这种不断的迭代也是无法避免的,毕竟需求一直在变化,当现有的框架无法满足老板或者用户的需求的时候,就必须大动干戈的推翻重来了,纵观Qt的发展史,基本上也是这样的,Qt4时代一个大版本,Qt5时代又是一个大版本,到了Qt6又是一个大版本,互相不兼容,而且很多模块的结构都变了,甚至类名都改了,可能是为了表达的更贴切。不过近期Qt的版本彪的着实厉害,这点需要批评一下。

    极致设计功能点:

    • 支持多种解码内核,比如ffmpeg/vlc/mpv/qtav/qmedia/各种厂家sdk等。
    • 参数灵活多变,两大类结构体,一种窗体相关参数WidgetPara,一种视频处理相关参数VideoPara。
    • 同时支持句柄(vlc/mpv/厂家SDK都提供了句柄方式)、绘制(回调拿到视频原始数据通过painter绘制)、GPU(采集到视频数据用opengl绘制yuv/nv12/rgb)三种视频显示模式。
    • 具备常规基础接口,开始播放、暂停播放、继续播放、停止播放、音量大小、静音切换、抓拍图片、开始录像、暂停录像、停止录像。
    • 具备常规信号接口࿰
  • 相关阅读:
    ⑮霍兰德EA*型如何选专业?高考志愿填报选专业
    【精简】Web API--DOM获取元素
    掌握Shell:从新手到编程大师的Linux之旅
    反射【Java】
    Java进阶笔记(面向对象后, 持续更新)
    Java相关面试题9:实现动画效果
    从零实现RPC框架之 7: 基于注解的服务自动注册
    Instruments中常用Template的使用
    【JavaScript】读懂JS中类的相关操作
    4+1视图与UML
  • 原文地址:https://blog.csdn.net/feiyangqingyun/article/details/132938970