.NET:如何从Flash创建缩略图

6
有没有办法在ASP.NET中从Flash电影文件(flv/swf)[而不是视频文件]创建缩略图图像?有实现的样例吗?
7个回答

4

你可以使用ffmpeg来创建flash视频的缩略图。


1
能否在中等信任的共享托管环境中运行程序? - ak3nat0n
1
我不确定,但你可以尝试这个软件:http://www.bytescout.com/swftoimage_swf_to_jpg.html。我自己没有尝试过,但它看起来足够简单。 - Russ Bradberry
@Shyju,所以这个回答(被采纳了)和Chris的区别在于他从“Riva”获取了他的ffmpeg?http://rivavx.com/?encoder 如果是这样的话,也许Russ可以改变他的答案并提到它作为一个“包含ffmpeg和flv编解码器的好捆绑包,你可以轻松地在ASP.NET中使用”之类的东西。 ;) - cregox

2

对于.flv文件,您可以使用ffmpeg将视频的某些部分(例如一个帧)转换为图像(序列)。

我通常通过调用Process.Start()来使用它作为命令行应用程序,但至少有一种.NET包装器(我自己没有测试过):http://www.codeplex.com/ffmpegdotnet

对于.swf文件,我不知道是否有任何方法可以在没有Adobe工具的情况下实现此目的。


1
我搜索了很多,似乎在dot net中没有可用的包装类。 - Shyju

1

对于flv,可以很容易地完成,就像其他人提到的那样...

对于swf,它高度依赖于swf...如果swf的视觉外观是由代码确定的,那么除了在应用程序中嵌入flash播放器并让flash播放器制作快照、将它们编码为JPEG/PNG并使用TCP或LocalConnection发送它们(一种flash<->flash通信连接,也可以与C#一起使用),或者尝试以某种方式抓取其输出缓冲区之外,没有其他方法...第一种可能性应该不超过10-20行actionscript代码...不知道后者...

除此之外,您可以使用外部命令行转换器...网络上有一些浮动...

问候

back2dos


1

看看这个文章,它应该会指引你正确的方向。它使用SharpFFmpeg从各种格式的电影剪辑中提取缩略图。


0

获取图像的唯一方法是使用完整的Flash客户端,开始播放并允许您捕获第一帧。

我会仔细看看flirt(他们实际上有一个渲染PNG的示例)。 也许其他一些Flash库可能会有所帮助(swfdec gnash swift tools gplflash

Gnash可能是最好的选择,因为它是目前最成熟的项目,但我不知道将其集成到命令行工具或自己的项目中有多容易。


0
我们公司一直在研究这个问题,我们很快就得到了一个概念验证(但是我们为此制作的项目现在已经搁置了)。我不能分享代码,但我可以给你一些指针。
它不是纯粹的ASP.NET,但也许你仍然可以使用它。我们制作了一个Windows服务,可以从ASP.NET调用。
基本上,你需要在服务器上安装Flash插件,然后Windows服务可以通过swf ActiveX组件简单地打开swf,然后你就可以抓取整个内容的图片。它运行得非常好,注意你不必实际在屏幕上渲染ActiveX组件来捕获图片。

0

看看this的帖子。它并没有告诉你所有的东西,但我猜它提供了所需的基础工作。你可能需要弄清楚如何从网页中下载的flash-html中获取对象标签。之后,你需要弄清楚何时捕获帧。这是一个漫长的过程。你不需要asp.net部分。只需专注于Windows项目部分。希望这有所帮助。:)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接