【问题标题】:How do I get a Video Thumbnail in .Net?如何在 .Net 中获取视频缩略图?
【发布时间】:2010-09-14 09:28:29
【问题描述】:

我正在寻求实现一个从输入视频中检索单个帧的函数,因此我可以将其用作缩略图。

按照这些思路应该可以工作:

// 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 中执行此操作吗?

正确的解决方案将是此功能的“最佳”实现。 避免选择空白帧的奖励积分。

【问题讨论】:

标签: c# .net video-processing


【解决方案1】:
【解决方案2】:

我最终推出了自己的独立类(使用我描述的单一方法),来源可以是viewed hereMedia browser is GPL 但我很高兴我为该文件编写的代码成为公共领域。请记住,它使用来自directshow.net 项目的互操作,因此您必须使用它们清除该部分代码。

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

【讨论】:

  • 嗨 - 这真的很有用,谢谢,但是我遇到了一些问题,没有任何实际错误。对于 WMV 文件(不受支持),我从 IMediaDet.get_OutputStreams() 调用中获得输出流 - 但 IMediaDet.WriteBitmapBits() 然后什么也不做。但是对于 AVI 文件,IMediaDet.get_OutputStreams() 调用不返回任何内容,因此该方法只是返回而不做任何事情。我已经排除了基本文件 I/O 问题和权限等(同一个应用程序上传视频,并且如上所述还获取某些格式的输出流)。您可能有的任何指示/建议都会很棒!
  • 我个人现在会看ffdshow,ms直接显示界面太不稳定了
  • @SamSaffron 对 2015 年做这件事有什么建议吗?我在 nuget 上找不到 MediaBrowser 库,因此无法测试您的 Gist。
【解决方案3】:

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

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();

【讨论】:

  • 在cmd中使用更方便:ffmpeg.exe -i "File name.mp4" -ss 00:00:02 -vframes 1 -f image2 -vcodec mjpeg frame.jpg
  • 这个答案太棒了。 ffmpeg 具有适用于每个平台的二进制文件,并且支持世界上几乎所有的编解码器。其他答案取决于平台,并且编解码器支持有限。感谢艾哈迈德。
【解决方案4】:

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

【讨论】:

    【解决方案5】:

    这个项目将为 AVI 解决问题:http://www.codeproject.com/KB/audio-video/avifilewrapper.aspx

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

    【讨论】:

      猜你喜欢
      • 2011-05-12
      • 1970-01-01
      • 2010-11-19
      • 2012-03-28
      • 2018-11-29
      • 2013-06-05
      • 2011-10-19
      • 2018-03-25
      • 2020-05-16
      相关资源
      最近更新 更多