热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

ffmpeg使用心得多张图片处理视频,免安装,快速嵌入到客户端程序事例。

公司突然要求让自动根据图片生成视频,测试了opencvSharp以及ffmpeg,最后发现还是ffmpeg更方便简洁,走了不少弯路代码和思路记下来,方便自己和大家。第一步:去官方下

公司突然要求让自动根据图片生成视频,测试了opencvSharp以及ffmpeg,最后发现还是ffmpeg更方便简洁,走了不少弯路 代码和思路记下来,方便自己和大家。

第一步:去官方下载ffmpeg,把ffmpeg.exe放在指定位置。

第二步 编辑cmd命令执行

 

1 //打开ffmpeg.exe所在目录文件夹
2 string opendic = "cd "+ Application.StartupPath;
3 str.Add(opendic);
4 //第二部启动该exe
5 string startexe = "start ffmpeg.exe";
6 str.Add(startexe);
7 //string str2 = CMDHelper.ExeCommand(str12);
8 string vediopath = localdicpath + "\\" + ExpandMethods.DateTimeToLongTimeStamp(DateTime.Now) + ".mp4";
9 //第三步 执行命令 本条命令就是循环图片所在文件夹,生成10s视频
10 string executecommon = string.Format("ffmpeg -loop 1 -f image2 -i {0} -vcodec libx264 -r 2 -t 10 {1}", localdicpath+"\\image%d.jpg", vediopath);
11 str.Add(executecommon);
12 //开始执行命令
13 string status = CMDHelper.ExeCommand(str.ToArray());

View Code

 

第三步,开始执行cmd命令

 

1 public static string ExeCommand(string[] commandTexts)
2 {
3 Process p = new Process();
4 p.StartInfo.FileName = "cmd.exe";
5 p.StartInfo.UseShellExecute = false;
6 p.StartInfo.RedirectStandardInput = true;
7 p.StartInfo.RedirectStandardOutput = true;
8 p.StartInfo.RedirectStandardError = true;
9 p.StartInfo.CreateNoWindow = true;
10 string strOutput = null;
11 string eOut = null;
12 try
13 {
14
15 p.Start();
16
17 foreach (string item in commandTexts)
18 {
19 p.StandardInput.WriteLine(item);
20 }
21 p.StandardInput.WriteLine("exit");
22 p.StandardInput.Close();
23 p.BeginErrorReadLine();
24 p.ErrorDataReceived += new DataReceivedEventHandler(
25 (sender, e) => { eOut += e.Data; });
26 p.OutputDataReceived += new DataReceivedEventHandler(
27 (sender, e1) => { strOutput += e1.Data; });
28 strOutput = p.StandardOutput.ReadToEnd();
29 strOutput = p.StandardOutput.ReadToEnd();
30 //var output = new List();
31 //while (p.StandardOutput.Peek() > -1)
32 //{
33 // output.Add(p.StandardOutput.ReadLine());
34 //}
35
36 //while (p.StandardError.Peek() > -1)
37 //{
38 // output.Add(p.StandardError.ReadLine());
39 //}
40 p.WaitForExit();
41
42
43 p.Close();
44 if (string.IsNullOrEmpty(strOutput))
45 {
46 strOutput = "ok";
47 }
48
49 }
50 catch (Exception e)
51 {
52 strOutput = e.Message;
53 }
54 return strOutput;
55 }

View Code

 

 好了 到此视频就生成成功了,我感觉这是最方便的视频图片处理方法,我们是客户端程序,省去用户安装,只要大家在学习一些cmd命令就可以方便快速便捷的处理视频。希望对大家有帮助



推荐阅读
  • 本文详细介绍了如何使用 Yii2 的 GridView 组件在列表页面实现数据的直接编辑功能。通过具体的代码示例和步骤,帮助开发者快速掌握这一实用技巧。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 深入理解Tornado模板系统
    本文详细介绍了Tornado框架中模板系统的使用方法。Tornado自带的轻量级、高效且灵活的模板语言位于tornado.template模块,支持嵌入Python代码片段,帮助开发者快速构建动态网页。 ... [详细]
  • 如何高效创建和使用字体图标
    在Web和移动开发中,为什么选择字体图标?主要原因是其卓越的性能,可以显著减少HTTP请求并优化页面加载速度。本文详细介绍了从设计到应用的字体图标制作流程,并提供了专业建议。 ... [详细]
  • 本文探讨了使用C#在SQL Server和Access数据库中批量插入多条数据的性能差异。通过具体代码示例,详细分析了两种数据库的执行效率,并提供了优化建议。 ... [详细]
  • 本文介绍如何使用MFC和ADO技术调用SQL Server中的存储过程,以查询指定小区在特定时间段内的通话统计数据。通过用户界面选择小区ID、开始时间和结束时间,系统将计算并展示小时级的通话量、拥塞率及半速率通话比例。 ... [详细]
  • 本文提供了多种方法来计算给定年份和月份的起始日和结束日,并进一步探讨了如何根据年、月、周获取特定周的起始日和结束日。 ... [详细]
  • Explore a common issue encountered when implementing an OAuth 1.0a API, specifically the inability to encode null objects and how to resolve it. ... [详细]
  • 本文介绍如何使用Objective-C结合dispatch库进行并发编程,以提高素数计数任务的效率。通过对比纯C代码与引入并发机制后的代码,展示dispatch库的强大功能。 ... [详细]
  • 本文介绍如何通过注册表编辑器自定义和优化Windows文件右键菜单,包括删除不需要的菜单项、添加绿色版或非安装版软件以及将特定应用程序(如Sublime Text)添加到右键菜单中。 ... [详细]
  • 2023年京东Android面试真题解析与经验分享
    本文由一位拥有6年Android开发经验的工程师撰写,详细解析了京东面试中常见的技术问题。涵盖引用传递、Handler机制、ListView优化、多线程控制及ANR处理等核心知识点。 ... [详细]
  • 尽管使用TensorFlow和PyTorch等成熟框架可以显著降低实现递归神经网络(RNN)的门槛,但对于初学者来说,理解其底层原理至关重要。本文将引导您使用NumPy从头构建一个用于自然语言处理(NLP)的RNN模型。 ... [详细]
  • MySQL DateTime 类型数据处理及.0 尾数去除方法
    本文介绍如何在 MySQL 中处理 DateTime 类型的数据,并解决获取数据时出现的.0尾数问题。同时,探讨了不同场景下的解决方案,确保数据格式的一致性和准确性。 ... [详细]
  • 本文详细探讨了 Django 的 ORM(对象关系映射)机制,重点介绍了其如何通过 Python 元类技术实现数据库表与 Python 类的映射。此外,文章还分析了 Django 中各种字段类型的继承结构及其与数据库数据类型的对应关系。 ... [详细]
author-avatar
缘zhi韵_297
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有