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

E L*_*der 5 node.js html5-video electron

我正在开发的应用程序中的令人发指的缺陷是,在HTML5视频实现中似乎很少(或根本没有)对AVI的支持。因此,我需要一种跨平台的解决方案,并且可以与我的电子应用程序打包在一起。

  • 视频在本地托管
  • 我不反对即时编码(ffmpeg avi-> mp4并原生使用HTML5?)
  • WebChimera似乎由于VLC和Electron的更改而垂死(开发人员无法跟上)(是否有另一个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
Run Code Online (Sandbox Code Playgroud)

完全不需要时间(它们是简短的视频):

real    0m0.138s
user    0m0.100s
sys     0m0.032s
Run Code Online (Sandbox Code Playgroud)

因此,我倾向于将ffmpeg与程序一起包装,并在加载前进行转换。

rsp*_*rsp 0

看看这个项目:

根据已知支持的格式:

它支持:

  • mp4
  • 网络管理
  • 奥格
  • 影片(MPEG4 | H.264)
  • avi (MPEG4 | H.264)
  • mkv (MPEG4 | H.264)
  • m4v (MPEG4 | H.264)

看一下它的源代码,看看是否可以类似地实现它。

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

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

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

  • 我下载了该程序,但它没有播放我的 AVI 视频... AVI 中嵌入的编解码器: Stream #0:0: Video: h264 (Main) (H264 / 0x34363248), yuv420p, 640x480, 2417 kb/s, 30 fps、30 tbr、30 tbn、60 tbc 流 #0:1:音频:mp2 (P[0][0][0] / 0x0050)、44100 Hz、立体声、s16p、64 kb/s (2认同)