首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

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

2012-12-14 
生成视频缩略图网上搜了下,用CatchImg这个方法可以在上传视频时生成缩略图,我这届把ffmpeg.exe还有几个dll

生成视频缩略图
网上搜了下,用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软件有什么要求吗,我就拷贝这些

热点排行