我正在寻找一个从输入视频中检索单个帧的函数,所以我可以将它用作缩略图。
这些方面应该有效:
// 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)
{
}
有谁知道如何在.Net 3.0中执行此操作?
正确的解决方案将是此功能的“最佳”实现。 避免选择空白帧的奖励点。
答案 0 :(得分:10)
我最后滚动了自己的独立课程(使用我描述的单一方法),来源可以是viewed here。 Media browser is GPL,但我很高兴我为该文件编写的代码是Public Domain。请记住,它使用directshow.net项目中的互操作,因此您必须使用它们清除该部分代码。
此类不适用于DVR-MS文件,您需要为这些文件注入直接显示过滤器。
答案 1 :(得分:7)
这个项目将为AVI提供诀窍:http://www.codeproject.com/KB/audio-video/avifilewrapper.aspx
任何其他格式,您可以查看directshow。有一些项目可能有所帮助:
http://sourceforge.net/projects/directshownet/
http://code.google.com/p/slimdx/
答案 2 :(得分:4)
1-从http://ffmpeg.arrozcru.org/builds/
获取最新版本的ffmpeg.exe2-解压缩文件并将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();
答案 3 :(得分:0)
www.mitov.com的某些图书馆可能有所帮助。它是Directshow功能的通用包装器,我认为其中一个演示程序展示了如何从视频文件中获取帧。
答案 4 :(得分:0)