C# ffmpeg工具将视频转为SWF格式
1.下载ffmpeg工具
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Diagnostics;
using System.IO; namespace WebThreadTest
{
public partial class ffmpegTest : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//将是视频转为SWF格式
//ffmpeg bin目录
string ffmpegBinPath = @"C:\Users\Administrator\Desktop\ffmpeg\bin\";
//需要转化的视频目录
string convertDirPath = Server.MapPath("/resource/ffmpeg"); //开始转化
AllVideoConvertToSWF(convertDirPath,ffmpegBinPath); }
} /// <summary>
/// 将视频转为SWF格式
/// </summary>
/// <param name="ffmpegBinPath">ffmpeg 工具bin 目录</param>
/// <param name="videoSourceFileName">视频完全路径</param>
/// <param name="targetSwfFileName">转为SWF文件完全路径</param>
/// <returns></returns>
private bool VideoConvertToSWF(string ffmpegBinPath, string videoSourceFileName, string targetSwfFileName)
{ try
{
Process process = new Process(); process.StartInfo.FileName = "cmd.exe";//确定程序名 //"cd C:\Users\Administrator\"
string startCommandContent = @"cd C:\Users\Administrator\"; string sCommand = startCommandContent; process.StartInfo.Arguments = sCommand;//确定程式命令行
process.StartInfo.UseShellExecute = false;//Shell的使用
process.StartInfo.RedirectStandardInput = true;//重定向输入
process.StartInfo.RedirectStandardOutput = true;//重定向输出
process.StartInfo.RedirectStandardError = true;//重定向输出错误
process.StartInfo.CreateNoWindow = true;//设置置不显示示窗口
process.Start();//00
process.StandardInput.WriteLine(sCommand);//也可以用这种方式输入入要行的命令 //"cd C:\Users\Administrator\Desktop\ffmpeg\bin\"
string commandCDFfmpegBin = @"cd {0}"; commandCDFfmpegBin = string.Format(commandCDFfmpegBin, @ffmpegBinPath); process.StandardInput.WriteLine(@commandCDFfmpegBin); //如果码特率太多转化出错
//@"ffmpeg -i C:\Users\Administrator\Desktop\ffmpeg\test.avi -to 00:30 c:\ttt.avi"; //规定一定的码特率
//ffmpeg -i C:\Users\Administrator\Desktop\ffmpeg\test.avi -to 00:30 -ar 22050 -y c:\ccc.avi string commandVideoContent = @"ffmpeg -i {0} -to 00:10 {1}"; commandVideoContent = string.Format(commandVideoContent, @videoSourceFileName, @targetSwfFileName); process.StandardInput.WriteLine(@commandVideoContent); process.StandardInput.WriteLine("exit");//要得加上Exit要不然下一行程式 //string result = process.StandardOutput.ReadToEnd(); //输出出流取得命令行结果 //Response.Write(result); return true; }
catch (Exception ex)
{
Response.Write(@videoSourceFileName + "转为WSF文件失败<br />");
Response.Write(ex.Message + "<br />"); return false; } } /// <summary>
/// 列出指定目录下及所其有子目录及子目录里更深层目录里的文件中的视频文件进行转化
/// </summary>
/// <param name="convertDirPath">需要转化的视频目录路径</param>
/// <param name="ffmpegBinPath">转化工具ffmpeg bin目录路径</param>
public void AllVideoConvertToSWF(string convertDirPath, string ffmpegBinPath)
{
DirectoryInfo dir = new DirectoryInfo(convertDirPath); string exts = ".avi,.mp3,.mp4,.rmvb,.rm,.wmv,.3gp,.amv,.mov"; //找到该目录下的文件
FileInfo[] fi = dir.GetFiles(); foreach (FileInfo f in fi)
{ string extension = Path.GetExtension(f.FullName); int extenIndex = f.FullName.LastIndexOf(extension); string beforeName = f.FullName.Remove(extenIndex); string swfFileName = beforeName + ".swf"; if (System.IO.File.Exists(swfFileName))
{
continue;
} string ext = Path.GetExtension(f.FullName).ToLower(); if (exts.Contains(ext))
{
try
{
bool isSuccess = VideoConvertToSWF(ffmpegBinPath, f.FullName, swfFileName);
Response.Write("完整路径:" + f.FullName.ToString() + " 生成SWF文件路径:" + swfFileName + " 生成状态:" + isSuccess.ToString() + "<br>");
}
catch (Exception ex)
{
Response.Write("完整路径:" + f.FullName.ToString() + " 生成错误:" + ex.Message + "<br>");
} }
} //获取子目录
DirectoryInfo[] subDir = dir.GetDirectories(); foreach (var d in subDir)
{
AllVideoConvertToSWF(d.FullName, ffmpegBinPath);
}
}
}
}
C# ffmpeg工具将视频转为SWF格式的更多相关文章
- 腾讯qlv视频转为MP4格式工具
本文解决上一篇<优酷爱奇艺视频转换为MP4格式工具>留下的腾讯视频qlv转MP4格式问题,教程都是一步步亲手操作的,每一步都有配图.希望各位老板多转发分享,谢谢! 解压软件.(建议关闭所有 ...
- 使用PhotoShop将视频转为gif格式
由于文档中不方便上传视频,尤其是一些短视频,将其制作成gif格式更便于浏览,刚好PhotoShop中有这种功能,笔者在这里分享一下. 在PS中打开需要转换格式的视频文件,选择文件选项导出中的导出为We ...
- 在java中使用ffmpeg将amr格式的语音转为mp3格式
ffmpeg是一个非常强大的音视频处理工具,官网是:http://ffmpeg.org/. 由于ffmpeg在windows上和linux系统上的执行文件不一样(Windows上不需要安装ffmpeg ...
- Java将视频转为缩略图--ffmpeg
Java生成视频缩略图 对于上传视频生成缩略图使用的是ffmpeg进行生成的. 自己在网上找了如何进行编译ffmpeg的方法 但是感觉太复杂了 就到csdn上找到了编译好的ffmpeg文件 体会到ff ...
- 树莓派环境下使用python将h264格式的视频转为mp4
个人博客 地址:https://www.wenhaofan.com/a/20190430144809 下载安装MP4Box 命令行下执行以下指令安装MP4Box sudo apt-get inst ...
- 视频专家之路【二】:ffmpeg工具的使用
本文是听了雷宵骅大神的课之后的总结,部分内容借用了其PPT的内容,如有侵权请告知删除. 雷宵骅大神的博客为:https://blog.csdn.net/leixiaohua1020 要学习汽修,那么首 ...
- (转载)[FFmpeg]使用ffmpeg从各种视频文件中直接截取视频图片
你曾想过从一个视频文件中提取图片吗?在Linux下就可以,在这个教程中我将使用ffmpeg来从视频中获取图片. 什么是ffmpeg?What is ffmpeg? ffmpeg是一个非常有用的命令行程 ...
- 关于FFmpeg工具的使用总结
FFmpeg官网:http://ffmpeg.org/ 安装ffmpeg: http://www.cnblogs.com/freeweb/p/6897907.html 主要参数: -i 设定输入流 - ...
- FFmpeg工具使用总结
. 一. FFmpeg是什么? 简单说,FFmpeg就是一个很好的,免费的,开源的视频转换工具.详细说,FFmpeg是一个开源免费跨平台的视频和音频流方案,属于自由软件,采用LGPL或GPL许可证(依 ...
随机推荐
- jquery stop()、callback、鏈接
stop(stopAll,goToEnd) stop適用於所有的效果,包括顯示隱藏.滑動.淡入淡出和動畫. stopAll默認值為false,清除當前動畫,可以向後執行下一動畫調用,黨改為true,清 ...
- ansible系列7-mysql_user模块
添加mysql的用户和权限.密码 新增mysql用户zhang,设置登录密码zhang,给予权限zabbix.*:ALL ansible dba -m mysql_user -a 'login_hos ...
- BZOJ4517[Scoi2016]美味——主席树
题目描述 一家餐厅有 n 道菜,编号 1...n ,大家对第 i 道菜的评价值为 ai(1≤i≤n).有 m 位顾客,第 i 位顾客的期 望值为 bi,而他的偏好值为 xi .因此,第 i 位顾客认为 ...
- BZOJ4771七彩树——可持久化线段树+set+树链的并+LCA
给定一棵n个点的有根树,编号依次为1到n,其中1号点是根节点.每个节点都被染上了某一种颜色,其中第i个节 点的颜色为c[i].如果c[i]=c[j],那么我们认为点i和点j拥有相同的颜色.定义dept ...
- BZOJ4946 NOI2017蔬菜(贪心+堆)
容易想到一个费用流做法:将每种蔬菜拆成p种,对应p个过期时间,每一种向可以卖的时间连边,第一次卖的奖励算在最晚过期的一种里.对于天数动态加点.不过这样边数太多了,因为第i天能卖的第i-1天一定能卖,可 ...
- 最大获利 HYSBZ - 1497 (最大权闭合图)
最大权闭合图: 有向图,每个点有点权,点权可正可负.对于任意一条有向边i和j,选择了点i就必须选择点j,你需要选择一些点使得得到权值最大. 解决方法: 网络流 对于任意点i,如果i权值为正,s向i连容 ...
- Minimum Cost POJ - 2516 (模板题 spfa最小费用最大流)
题意: 人回家,一步一块钱,有x个人,y个房子,求能回家的最大人数且使之费用最小 解析: 就是....套模板,,,, 建图(⊙﹏⊙)...要仔细观察呐 对于人拆不拆都可以 都能过,,,,这里贴上拆开 ...
- MT【37】二次函数与整系数有关的题
解析: 评:两根式是不错的考虑方向,一方面二次函数两根式之前有相应的经验,另一方面这里$\sqrt{\frac{b^2}{4}-c}$正好和两个根有关系.
- 洛谷 P3299 [SDOI2013]保护出题人 解题报告
P3299 [SDOI2013]保护出题人 题目描述 出题人铭铭认为给SDOI2012出题太可怕了,因为总要被骂,于是他又给SDOI2013出题了. 参加SDOI2012的小朋友们释放出大量的僵尸,企 ...
- php多进程、IPC和事件驱动
http://www.laruence.com/2008/04/21/101.html http://zhidao.baidu.com/link?url=zXm_12CxqGo-xYvOF4oyBJC ...