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. 设计模式笔记:策略模式(Strategy)

    1. 策略模式简介 1.1 定义 策略是为达到某一目的而采取的手段或方法,策略模式的本质是目标与手段的分离,手段不同而最终达成的目标一致.客户只关心目标而不在意具体的实现方法,实现方法要根据具体的环境 ...

  2. delphi中怎么获取服务器的时间

    下面是公司的代码,调整成ADO控件,给你参考一下: function GetNetDate: TDateTime; begin with TADOQuery.Create(nil) do begin ...

  3. Lodop打印二维码内容长度不同如何大小相同

    利用Loodop打印控件打印二维码的时候,往往传入的数值是变量,有的只有一个数字,有的却一大堆数字和字母,根据内容长度不同,二维码大小也不同,这样如果批量打印二维码标签,传入的数据是不同的,会造成有的 ...

  4. liunx速查

    文件和目录 Linux 主要目录速查表 /:根目录,一般根目录下只存放目录,在 linux 下有且只有一个根目录,所有的东西都是从这里开始 当在终端里输入 /home,其实是在告诉电脑,先从 /(根目 ...

  5. BZOJ3750[POI2015]Pieczęć——链表

    题目描述 一张n*m的方格纸,有些格子需要印成黑色,剩下的格子需要保留白色. 你有一个a*b的印章,有些格子是凸起(会沾上墨水)的.你需要判断能否用这个印章印出纸上的图案.印的过程中需要满足以下要求: ...

  6. 微信access_token请求之简单缓存方法封装

    还有东西要搞,就直接上代码 function.php <?php // 一个好玩的 curl 类 // https://github.com/metowolf/Meting/blob/maste ...

  7. 自学Aruba5.3.4-Aruba安全认证-有PEFNG 许可证环境的认证配置802.1x

    点击返回:自学Aruba之路 自学Aruba5.3.4-Aruba安全认证-有PEFNG 许可证环境的认证配置802.1x 1. 采用InterDB认证服务器完成802.1X认证 (Aruba650) ...

  8. CDQ分治学习笔记

    数据结构中的一块内容:$CDQ$分治算法. $CDQ$显然是一个人的名字,陈丹琪(NOI2008金牌女选手) 这种离线分治算法被算法界称为"cdq分治" 我们知道,一个动态的问题一 ...

  9. BZOJ2150 部落战争 【带上下界最小流】

    题目链接 BZOJ2150 题解 复习: 带上下界网络流两种写法: 不建\(T->S\)的\(INF\)的边,即不考虑源汇点,先求出此时超级源汇的最大流,即无源汇下最大的自我调整,再加入该边,求 ...

  10. 【原创】py3+requests+json+xlwt,爬取拉勾招聘信息

    在拉勾搜索职位时,通过谷歌F12抓取请求信息 发现请求是一个post请求,参数为: 返回的是json数据 有了上面的基础,我们就可以构造请求了 然后对获取到的响应反序列化,这样就获取到了json格式的 ...