我正在寻找一种在ASP.NET中获取FLV缩略图的简单方法,而无需更改服务器上的任何权限/设置。理想情况下,服务器机器上不安装任何东西,但如果必要,可以使用FFmpeg等小型工具。
我在Process.Start中使用命令行工具尝试过FFmpeg,但在Windows窗体应用程序中使用的命令提示符下的同一命令在ASP.NET中不起作用(可能是因为权限的原因)。
我也尝试过使用TAO.FFmpeg,它似乎大部分时间都能工作,但随机失败,直到机器重新启动才重新开始工作。即使我使用示例代码(decoder.cs),当我尝试在一个请求中打开多个视频时,它有时也会失败。
如果这不可能以一种干净/直接的方式实现,我愿意接受其他建议。
如果您可以在页面上嵌入Flash,显示FLV缩略图的最简单方法是将视频对象放在舞台上,通过actionscript中的NetStream将视频附加到其中,然后放入事件处理程序,在开始播放后立即暂停移动。
例如,如果你在舞台上有一个名为"myVideo"的视频对象,并且你正试图显示"someVideo.flv"的缩略图,请尝试这个actionscript(2.0)代码,
var connection_nc:NetConnection=新的NetConnection();connection_nc.connect(null);var stream_ns:NetStream=新的NetStream(connection_nc);myVideo.attachVideo(stream_ns);stream_ns.play("someVideo.flv");stream_ns.seek(0);stream_ns.onStatus=函数(信息){if(info.code="NetStream.Play.Start"){stream_ns.pause();}}
就你的ASPX与你的Flash对话而言,你可以通过FlashVars将FLV视频名称传递给Flash,这样你的SWF就会知道要显示什么缩略图。
尝试Media Manager Prohttp://www.all4dotnet.com/