如何使用ffmpeg.exe创建缩略图

时间:2011-07-20 09:51:41

标签: c#-4.0

我正在尝试创建.wmv视频的缩略图。我曾尝试过以下代码:

   Guid id = Guid.NewGuid();
   string thumbpath, thumbname, videopath;
   string thumbargs, inputfile;                        
   thumbpath = "C:\\Users\\Tom\\Desktop\\picture gallery\\";
   thumbname = thumbpath + id.ToString() + ".jpg";
   videopath = "C:\\Users\\Tom\\Desktop\\video gallery\\";
   inputfile = Videopath + id.ToString() + ".wmv";   
   thumbargs = "-i " + inputfile + " -vframes 1 -ss 00:00:07 -s 150x150 -f image2 " +      thumbname;   
   Process thumbproc = new Process();
   thumbproc = new Process();
   thumbproc.StartInfo.FileName = "C:\\Users\\Tom\\Desktop\\ffmpeg\\ffmpeg.exe";
   thumbproc.StartInfo.UseShellExecute = false;
   thumbproc.StartInfo.CreateNoWindow = false;
   thumbproc.StartInfo.RedirectStandardOutput = false;
   try
   {
       thumbproc.Start();
       if (thumbproc != null)
       {
          thumbproc.Close();
       }
   }
   catch (Exception ex)
   {
       lblMessage.Text = ex.Message;
       lblMessage.ForeColor = System.Drawing.Color.Red;
       lblMessage.Visible = true;
   }

我正在访问存储在“视频库”文件夹中的视频。我的解决方案的问题是,当我运行解决方案时,它显示错误“找不到合适的输出格式为ffmpeg'gallery \ 69b77a48-1b3c-4ce7-8c5a-fba10af5d9b1.jpg'”。

但如果我删除缩略图(picturegallery或videogallery)路径中的空格,那么它可以正常工作。

请告诉我我的“thumbargs”或我的代码中遗漏的任何内容都有问题。

2 个答案:

答案 0 :(得分:0)

thumbproc.StartInfo.Arguments = thumbargs;

你忘了初始化论点。

答案 1 :(得分:0)

请遵循:Convert Video to FLV and Create Thumbnails from file using C#

protected void Convert(string fileIn, string fileOut, string thumbOut)
{
try
{
System.Diagnostics.Process proc = new System.Diagnostics.Process();
proc.EnableRaisingEvents = false;
proc.StartInfo.FileName = ffmpegPath;

proc.StartInfo.Arguments = "-i " + fileIn +
" -ar 22050 -ab 32 -f flv -s 320×240 -aspect 4:3 -y " + fileOut.Split('.')[0] +
".flv";
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.CreateNoWindow = false;
proc.StartInfo.RedirectStandardOutput = true;
proc.Start();
proc.WaitForExit();

价: HOW-TO:Create video-preview thumbnails manually

命令行

ffmpeg  -itsoffset -4  -i test.avi -vcodec mjpeg -vframes 1 -an -f rawvideo -s 320x240 test.jpg
  

生成新代码后检查代码Guid id = Guid.NewGuid();   GUID,是与新GUID相关联的任何文件。首先检查该文件   存在与否。