4

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

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

当前的 ActiveX 使用 DirectShow - 不幸的是,它不能在 Silverlight 中使用。我怎样才能放弃旧的 ActiveX 技术而使用新的 Silverlight 技术?

4

2 回答 2

2

简单的答案是:你不能。

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

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

视频编辑并不真正属于这两个阵营,也没有得到满足。

我不确定说 ActiveX 是旧的,毕竟在 Internet Explorer 中托管 Silverlight 插件的技术是什么?活动X。

于 2010-01-08T17:19:59.190 回答
1

我不知道这是否会很容易实现。Silverlight 原生可用的各种编解码器都由 Silverlight MediaElement 控件包装,据我所知,它们不是通过 API 直接公开的,例如,您无法获得原始解码的 RGBA 比特流。(如果我在这方面错了,我很想知道,但我已经四处寻找,我不知道该怎么做。) Mono 源代码树具有Dirac编解码器的仅解码实现,但据我所知,没有什么可以让您轻松解码,例如 WMV 或 AVI 文件。

即使你能以某种方式获取原始的、解码的 RGBA(或 YCbCr)比特流,以便能够将你想要的任何数据插入到这些帧中,你仍然必须重新编码视频流,并且 Silverlight不为此提供任何本机支持。您必须编写自己的编码器(一点也不简单),从 ffmpeg 库中移植它们(也不是简单的),或者等待其他人来做。

简而言之,我怀疑您现在将需要坚持使用您的 ActiveX 解决方案——尽管使用一些巧妙的 JavaScript 编码,可能可以将其包装在一个漂亮的 Silverlight UI 中。

于 2010-01-08T17:08:57.450 回答