电子应用程序可以播放本地支持的任何视频吗?

Can electron apps play any videos supported locally?

我知道浏览器通常将播放器限制为 mp4webm 类型的媒体,但我想知道基于电子的应用程序是否有可能 运行 MKV、AVI等格式的本地视频。我找不到明确的消息来源告诉我什么可用,什么不可用。

Electron 仍然局限于网络技术...

这意味着即使您可以通过节点 API 访问文件系统和诸如此类的东西,内容呈现还是发生在 BrowserWindow 内,它对视频播放的支持与基于 webkit 的浏览器大致相同。 为此,您可以使用 HTML5 视频或 canvas,这几乎就是它的本机功能。 (理论上也支持 Flash,但我认为获得它所需的工作量 运行 不值得......另外,它是 Flash,所以,不。 )

...但这并不完全正确

尽管本机支持到此为止,但您可以采用多种途径来解决这些限制。我将列出一些最常见的:

  • 在后台将您的 MKV/AVI 视频 转换为一种受支持的格式。这样做的缺点是需要整个视频文件出现在您的文件系统中(即不适用于流)。
  • 即时将您的 MKV/AVI 流 转码为受支持的格式。这非常灵活,但对您的环境有一些严格的要求,例如在本地安装 ffmpeg(或类似的东西)。如果您想分发您的应用程序,祝您好运。
  • 嵌入能够 MKV/AVI 播放的播放器。 最常见的示例是通过节点绑定嵌入到 libvlc 的 VLC 播放器。如果您想这样做,请查看 wcjs-playerwcjs-prebuilt 模块,它们是 webchimera.js 视频播放器的节点包装器,它在后台使用 VLC。 (我不隶属于他们,目前只是在我的一个项目中使用这些模块进行了类似的事情,到目前为止取得了成功。

我确定还有其他解决方案,但这些是我在研究该主题时发现的最合乎逻辑的解决方案。希望这对您有所帮助!

如果您像我一样在搜索“.mkv Electron”之类的内容后遇到此主题,请注意当前的最高响应不再准确。

Electron 现在可以原生播放带有 <video> 元素的 .mkv 文件 以及可能包括 .Avi 在内的许多其他格式。不要像我一样尝试进入 webchimera 这个可怕的兔子洞,并试图让它与 electron 一起工作。