【问题标题】:Make MediaElement support more video codecs使 MediaElement 支持更多的视频编解码器
【发布时间】:2017-03-25 04:15:08
【问题描述】:

有没有办法让MediaElement 支持更多的视频编解码器,如mkvflvmov 等?如果没有,是否有其他控件支持更多的视频编解码器?

【问题讨论】:

  • 使用 WinRT 可以添加自定义解码器(在运行时添加自定义 MFT)
  • @Don'tForgettoUpvote,你能告诉我你是如何解决这个问题的吗?

标签: c# .net vb.net windows-runtime mediaelement


【解决方案1】:

你见过Player Framework吗? 它是支持 Windows 8 的开源组件,是 Microsoft 媒体平台的一部分,由 Microsoft 开发。 它是标准 MediaElement 控件的替代品,并提供插件机制。 不过,我不确定您是否可以通过这种机制支持额外的编解码器。

除此之外,您还可以扩展媒体平台(尽管扩展必须用 C++ 编写),如 Microsoft 提供的这些示例所示:

第二个示例非常有趣,因为它是一个示例媒体扩展,添加了 Silverlight 中的 MediaStreamSource 机制。 多亏了这个扩展,您可以在 C#/VB.NET 中实现自己的 MediaStreamSource,为 MediaElement 提供内容。

【讨论】:

    【解决方案2】:

    这似乎是不可能的,因为 WinRT 具有完全不同的 API 集,并且所有现有的基于 win32 的编解码器都无法运行,除非编解码器所有者重写它们。一种很长的方法是将 win32 代码移植到 winrt 中,这需要对两者都有深入的了解,而且似乎太长了。即使您能以某种方式找到使现有编解码器工作的方法,它也无法在基于 arm 的 Windows 8 平板电脑上工作。

    这意味着,除了 Microsoft 提供的 winrt 之外,没有其他编解码器。

    您的选择是将它们转换为 h.264 视频,这已成为 h.264 在所有设备上播放的标准。苹果在标准化视频方面做得很好。从 Win 7 开始,微软提供了对 h.264 的内置支持。

    【讨论】:

      【解决方案3】:

      MediaElement 播放 Windows 媒体播放器可以播放的任何内容。 因此,如果您在 PC 上安装了正确的编解码器集,它可以成为一个非常通用的媒体播放器。

      我个人已经安装了K-Lite codecs

      还有Media_player_codec_pack codecs

      现在我的 Windows Media Player 在播放 mp4 文件时不再滞后。只需按照安装程序的建议并在开始安装过程之前重新启动您的 PC。另外...它试图通过对话框来欺骗您安装辅助软件,所以请注意!!

      安装后,只需记住在应用程序的视频设置中试验“首选加速”参数,看看根据您的硬件哪个更好。我已将其设置为 - CUVID。

      我也安装了这个set of codecs to support avi format

      希望这会有所帮助:)

      【讨论】:

        猜你喜欢
        • 2011-04-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-01-03
        • 1970-01-01
        • 1970-01-01
        • 2017-06-07
        • 2018-10-15
        相关资源
        最近更新 更多