1.需要借助外部插件
2.视频来源
外部插件:(.html)
解压下载文件,并将该bin文件下的dll和exe文件拷贝到项目的文件夹中
使用的时候:调用该路径下的EXE即可
//路径
var ffmpeg = basePath + "Lib\";
/// <summary>/// 从视频画面中截取一帧画面为图片/// </summary>/// <param name="videoName">视频文件路径pic/123.MP4</param>/// <param name="widthAndHeight">图片的尺寸如:240*180</param>/// <param name="cutTimeFrame">开始截取的时间如:"1s"</param>/// <returns>返回图片保存路径</returns>public string GetPicFromVideo(string videoName, string widthAndHeight, string cutTimeFrame,string Eno){var vdoName = videoName.Substring(videoName.LastIndexOf("/") + 1); //视频名称 例:260026077324.mp4var fileName = vdoName.Split('.')[0];//视频名称 例:260026077324var basePath = System.Web.HttpContext.Current.Server.MapPath("~");//获取当前路径 例:F:TT正式天台20171130TTCloudTTCloud.Websitevar ImgPath = basePath + "Upload\Temporary"; //建立新文件夹路径 例F:TT20171130TTCloudTTCloud.WebsiteuploadImages2020-04-20//路径var ffmpeg = basePath + "Lib\"; // 例:F:TT20171130TTCloudTTCloud.Websitevar srcName = basePath + videoName.Replace("/", "\"); //视频路径 例:F:TT20171130TTCloudTTCloud.Website\Upload10000000TTVideo260026077324.mp4if (!Directory.Exists(ImgPath)){Directory.CreateDirectory(ImgPath);} //创建保存封面图片的路径//保存截取图片后路径var objName =ImgPath + "\" + fileName + ".jpg";ProcessStartInfo startInfo = new ProcessStartInfo();startInfo.WindowStyle = ProcessWindowStyle.Hidden;startInfo.Arguments = " -i " + srcName //视频路径+ " -y -f image2 -ss " + cutTimeFrame //设置开始获取帧的视频时间+ " -t 0.001 -s " + widthAndHeight //设置图片的分辨率+ " " + objName; //输出的图片文件名,路径前必须有空格startInfo.UseShellExecute = false;startInfo.CreateNoWindow = true;startInfo.FileName = ffmpeg;startInfo.WindowStyle = ProcessWindowStyle.Hidden;try{Process proc = new Process();proc.StartInfo = startInfo;proc.Start();proc.WaitForExit();//不等待完成就不调用此方法proc.Close();proc.Dispose();return "/Upload/Temporary/" + fileName + ".jpg";}catch (Exception e){LogerHelper.Error(e);return "";}}
待完善
本文发布于:2024-01-30 19:49:02,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170661534322407.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |