我在找到实现的功能检索一个单一的框架,从一个输入视,这样我就可以用它作为一个略图。

东西沿着这些线条应该工作:

// filename examples: "test.avi", "test.dvr-ms"
// position is from 0 to 100 percent (0.0 to 1.0)
// returns a bitmap
byte[] GetVideoThumbnail(string filename, float position)
{
}

任何人都不会知道如何做到这一点。净3.0?

正确的解决办法将以"最佳"实施这一功能。奖分为避免选择的空白的框架。

有帮助吗?

解决方案

我最后滚动了自己的独立课程(使用我描述的单一方法),来源可以在这里查看媒体浏览器是 GPL,但我很高兴我为该文件编写的代码是Public Domain。请记住,它使用 directshow.net 项目中的互操作,因此您必须清除该部分内容。代码与他们。

此类不适用于DVR-MS文件,您需要为这些文件注入直接显示过滤器。

其他提示

该项目将做的伎俩为AVIs: http://www.codeproject.com/KB/audio-video/avifilewrapper.aspx

任何其他格式,您可能会看到directshow.有几个项目,可能会有所帮助:
http://sourceforge.net/projects/directshownet/
http://code.google.com/p/slimdx/

1-从以下网站获取最新版本的ffmpeg.exe: http://ffmpeg.arrozcru.org/builds/

2-解压缩文件并将ffmpeg.exe复制到您的网站

3-使用此代码:

Process ffmpeg;

string video;
string thumb;

video = Server.MapPath("first.avi");
thumb = Server.MapPath("frame.jpg");

ffmpeg = new Process();

ffmpeg.StartInfo.Arguments = " -i "+video+" -ss 00:00:07 -vframes 1 -f image2 -vcodec mjpeg "+thumb;
ffmpeg.StartInfo.FileName = Server.MapPath("ffmpeg.exe");
ffmpeg.Start();

www.mitov.com 上有一些图书馆可能有所帮助。它是Directshow功能的通用包装器,我认为其中一个演示程序展示了如何从视频文件中获取帧。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top