项目环境Vs2013,开发平台Windows10,使用语言C/C++,相关库Duilib
项目相关概念解释
GIF
- GIF分为静态GIF和动画GIF两种,扩展名为.gif,是一种压缩位图格式,支持透明背景图像,适用于多种操作系统,“体型”很小。其实GIF是将多幅图像保存为一个图像文件,从而形成动画,最常见的就是通过一帧帧的动画串联起来的搞笑gif图,所以归根到底GIF仍然是图片文件格式。
Duilib库
第三方库,应用窗口美化,逻辑操作与界面分离,用XML文档进行界面编辑
- DuiLib库是轻量级的C++界面开发库。duilib并没有像MFC那样把所有的东西全包装了,它仅仅包装了UI部分而已,其他的还是需要用win32、MFC的知识,所以除了UI部分,其他的都和duilib没有关系。它仅仅是让逻辑操作与界面分离了。
Duilib库优点:
- 基于GDI在窗口上自绘,无其他依赖,未使用特殊或危险的系统调用,能够很好的解决传统MFC界面的一系列问题。
- 使用XML来描述界面风格,界面布局,将界面和逻辑分离,同时易于实现各种超炫的界面效果如换色,换肤,透明等。
- 完全兼容ActiveX控件(如常见的IE控件和Flash),也可以和MFC等界面库配合使用。
- 可广泛用于互联网客户端、工具软件客户端、管理系统客户端、多媒体客户端(如KTV、触摸屏)、车载电脑系统、gps系统和手机客户端软件等。
MFC
- 微软基础类库,是微软公司提供的一个类库,以C++类的形式封装了Windows API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量。其中包含大量Windows句柄封装类和很多Windows的内建控件和组件的封装类。
XML
- 可扩展标记语言,标准通用标记语言的子集,简称XML。是一种用于标记电子文件使其具有结构性的标记语言。
FFmpeg
- FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。
字幕
- 字幕是指电影、电视,以及戏剧、歌剧等舞台作品中出现的各种用途的文字。
- 硬字幕 将字幕覆盖叠加在视频画面上。
- 软字幕 通过某种方式将外挂字幕与视频打包在一起,下载、复制时只需要复制一个文件即可。
SSA/ASS文件
- 文本格式字幕文件
详见:https://blog.csdn.net/winglyx/article/details/6791719
操作过程
<基础了解部分>↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓.
1.Win32应用程序
- 一个Win32应用程序可以分为程序代码和UI资源两大部分,两部分最终是以rc整合成一个完整的exe可执行程序。
- 所谓UI资源,指的是功能菜单、对话框外貌、程序图标、光标形状等东西。
Win32应用程序流程
1.注册窗口类
2.创建窗口
3.显示窗口&更新窗口
4.消息队列
- 注册窗口类:RegisterClass
窗口创建前,对窗口的属性进行一些设置,主要是窗口的外貌以及行为,比如:窗口的边框、颜色、位置、标题、颜色、小等就是窗口的外貌,窗口接受到消息后如何响应,就是为该窗口绑定窗口处理函数,窗口在创建前,必须使用RegisterClass函数告诉系统。- 创建窗口:CreateWindow
按照设置的窗口大小、窗口风格、窗口标题、窗口位置等将窗口创建成功。注意:CreateWindow- 显示窗口和更新窗口
将窗口在界面中展示出来- 消息循环
Windows程序的运行是依靠外部的事件来驱动。换句话说,程序不断等待,等待任何可能的输入,然后做出判断,再做适当的处理。
<界面部分>↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓.
2.Duilib库的配置与学习
这个博主总结得很详细有很大的帮助:https://www.cnblogs.com/Alberl/p/3342030.html
3.界面的制作
duilib主打的界面制作方式是XML + UI引擎 +win32框架
很方便的使用了Duilib库,直接链接XML文档,对XML文档进行编辑,XML文本标记语言使用起来很方便,但是有更方便的工具编辑XML,DuiDesigner直接编辑图形界面从而修改XML文档。
<按钮与功能部分>↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓.
4.控件的生成与优化
总结了几篇博客:https://blog.csdn.net/qq_42069216/article/category/9215809
5.使用cmd给ffmpeg发送命令
如下:https://blog.csdn.net/qq_42069216/article/details/99304667
6.字幕的编辑
先要对字幕进行提取,软字幕很好提取,但是硬字幕就需要使用工具进行提取了,使用exrXp进行ass文件的提取,之后修改再烧录进视频就可以了。