首页 文章

在JavaScript中检测视频的编解码器

提问于
浏览
3

我正在研究基于Electron的桌面应用程序(即Node.js和嵌入在一起的Chrome浏览器外壳),其中一项功能包括从本地文件系统加载任意视频文件 .

挑战我知道任意视频文件使用的编解码器 . 我可以按文件扩展名进行过滤(即 .mp4.webm 等)......但MP4文件可以使用多种编解码器,这些编解码器确实知道视频文件不受支持,直到HTML5视频播放器出现空白(我是甚至不确定如何以编程方式检测 THIS 何时发生) .

我已经使用 loadedmetadata 事件处理程序来检测视频's dimensions, but it doesn'似乎公开了有关底层编解码器的信息 .

有没有办法解决?我看到'm looking for Node.js packages that can identify codecs in the native 1200286 process, rather than letting the Chrome 1200287 process try detecting it at the browser level. However, all of the Node.js video packages that I'm依赖于 ffmpeg 可执行文件,我无法轻易地将其与我的Electron应用程序捆绑在一起 .

有一百万个代码示例用于检测浏览器支持的编解码器 . 但是's coming from the assumption that you'正在处理一个已知的视频文件和一个未知的浏览器 . 反过来......当你有一个有保证的已知浏览器,但是一个未知的视频文件?

1 回答

  • 1

    您可以使用mux.js检查文件中的MP4原子 . 您需要将文件加载到UInt8Array中,然后调用 muxjs.mp4.tools.inspect(bytes) 以获取已解析原子的列表 .

相关问题