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格式的更多相关文章

  1. 腾讯qlv视频转为MP4格式工具

    本文解决上一篇<优酷爱奇艺视频转换为MP4格式工具>留下的腾讯视频qlv转MP4格式问题,教程都是一步步亲手操作的,每一步都有配图.希望各位老板多转发分享,谢谢! 解压软件.(建议关闭所有 ...

  2. 使用PhotoShop将视频转为gif格式

    由于文档中不方便上传视频,尤其是一些短视频,将其制作成gif格式更便于浏览,刚好PhotoShop中有这种功能,笔者在这里分享一下. 在PS中打开需要转换格式的视频文件,选择文件选项导出中的导出为We ...

  3. 在java中使用ffmpeg将amr格式的语音转为mp3格式

    ffmpeg是一个非常强大的音视频处理工具,官网是:http://ffmpeg.org/. 由于ffmpeg在windows上和linux系统上的执行文件不一样(Windows上不需要安装ffmpeg ...

  4. Java将视频转为缩略图--ffmpeg

    Java生成视频缩略图 对于上传视频生成缩略图使用的是ffmpeg进行生成的. 自己在网上找了如何进行编译ffmpeg的方法 但是感觉太复杂了 就到csdn上找到了编译好的ffmpeg文件 体会到ff ...

  5. 树莓派环境下使用python将h264格式的视频转为mp4

    个人博客 地址:https://www.wenhaofan.com/a/20190430144809 下载安装MP4Box 命令行下执行以下指令安装MP4Box   sudo apt-get inst ...

  6. 视频专家之路【二】:ffmpeg工具的使用

    本文是听了雷宵骅大神的课之后的总结,部分内容借用了其PPT的内容,如有侵权请告知删除. 雷宵骅大神的博客为:https://blog.csdn.net/leixiaohua1020 要学习汽修,那么首 ...

  7. (转载)[FFmpeg]使用ffmpeg从各种视频文件中直接截取视频图片

    你曾想过从一个视频文件中提取图片吗?在Linux下就可以,在这个教程中我将使用ffmpeg来从视频中获取图片. 什么是ffmpeg?What is ffmpeg? ffmpeg是一个非常有用的命令行程 ...

  8. 关于FFmpeg工具的使用总结

    FFmpeg官网:http://ffmpeg.org/ 安装ffmpeg: http://www.cnblogs.com/freeweb/p/6897907.html 主要参数: -i 设定输入流 - ...

  9. FFmpeg工具使用总结

    . 一. FFmpeg是什么? 简单说,FFmpeg就是一个很好的,免费的,开源的视频转换工具.详细说,FFmpeg是一个开源免费跨平台的视频和音频流方案,属于自由软件,采用LGPL或GPL许可证(依 ...

随机推荐

  1. Kivy 中文教程 实例入门 简易画板 (Simple Paint App):3. 随机颜色及清除按钮

    1. 随机颜色 通过前面的教程,咪博士已经带大家实现了画板的绘图功能.但是,现在画板只能画出黄色的图案,还十分单调,接下来咪博士就教大家,如何使用随机颜色,让画板变得五彩斑斓. 改进后的代码如下: f ...

  2. jquery Ajax noConflict()

    如果幾個框架都在使用$作為標識符,那麼這個時候可以使用noConflict()處理衝突. 可以直接使用jquery代替簡寫,也可以定義變量,也可以將$賦值給ready函數,函數內部可以使用快捷方式,不 ...

  3. Flatpak 1.1.0发布:可终止运行Flatpak实例

    读 Flatpak的Alex Larsson发布了流行的Linux应用程序沙盒和分发框架的新版本,该框架有望成为跨Linux操作系统的应用程序分发的未来. Flatpak 1.1.0现已作为开始推出F ...

  4. 国产首款5G手机抢先亮相:如此给力的说!

    5G网络是接下来移动互联网发展的主旋律,各家都在努力跟进,目前最积极的当属手机厂商,而2019年我们就能看到多款5G手机降临了. 在11月27日的未来信息通信技术国际研讨会上,vivo展示了他们正在研 ...

  5. BZOJ1895Pku3580 supermemo——非旋转treap

    题目描述 给出一个初始序列fA1;A2;:::Ang,要求你编写程序支持如下操作: 1. ADDxyD:给子序列fAx:::Ayg的每个元素都加上D.例如对f1,2, 3,4,5g执行"AD ...

  6. 调用 Webapi 跨域

    先讲一下,web和client各自调用webapi的post和get实例 Get方式 [HttpGet] public dynamic Test(string a) { return a+" ...

  7. hdu 4348 To the moon (主席树 区间更新)

    链接: http://acm.hdu.edu.cn/showproblem.php?pid=4348 题意: 4种操作: C l r c   区间[l,r]加c,时间+1 Q l r    询问当前时 ...

  8. [hgoi#2019/3/3]赛后总结

    T1--最长公共前缀(lcp) 定义两个字符串S,T 的最长公共前缀lcp(S,T)为最长的字符串R,满足R 既是S 的前缀又是T 的前缀. 给定一个字符串S,下标从1 开始,每次询问给出四个正整数a ...

  9. SP1805 HISTOGRA (单调栈)

    单调栈维护栈顶为高度最大的 记下来栈中每个元素入栈时顶掉的最靠左的一个位置(如果没顶掉就是它本身),那么在它出栈的时候,它所带来的面积就是(出栈位置-记录位置)*高度 (可能会有加一减一之类的细节) ...

  10. luogu1970 花匠(dp)

    设f1[i]表示以1..i中某个合法序列的长度,而且最后一位是较大的 f2[i]表示以1..i中某个合法序列的长度,而且最后一位是较小的 那么就有$f1[i]=max\{f2[j]+1\},(j< ...