如何使用Silverlight进行视频编辑?

时间:2010-01-08 15:32:09

标签: silverlight directshow video-processing

我想移植一个具有以下功能的我的ActiveX(到Silverlight):

  • 在任何视频文件中嵌入徽标图片。
  • 在任何视频文件中嵌入字幕。
  • 裁剪任何视频文件(例如:裁剪10分钟的1分钟视频)。
  • 保存视频文件结果(通过客户端的当前编码器)。

当前的ActiveX使用DirectShow - 遗憾的是,它不能在Silverlight中使用。我如何放弃旧的ActiveX技术用于新的Silverlight技术?

2 个答案:

答案 0 :(得分:2)

简单的答案是:你做不到。

Silverlight针对两种主要类型的应用: -

  • 内容展示,即视频,音频和图片,所有这些都是为了创造有趣且引人入胜的方式与这类内容进行互动。
  • 最近的业务线应用程序,即数据输入和数据显示。再次,为了使这至少比现有技术制作这些应用程序更具视觉刺激性。

视频编辑并不属于这些阵营中的任何一个阵营,也不适合。

我不确定它是否真的可以说ActiveX是旧的,毕竟在Internet Explorer中使用什么技术来托管Silverlight插件?的ActiveX。

答案 1 :(得分:1)

我不知道这是否容易实现。 Silverlight原生可用的各种编解码器都包含在Silverlight MediaElement控件中,据我所知,它们不是通过API直接公开的,例如,你无法获得原始解码的RGBA比特流。 (如果我错了,我很想知道,但我已经开玩笑了,我无法弄清楚如何去做。)Mono源代码树只有{{{ 3}}编解码器,但据我所知,没有任何容易让你解码的内容,例如WMV或AVI文件。

即使您可以以某种方式获取原始的,已解码的RGBA(或YCbCr)比特流,以便能够将您想要的任何数据插入到这些帧中,您仍然需要对视频流进行重新编码,Silverlight不提供任何原生支持。您必须编写自己的编码器(并非完全无关紧要),从ffmpeg库中移植它们(也不是一件容易的事),或者等待别人这样做。

简而言之,我怀疑你现在需要坚持使用你的ActiveX解决方案 - 尽管有一些聪明的JavaScript编码,也许可以将它包装在一个漂亮的Silverlight UI中。