1.ffmpeg简介
FFmpeg即是一块音视频编解码工具,同时也是一组音视频编解码开发套件,为开发者提供了丰富的音视频
处理调用接口。FFmpeg中的"FF"指的是"Fast Forward",mpeg则是动态图像专家组。 它提供了录制、转换
以及流化音视频的完整解决方案。 它包含了非常先进的音频/视频编解码库 libavcodec, 为了保证高可移植
性和编解码质量, libavcodec 里很多 codec 都是从头开发的
2.实现原理
实现原理:在程序中通过cmd控制台调用ffmpeg.exe工具,并给该工具发送对应的命令,完成所需操作,发
命令时,cmd窗口隐藏在后台。
本项目有两种生成gif动态图方式:
1)使用图片生成
2) 使用短视频生成

3.项目实现
1)界面
本项目界面部分主要是依靠duilib界面库,通过 Duilib UI Designr 和 xml 修改设计。

2.使用cmd给ffmpeg发送命令
采用SHELLEXECUTEINFO结构体

     //1.初始换结构体SHELLEXECUTEINFO strSEInfo;memset(&strSEInfo, 0, sizeof(SHELLEXECUTEINFO));strSEInfo.cbSize = sizeof(SHELLEXECUTEINFO);strSEInfo.fMask = SEE_MASK_NOCLOSEPROCESS;strSEInfo.lpFile = _T("C:\\Windows\\System32\\cmd.exe");strSEInfo.lpParameters = strCMD;strSEInfo.nShow = SW_SHOW;//SW_HIDE//2.给cmd发送命令 ShellExecuteEx(&strSEInfo);WaitForSingleObject(strSEInfo.hProcess, INFINITE);

3.按钮事件响应
1) 加载按钮
主要依靠OPENFILENAME结构体以及GetOpenFileName函数,具体操作如下:

  • 定义OPENFILENAME结构体变量ofn,并对其进行初始化
  • 将ofn的地址作为参数调用GetOpenFileName函数,弹出打开文件对话框
  • 在弹出的对话框中找到文件位置
  • 从ofn的lpstrFile参数中提取文件位置
  • 对获取的路径进行检测后,将其显式在编辑框中。
     OPENFILENAME ofn;TCHAR FileName[MAX_PATH];memset(&ofn, 0, sizeof(OPENFILENAME));memset(FileName, 0, sizeof(char)*MAX_PATH);ofn.lStructSize = sizeof(OPENFILENAME);ofn.lpstrFilter = _T("视频\0*.mp4;*.rmvb;*.flv;*.avi;*.wmv;\0");ofn.lpstrFile = FileName;ofn.nMaxFile = MAX_PATH;ofn.Flags = OFN_FILEMUSTEXIST;if (GetOpenFileName(&ofn))//FileName得到用户所选择文件的路径 {CEditUI* pPathEdit = (CEditUI*)m_PaintManager.FindControl(_T("EDIT_PATH"));pPathEdit->SetText(FileName);}

2)生成gif
a. 使用图片生成gif

ffmpeg -r 1 -i .\\Pictrue\\%d.jpg picoutput.gif

b. 使用视频生成gif

  ffmpeg -r 50 -i output.avi viewoutput.gif

3)截取按钮
给ffmpeg发送截取视频命令,截取出所需视频:

ffmpeg -ss 00:00:15 -to 00:00:05 -i input.mp4 -vcodec copy -acodec copy output.mp4

4) 烧录ASS按钮
将修改后的ASS文件烧录到对应的视频中。

ffmpeg -i 1.avi -vf ass=2.ass 3.avi

5)字幕提取
因为ffmpeg的字幕提取命令出错无法解决,因此借助外部软件提取视频字幕,本项目使用的是 esrXP 软件。

基于ffmpeg的斗图工具相关推荐

  1. GitHub 上有个沙雕开发者,做了款斗图工具后火了...

    点击上方"AI遇见机器学习",选择"星标"公众号 原创干货,第一时间送达 作者 |  Rocky0429 来源 |  Python空间 大家好,我是 Rocky ...

  2. 基于ffmpeg的GIF制作工具

    ffmpeg简介 FFmpeg即是一块音视频编解码工具,同时也是一组音视频编解码开发套件,为开发者提供了丰富的音视频处理调用接口.FFmpeg中的"FF"指的是"Fast ...

  3. win10运行python没有硬编码器_实测Win10下加载github上的Python版本斗图神器

    今天看到这篇文章GitHub 上有个沙雕开发者,做了款斗图工具后火了...​mp.weixin.qq.com 觉得有点意思,实际上这个已经有段时间了,更早的在CSDN-专业IT技术社区-登录​blog ...

  4. 听说你斗图总是输,我从GitHub连夜扒拉出来这个神仙项目送给你

    本文所有内容均属GitHub用户zhaoolee 我只是帮忙把README.md搬了过来 同志们,一起快乐起来~~ 本项目VI由方圆STU创始人老罗巴扎嘿独立设计 本项目Github永久开源地址: h ...

  5. 最简单的基于FFmpeg的libswscale的示例附件:测试图片生成工具

    ===================================================== 最简单的基于FFmpeg的libswscale的示例系列文章列表: 最简单的基于FFmpeg ...

  6. Android基于云信实现微信斗图

    总体概览 最近项目出现了一个新的需求,需要实现类似微信的表情的斗图功能.由于我们是一家基于互联网+装修的公司,为了给业主创造一个好的印象和营造开工.完工的美好气象,这个需求我们还是默默的接了下来,虽然 ...

  7. 基于网络的思维导图工具的八个独特优点

    概述:新兴的基于网络的思维导图工具比起传统的桌面软件有着太多的优点,以下是笔者总结的八个独特优点. 如果你正在寻找一种低成本的用于商业的思维导图工具,那么那些基于网络的思维导图软件会是一个不错的选择. ...

  8. 免费压缩GIF制作工具【ezgif】——非常适合大家压缩动图,斗图,制作微信表情包,写文章,写段子等专用

    生活是需要乐趣的,比如动态图片,不过我们浏览一些论坛和贴吧和APP,看网友评论的时候,会看到很多流行的段子的动图和搞笑图.笑一笑是好事情,不过,一张幽默搞笑的动图是靠花太多时间浏览新闻和搞笑帖子,和体 ...

  9. 基于echarts定制修改的k线图工具

    基于echarts定制修改的k线图工具 注:百度echarts拷贝下来的k线图框架,根据需求自己修改制作的k线图工具 前端代码: <!DOCTYPE html> <html lang ...

最新文章

  1. 比Keras更好用的机器学习“模型包”:无需预处理,0代码上手做模型
  2. 删除排序链表中的重复元素
  3. 《系统集成项目管理工程师》必背100个知识点-52成功的项目团队特点
  4. python flask 基础入门
  5. NumPy快速入门--复制/视图/深拷贝
  6. fifo页面置换算法设计思路_千万级并发!如何设计一个多级缓存系统?
  7. npm介绍及与Node.js关联
  8. 【博客项目】—密码加密( 六)
  9. 外媒:iPhone 8售价太高 中国消费者热情程度不高
  10. LVM以及挂载一块新硬盘
  11. python画三维图-Python+matplotlib绘制三维图形5个精选案例
  12. Anaconda3 | Ubuntu(python3.6)环境下安装opencv
  13. 阶段3 1.Mybatis_05.使用Mybatis完成CRUD_8 Mybatis中的返回值深入-调整实体类属性解决增和改方法的报错...
  14. 树莓派安装smbus_树莓派安装wiringPi,BCM2835,以及python的RPI.GPIO
  15. 因子分析模型R语言实现
  16. wordcloud库详解
  17. (二)外显子组数据分析之原始数据sra数据下载
  18. 华为2022硬件工程师招聘全程经验
  19. 分布式架构、大数据、机器学习、搜索、推荐、广告
  20. 2017区块链概念股龙头

热门文章

  1. 李阳疯狂英语(实用英语句子)
  2. 真正中文攻略之狼少女 辛希雅(シンシア)~Sincerely to You
  3. POJ 1217 FOUR QUARTERS 笔记
  4. Linux-Redis 6.2.6安装记录+后台启动+开机自启
  5. 记录一下 C++ 字符串比较 strcmp 的一个坑
  6. SqlServer修改表设计提示The object ‘DF__CompanyTr__Creat__0CDAE408’ is dependent on column ‘Created’
  7. 【报告分享】如何角逐存量车市-易车研究院(附下载)
  8. 降低二手车交易税的方案有望今年出台
  9. Go后台管理系统 | EasyGoAdmin
  10. 池州学院国家二级计算机,池州学院2017年全国计算机二级考试报名步骤