.net视频截图功能,没测试

/// <summary>

/// @从视频文件截图,生成在视频文件所在文件夹

/// 在Web.Config 中需要两个前置配置项:

/// 1.ffmpeg.exe文件的路径

/// <add key="ffmpeg" value="E:\ffmpeg\ffmpeg.exe" />

/// 2.截图的尺寸大小

/// <add key="CatchFlvImgSize" value="240x180" />

/// 3.视频处理程序ffmpeg.exe

/// </summary>

/// <param name="vFileName">视频文件地址,如:/Web/FlvFile/User1/00001.Flv</param>

/// <returns>成功:返回图片虚拟地址; 失败:返回空字符串</returns>

public string CatchImg(string vFileName)

{

//取得ffmpeg.exe的路径,路径配置在Web.Config中,如:<add key="ffmpeg" value="E:\ffmpeg\ffmpeg.exe" />

string ffmpeg=System.Configuration.ConfigurationSettings.AppSettings["ffmpeg"];

if ( (!System.IO.File.Exists(ffmpeg)) || (!System.IO.File.Exists(vFileName)) )

{

return "";

}

//获得图片相对路径/最后存储到数据库的路径,如:/Web/FlvFile/User1/00001.jpg

string flv_img = System.IO.Path.ChangeExtension(vFileName,".jpg") ;

//图片绝对路径,如:D:\Video\Web\FlvFile\User1\0001.jpg

string flv_img_p = HttpContext.Current.Server.MapPath(flv_img);

//截图的尺寸大小,配置在Web.Config中,如:<add key="CatchFlvImgSize" value="240x180" />

string FlvImgSize=System.Configuration.ConfigurationSettings.AppSettings["CatchFlvImgSize"];

System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo(ffmpeg);

startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;

//此处组合成ffmpeg.exe文件需要的参数即可,此处命令在ffmpeg 0.4.9调试通过

startInfo.Arguments = " -i " vFileName " -y -f image2 -t 0.001 -s " FlvImgSize " " flv_img_p ;

try

{

System.Diagnostics.Process.Start(startInfo);

}

catch

{

return "";

}

///注意:图片截取成功后,数据由内存缓存写到磁盘需要时间较长,大概在3,4秒甚至更长;

///这儿需要延时后再检测,我服务器延时8秒,即如果超过8秒图片仍不存在,认为截图失败;

///此处略去延时代码.如有那位知道如何捕捉ffmpeg.exe截图失败消息,请告知,先谢过!

if ( System.IO.File.Exists(flv_img_p))

{

return flv_img;

}//51aspx

return "";

}

时间: 2024-11-12 17:33:27

.net视频截图功能,没测试的相关文章

HTML5 CSS3 诱人的实例 :模仿优酷视频截图功能

一般的视频网站对于用户上传的视频,在用户上传完成后,可以对播放的视频进行截图,然后作为视频的展示图.项目中也可以引入这样的功能给用户一种不错的体验,而不是让用户额外上传一张展示图. 效果图: 看起来还是很不错,下面我给大家分析下,极其核心代码很简单: _canvas = document.createElement("canvas"); _ctx = _canvas.getContext("2d"); _ctx.fillStyle = '#ffffff'; _ctx

canvas与html5实现视频截图功能

这段时间一直在研究canvas,突发奇想想做一个可以截屏视频的功能,然后把图片拉去做表情包,哈哈哈哈哈哈~~ 制作方法: 1.在页面中加载视频 在使用canvas制作这个截图功能时,首先必须保证页面上已经加载完成了这个视频,这样才能够方便的对其操作.如果使用下面直接嵌入<video>标签的方式: 1 2 3 4 5 <video loop controls id="testmp4" width="500" height="400"

【Discuz插件】视频专题 2.2.6 支持手机版、门户和一键视频采集功能,搭建在线视频网站

视频专题 2.2.6 Discuz视频插件是我个人用过的最好用的Discuz插件,在所有的做视频网址的Discuz插件当中,视频专题 2.2.6 Discuz视频插件是最人性化,最简单易用,最稳定的一个插件.不信的话,你尽管去找各种各样的视频插件,你用过之后,再来对比,保证你感叹事实如此!我找过用过的discuz视频插件,也不少了,简单好用的就是这个视频专题 2.2.6了!因此,做discuz的大神们,绝对不要错过这样一个好插件!!!! 真心感受,罗列一下: 就是优酷土豆这种视频播放网站的界面,

java 视频播放 弹幕技术 视频弹幕 视频截图 springmvc mybatis SSM

A代码编辑器,在线模版编辑,仿开发工具编辑器,pdf在线预览,文件转换编码B 集成代码生成器 [正反双向](单表.主表.明细表.树形表,快速开发利器)+快速表单构建器 freemaker模版技术 ,0个代码不用写,生成完整的一个模块,带页面.建表sql脚本,处理类,service等完整模块C 集成阿里巴巴数据库连接池druid??数据库连接池??阿里巴巴的 druid.Druid在监控.可扩展性.稳定性和性能方面都有明显的优势D 集成安全权限框架shiro??Shiro 是一个用 Java 语言

.NET读取视频信息、视频截图

在.NET中处理视频是一件痛苦的事情,.NET并没有提供视频处理的类.于是咱们只能找一些第三方的类库或者自己实现,在项目时间比较赶的情况下,自己实现是不可能的了,而且说不定会留下很多坑.所以一般情况下,咱们都是找一些靠谱的第三方类库,毕竟别人确实实现得蛮好的. 这次的项目是一个资讯发布APP,其中一个模块功能有些类似微信朋友圈,发布内容需要支持图片.音频.视频等.其他的都很好处理,但视频的处理着实让我费了一番劲儿,之前也没有接触过视频处理的项目,甚至对视频处理的了解也挺少的.于是我Google了

安卓开发_实现截图功能

4-17号在360云盘提供了 群雄兵法APP的下载,将其作为测试版,在短短10天内便下载量超过1000,虽说不是很高,但是也证明我一个月的努力是值得的. 这两天游戏更新了,我也将推出最新的版本,在原来的测试版本的基础上,修改了一些内容的错误,优化了部分界面,添加了武将生平介绍,武将成长值等资料. 因为广大的用户提出装备模拟之后无法保存的问题,我在自己所学的基础上进行的解决,但是无奈没有解决成功,于是乎先用截图功能来实现装备模拟后的属性保存吧. 网上百度了很多,大部分相当复杂,对于我这个水平来说,

Android 跳转系统选择本地视频的功能

今天在项目开发的过程中产品要求添加选择本地视频的功能,于是就翻阅和查找各种资料,进行功能的开发,但是在开发过程中发现,各种不同的品牌的手机跳转至系统选择本地视频的功能结果不太一样,所以我就对一些主流的品牌进行了测试,现做如下总结: 1.选择本地视频的功能 Button click event: Intent intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Video.Media.EXTERNAL_CONTEN

Unity3D截图功能总结,并保存在指定的文件夹

快过新年了,一直在加班赶项目,没时间写博客,今天上班最后一天,就休息过年了,将我强几天在做一个截图功能分享出来,网上查了很多,但是都是在Unity Editor下好使,能截图,并显示出来,但是,在Android下,截图成功,并能显示出来,但是就是存不到手机相册中,找了很多原因不知道怎么回事,查阅各种资料最终解决了.我总结了一下,我用过的方法,希望大家 能够用的上. 第一种方法: 使用Application类下的CaptureScreenshot方法.但是我觉得这并不好用,不随意.不能针对某一个相

【独立开发者er Cocos2d-x实战 006】使用Cocos2dx 实现截图功能

今天台风"灿鸿"来袭,博主默默在家码代码.废话不多说,今天我们要讲的就是截图. Cocos2dx把不同版本实现截图方式不同,我用的是Cocos2dx3.4版本.如果你的版本是Cocos2dx3.2以后的,都是可以用这个方式的,如果是Cocos2dx3.2以前,请参考: 比较Cocos2d-x v2.x与v3.x的截图功能 Cocos2d-x3.1及3.2实现截屏功能 cocos2dx之保存截屏图片 开门见山,直接上代码: const std::string strPath = &quo