/******************************************
* 根据ffmpeg生成视频的缩略图
* ffmpeg的下载地址:http://download.csdn.net/detail/chao88552828/9249353
*****************************************/
/// <summary>
/// 生成视频缩略图
/// </summary>
private void GenThupImage()
{
string ffmpegPath = @"C:\Users\Administrator\Desktop\ffmpeg\ffmpeg\bin\ffmpeg.exe";//为ffmpeg的全路径
string oriVideoPath = @"E:\8_Ent\速度Y激情7_bd.mp4";//为视频的全路径
int frameIndex = 10;//为帧处在的秒数
int thubWidth = 80;//为缩略图的宽度
int thubHeight = 80; //为缩略图的高度
string thubImagePath = @"E:\2\2.jpg";//为生成的缩略图所在的路径
string command = string.Format("\"{0}\" -i \"{1}\" -ss {2} -vframes 1 -r 1 -ac 1 -ab 2 -s {3}*{4} -f image2 \"{5}\"", ffmpegPath, oriVideoPath, frameIndex, thubWidth, thubHeight, thubImagePath);
Execute(command);
}
/// <summary>
/// 调用cmd命令
/// </summary>
/// <param name="str"></param>
private void Execute(string str)
{
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = "cmd.exe";
p.StartInfo.UseShellExecute = false; //是否使用操作系统shell启动
p.StartInfo.RedirectStandardInput = true;//接受来自调用程序的输入信息
p.StartInfo.RedirectStandardOutput = true;//由调用程序获取输出信息
p.StartInfo.RedirectStandardError = true;//重定向标准错误输出
p.StartInfo.CreateNoWindow = true;//不显示程序窗口
p.Start();//启动程序
//向cmd窗口发送输入信息
p.StandardInput.WriteLine(str + "&exit");
p.StandardInput.AutoFlush = true;
//获取cmd窗口的输出信息
string output = p.StandardOutput.ReadToEnd();
p.WaitForExit();//等待程序执行完退出进程
p.Close();
}