参考文章
ffmpeg下载地址:ffmpeg

using System;
using System.Diagnostics;
using System.IO;
using System.Threading;
using UnityEngine;public class Gifs2Mp4s {private static Gifs2Mp4s instance;public static Gifs2Mp4s Instance {get{if (instance == null) {instance = new Gifs2Mp4s();}return instance;}}private string gifsPath;private readonly string gifsDir = "/_ToolDataConfig/ToolTeachGuideConfig/Pics/";/// <summary>/// ffmpeg软件的位置/// </summary>//readonly string ffmpegPath = Application.streamingAssetsPath + "/ffmpeg/ffmpeg.exe";readonly string ffmpegPath = Application.dataPath.Replace("Assets" , "") +"ffmpeg/ffmpeg.exe";ProcessStartInfo info;readonly Thread t;/// <summary>/// gif文件转换成MP4文件/// 全部步骤完成之后杀掉所有的ffmpeg进程(建议手动调用KillFFMPEGProcess)/// </summary>/// <param name="ac">转换成功之后的回调</param>/// /// <param name="dirParh">gif文件夹路径</param>public void Gifs2MP4s(string dirParh = "" , Action ac = null) {string [] itemsPath;if (string.IsNullOrEmpty(dirParh)) {itemsPath = Directory.GetFiles(Application.streamingAssetsPath + gifsDir , "*.gif");}else {itemsPath = Directory.GetFiles(dirParh , "*.gif");}for (int i = 0 ; i < itemsPath.Length ; i++) {string itemPath = itemsPath [i];UnityEngine.Debug.Log($"gifPath:{itemPath}");GetMP4(itemPath);}ac?.Invoke();}private void GetMP4(string path) {if (string.IsNullOrEmpty(path)) return;gifsPath = Path.GetDirectoryName(path);string mp4Path = Path.Combine(gifsPath , Path.GetFileNameWithoutExtension(path) + ".mp4");UnityEngine.Debug.Log($"mp4Path:{mp4Path}");if (File.Exists(mp4Path)) {File.Delete(mp4Path);}info = new ProcessStartInfo(ffmpegPath);info.WindowStyle = ProcessWindowStyle.Hidden;info.CreateNoWindow = true;info.Arguments = $"-f gif -i {path} -pix_fmt yuv420p {mp4Path}";try {Process.Start(info);Thread.Sleep(20);}catch (System.Exception e) {UnityEngine.Debug.Log($"转换失败:{e.ToString()}");}}/// <summary>/// 生成之后手动调用,杀掉后台所有的ffmpeg进程/// </summary>public void KillFFMPEGProcess() {Process [] processes = Process.GetProcessesByName("ffmpeg");UnityEngine.Debug.Log("进程数:" + processes.Length);foreach (var item in processes) {item.Kill();}}
}

ffmpeg将gif转换成mp4相关推荐

  1. 怎么把avi文件转换成mp4视频格式,4个高能方法

    怎么把avi文件转换成mp4视频格式? 当您下载到avi格式的视频文件时,您可能会选择将其转换为MP4格式的文件. avi是一种由微软开发的多媒体容器格式,尽管现在已经被认为是老旧的技术,但由于其简单 ...

  2. flv怎么转换成mp4?这3种方法总有适合你的

    flv怎么转换成mp4?首先我们得知道flv为什么转换成mp4?FLV和MP4都是常用的视频格式,其中FLV格式在以前的一些互联网应用中得到了广泛使用.但随着技术的发展和设备的普及,MP4格式逐渐成为 ...

  3. 如何将b站缓存的m4s视频转换成mp4格式

    阅读前请看一下:我是一个热衷于记录的人,每次写博客会反复研读,尽量不断提升博客质量.文章设置为仅粉丝可见,是因为写博客确实花了不少精力.希望互相进步谢谢!! 文章目录 阅读前请看一下:我是一个热衷于记 ...

  4. 视频.m4s格式转换成mp4,m4s音频转mp3 blbl视频下载

    在windows下操作,需要借助ffmpeg工具. 在这里下载工具,http://www.121down.com/soft/softview-103719.html#downaddress 下载后解压 ...

  5. swf怎么转换成mp4格式,5个方法都很简单

    swf怎么转换成mp4格式?各位小伙伴们有没有遇到过想要打开swf文件却需要安装flash插件的情况呢?其实,swf文件是flash软件或者animate软件导出的flash软件的专属格式,主要应用于 ...

  6. 怎么把video文件改成mp4_如何把视频转换成mp4格式?

    要想把视频转换成mp4格式,这就看你原视频是什么格式了.这里推荐一个视频格式转换类型比较齐全的一款. 烁光视频转换器烁光视频转换器​www.ivideotools.com 专业视频格式转换器,支持视频 ...

  7. kux格式怎么转换成mp4?简单快速的视频转换技巧分享

    现在生活压力越来越大,过完一天忙碌的工作回到家里开始煲剧是很多人的最爱.说到看视频,资源基本都被「三巨头」--腾讯视频.爱奇艺.优酷所覆盖,而有些朋友喜欢将视频下载下来看.可是却发现,下载的视频格式是 ...

  8. vep文件如何转换mp4_如何将DVD的vob视频格式转换成mp4格式

    首先简述一下,VOB是DVD Video OBject的缩写,vob文件用来保存所有MPEG-2格式的音频和视频数据,这些数据不仅包含影片本身,而且还有供菜单和按钮用的画面以及多种字幕的子画面流.如何 ...

  9. b站电脑客户端_如何将B站的flv格式的视频转换成mp4格式

    经常看到B站有精彩的视频片段,于是想把这些视频下载保存到电脑,但是发现没有下载按钮,是不是很悲催.有些时候想从优酷.土豆网这些视频网站下载视频,结果却提示要先下载视频客户端才能继续下载视频,运气差的话 ...

最新文章

  1. 【按住你的心】——Android开发运行属于自己的Hello,World!
  2. C++ 十字链表图转java版
  3. 一、Vmware安装Centos7虚拟机
  4. 中的挂起是什么意思_书房装饰挂什么画好 书法字画给你想要的诗意生活
  5. 读“NoSQL注入的分析和缓解”之摘录
  6. 如何在Java中转义JSON字符串-Eclipse IDE技巧
  7. c语言串的存储操作完整,c语言中关于串的相关知识以及操作
  8. 自动化测试selenium基础面试技巧?
  9. modelsim安装_XLINUXFPGA开发工具篇modelsim的安装
  10. 贴片电阻功率与尺寸对照表
  11. dell r730服务器开启虚拟化,r730服务器不能开启虚拟化(dell开启cpu虚拟化)
  12. Win32 API 函数列表1(格式有点乱)
  13. 权限控制-Shiro
  14. 「2022 最新版」未认证微信公众号图文中插入外部链接教程
  15. excel数学分析相关知识
  16. Linux 下使用Trickle限制下载/上传带宽
  17. 【project 】软件使用
  18. 编程中「缺省」是什么意思?
  19. vue-router 源码解析(三)-实现路由守卫
  20. 什么是中间件 有什么用

热门文章

  1. WS小世界网络构建实验(Matlab版)
  2. 《设计心理学》学习笔记之设计未来(第四册)
  3. 人工智能到底是什么?AI可以涵盖哪些领域?
  4. 你应该知道的requestIdleCallback
  5. ES6学习笔记2:字符串的repeat()方法
  6. wifi密码本 字典(免费二)
  7. Excel全部或部分字体加粗方法
  8. 海量GIS文章,软件教程,GIs编程奉送!!(转)
  9. 快速幂+矩阵快速幂(总结+例题)
  10. Linux搭建MQTT服务器(Mosquitto)