ffmpeg将gif转换成mp4
参考文章
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相关推荐
- 怎么把avi文件转换成mp4视频格式,4个高能方法
怎么把avi文件转换成mp4视频格式? 当您下载到avi格式的视频文件时,您可能会选择将其转换为MP4格式的文件. avi是一种由微软开发的多媒体容器格式,尽管现在已经被认为是老旧的技术,但由于其简单 ...
- flv怎么转换成mp4?这3种方法总有适合你的
flv怎么转换成mp4?首先我们得知道flv为什么转换成mp4?FLV和MP4都是常用的视频格式,其中FLV格式在以前的一些互联网应用中得到了广泛使用.但随着技术的发展和设备的普及,MP4格式逐渐成为 ...
- 如何将b站缓存的m4s视频转换成mp4格式
阅读前请看一下:我是一个热衷于记录的人,每次写博客会反复研读,尽量不断提升博客质量.文章设置为仅粉丝可见,是因为写博客确实花了不少精力.希望互相进步谢谢!! 文章目录 阅读前请看一下:我是一个热衷于记 ...
- 视频.m4s格式转换成mp4,m4s音频转mp3 blbl视频下载
在windows下操作,需要借助ffmpeg工具. 在这里下载工具,http://www.121down.com/soft/softview-103719.html#downaddress 下载后解压 ...
- swf怎么转换成mp4格式,5个方法都很简单
swf怎么转换成mp4格式?各位小伙伴们有没有遇到过想要打开swf文件却需要安装flash插件的情况呢?其实,swf文件是flash软件或者animate软件导出的flash软件的专属格式,主要应用于 ...
- 怎么把video文件改成mp4_如何把视频转换成mp4格式?
要想把视频转换成mp4格式,这就看你原视频是什么格式了.这里推荐一个视频格式转换类型比较齐全的一款. 烁光视频转换器烁光视频转换器www.ivideotools.com 专业视频格式转换器,支持视频 ...
- kux格式怎么转换成mp4?简单快速的视频转换技巧分享
现在生活压力越来越大,过完一天忙碌的工作回到家里开始煲剧是很多人的最爱.说到看视频,资源基本都被「三巨头」--腾讯视频.爱奇艺.优酷所覆盖,而有些朋友喜欢将视频下载下来看.可是却发现,下载的视频格式是 ...
- vep文件如何转换mp4_如何将DVD的vob视频格式转换成mp4格式
首先简述一下,VOB是DVD Video OBject的缩写,vob文件用来保存所有MPEG-2格式的音频和视频数据,这些数据不仅包含影片本身,而且还有供菜单和按钮用的画面以及多种字幕的子画面流.如何 ...
- b站电脑客户端_如何将B站的flv格式的视频转换成mp4格式
经常看到B站有精彩的视频片段,于是想把这些视频下载保存到电脑,但是发现没有下载按钮,是不是很悲催.有些时候想从优酷.土豆网这些视频网站下载视频,结果却提示要先下载视频客户端才能继续下载视频,运气差的话 ...
最新文章
- 【按住你的心】——Android开发运行属于自己的Hello,World!
- C++ 十字链表图转java版
- 一、Vmware安装Centos7虚拟机
- 中的挂起是什么意思_书房装饰挂什么画好 书法字画给你想要的诗意生活
- 读“NoSQL注入的分析和缓解”之摘录
- 如何在Java中转义JSON字符串-Eclipse IDE技巧
- c语言串的存储操作完整,c语言中关于串的相关知识以及操作
- 自动化测试selenium基础面试技巧?
- modelsim安装_XLINUXFPGA开发工具篇modelsim的安装
- 贴片电阻功率与尺寸对照表
- dell r730服务器开启虚拟化,r730服务器不能开启虚拟化(dell开启cpu虚拟化)
- Win32 API 函数列表1(格式有点乱)
- 权限控制-Shiro
- 「2022 最新版」未认证微信公众号图文中插入外部链接教程
- excel数学分析相关知识
- Linux 下使用Trickle限制下载/上传带宽
- 【project 】软件使用
- 编程中「缺省」是什么意思?
- vue-router 源码解析(三)-实现路由守卫
- 什么是中间件 有什么用