我想移植一个具有以下功能的我的ActiveX(到Silverlight):
当前的ActiveX使用DirectShow - 遗憾的是,它不能在Silverlight中使用。我如何放弃旧的ActiveX技术用于新的Silverlight技术?
答案 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中。