在Node.js / Electron app中播放本地.avi视频

时间:2017-03-28 14:03:10

标签: node.js html5-video electron

我正在开发的app中的疯狂差距在HTML5视频实现中似乎很少(或没有)支持AVI。所以,我需要一个跨平台的解决方案,并且可以使用我的电子应用程序打包。

  • 视频在本地托管
  • 我不反对动态编码(ffmpeg avi - > mp4并原生使用HTML5?)
  • 由于VLC和Electron的变化,WebChimera似乎正在消亡(开发人员无法跟上)(是否还有其他npm软件包可以做到这一点?)
  • 调用本机VLC实例的包装器可能有效 - 但是如何通过我的包装确保系统上的VLC可用?
  • 我是否应该在单独的窗口中生成本机应用程序(即Linux上的Totem)? (似乎笨重)
  • 最新的videoj-java插件显然有问题(https://github.com/Afterster/videojs-java/issues/2),并且在电子堆栈中添加另一层(java)似乎有点令人讨厌。
  • FFBinaries(https://github.com/vot/ffbinaries-node)看起来很有希望......但奇怪的是FFPlay不适用于Linux(虽然我怀疑我的linux消费者可能已经安装了ffmpeg)。

注意:文件肯定是AVI。我无法改变这一点。

任何提示/指示都非常感谢!

更新

在我的系统上,使用ffmpeg进行转换:

ffmpeg -i infile.AVI -vcodec copy -acodec copy outfile.mp4

根本没有时间(他们是短视频):

real    0m0.138s
user    0m0.100s
sys     0m0.032s

因此,我倾向于使用我的程序打包ffmpeg并在加载前进行转换。

2 个答案:

答案 0 :(得分:1)

看看这个项目:

根据已知支持的格式:

它支持:

  • MP4
  • WEBM
  • OGG
  • mov(MPEG4 | H.264)
  • avi(MPEG4 | H.264)
  • mkv(MPEG4 | H.264)
  • m4v(MPEG4 | H.264)

查看其源代码,看看是否可以类似地实现它。

您说您需要AVI支持,但AVI只是一个容器 - 如果您需要其他编解码器而不是此项目支持的编解码器,那么您仍然需要先对其进行转码。

如果你不能这样做,那么你可以尝试使用类似的东西:

并将mplayer与您的应用或其他播放器捆绑在一起。

答案 1 :(得分:0)

根据 this SO 的回答,Electron 现在支持 <video> 标签中的多种视频格式,包括 .mkv.avi 和其他格式。您无需依赖外部播放器。