2012-09-22 117 views
1

我想从视频文件的缩略图和我的代码成功运行,但是缩略图没有保存在这里是我的代码..获取缩略图在ASP.NET

protected void Convert(string fileIn, string fileOut, string thumbOut) 
    { 
     try 
     { 
      System.Diagnostics.Process ffmpeg; 

      string video; 
      string thumb; 

      video = Server.MapPath("~/Content/UploadVedio/YouTube.FLV"); 
      thumb = Server.MapPath("~/Content/UploadImage/frame.jpg"); 

      ffmpeg = new System.Diagnostics.Process(); 

      ffmpeg.StartInfo.Arguments = " -i " + video + " -ss 00:00:07 -vframes 1 -f image2 -vcodec mjpeg " + thumb; 
      ffmpeg.StartInfo.FileName = Server.MapPath("~/Content/EXE/ffmpeg.exe"); 
      ffmpeg.Start(); 
      ffmpeg.WaitForExit(); 
      ffmpeg.Close(); 
     } 
     catch (Exception ex) 
     { 
      Response.Write("Error: " + ex.Message); 
     } 
    } 

回答

0

您的代码在IIS中运行,请确保您有正确的写入正确的文件夹

+0

如何检查谁会运行ffmpeg.exe先生?如果我们在IIS服务器上运行它? – toha

0

检查事项:

  1. 是目录包含空格(S)?如果是,请添加:

    video =“\”“+ video +”\“”; thumb =“\”“+ thumb +”\“”;

  2. ffmpeg.exe路径是否正确?如果您想为ffmpeg设置环境变量,请转至here,以便您不需要在ffmpeg.exe路径中找到运行ffmpeg的路径。

  3. 即你的论点:-ss 00:00:07。视频长度是否超过7秒?

  4. 将ffmpeg.exe复制到C盘(如果您没有为ffmpeg设置路径)并尝试直接在cmd中运行,并在此处发布如果发生任何错误,那么输出是什么?即:

    C:\ ffmpeg.exe -i “C:\ video.mp4” -ss 00:00:07 -vframes 1 -f IMAGE2 -vcodec MJPEG “C:\ result.jpg”