读书人

生成视频缩略图,该怎么处理

发布时间: 2012-12-14 10:33:08 作者: rapoo

生成视频缩略图
网上搜了下,用CatchImg这个方法可以在上传视频时生成缩略图,我这届把ffmpeg.exe还有几个dll放到根目录下,但是没有生成图片,怎么回事呢
public string CatchImg(string vFileName)
{
try
{
string ffmpeg = "ffmpeg.exe";
ffmpeg =HttpContext.Current.Server.MapPath(ffmpeg);
if ((!System.IO.File.Exists(ffmpeg)) || (!System.IO.File.Exists(vFileName)))
{
return "";
}
string flv_img_p = System.IO.Path.ChangeExtension(vFileName, ".jpg");
string FlvImgSize = "140x110";
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo(ffmpeg);
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal;
startInfo.Arguments = " -i " + vFileName + " -y -f image2 -t 0.1 -s " + FlvImgSize + " " + flv_img_p;
try
{
System.Diagnostics.Process.Start(startInfo);
}
catch
{
return "";
}
System.Threading.Thread.Sleep(4000);
if (System.IO.File.Exists(flv_img_p))
{
return flv_img_p.Replace(HttpContext.Current.Server.MapPath("~/"), ""); ;
}


return "";
}
catch
{
return "";
}
}
[最优解释]
改了参数还是不行呐
[其他解释]

  if ((!System.IO.File.Exists(ffmpeg)) 
[其他解释]
(!System.IO.File.Exists(vFileName)))


你这个条件又问题吧, 要把扩展名写上,要不找不到文件。 ffmpeg.exe
[其他解释]
   ffmpeg =HttpContext.Current.Server.MapPath(ffmpeg);


你要检查路径。

最后你要确定序列化的文件地址。
[其他解释]
   if (System.IO.File.Exists(flv_img_p))
{
return flv_img_p.Replace(HttpContext.Current.Server.MapPath("~/"), ""); ;
}


有问题
[其他解释]
路径是没问题的,也没报错就是不生成图片
[其他解释]
startInfo.Arguments = " -i " + vFileName + " -y -f image2 -t 0.1 -s " + FlvImgSize + " " + flv_img_p;我想单独执行这个命令,但不会,调试结果vFileName是视频地址,FlvImgSize是生成图片的大小,flv_img_p是生成图片的地址
[其他解释]
去掉if (System.IO.File.Exists(flv_img_p))
{
return flv_img_p.Replace(HttpContext.Current.Server.MapPath("~/"), ""); ;
}
也不行的
[其他解释]
感觉你传递的参数似乎太少了,这是我的项目中用ffmpeg生成视频缩略图时传递的参数:
string arg =" -itsoffset -"+offset+" -i " + videoPath +" -vcodec mjpeg -vframes 1 -an -y -f rawvideo -s 480x360 " +vrootPath +lpname;


其中 offset 要生成图片的视频的秒数,videopath是视频路径,vrootPath是图片保存根目录,lpname是图片文件名,我生成缩略图大小是固定的,所以将图片分辨率写死为480x360。详细参数信息请参考ffmpeg文档

=======================
http://www.webdiyer.com
[其他解释]
对ffmpeg软件有什么要求吗,我就拷贝这些

读书人网 >asp.net

热点推荐