如何从JavaScript获取HTML5视频的编解码器信息?

如何从JavaScript获取HTML5视频的编解码器信息?,javascript,html,video,codec,Javascript,Html,Video,Codec,我想知道视频编解码器,主要是用于编码HTML5视频的音频编解码器,因为,例如,Firefox支持MP4视频,但在其Windows版本中,如果音频编码为“sowt”,则声音将无法工作。在这种情况下,我可以提供一个WEBM源代码,但我必须首先知道MP4源代码是否有问题 我发现,但它是一个IE11属性,尚未在其他浏览器中实现 你觉得怎么样?这可能吗 提前感谢。详细的低级编解码器信息不是通过媒体元素提供的。您可以使用以mime type/codec为参数的来测试浏览器是否可以播放某个文件,但这是一个常规

我想知道视频编解码器,主要是用于编码HTML5视频的音频编解码器,因为,例如,Firefox支持MP4视频,但在其Windows版本中,如果音频编码为“sowt”,则声音将无法工作。在这种情况下,我可以提供一个WEBM源代码,但我必须首先知道MP4源代码是否有问题

我发现,但它是一个IE11属性,尚未在其他浏览器中实现

你觉得怎么样?这可能吗


提前感谢。

详细的低级编解码器信息不是通过媒体元素提供的。您可以使用以mime type/codec为参数的来测试浏览器是否可以播放某个文件,但这是一个常规查询,它不会给出特定文件的详细信息,只给出浏览器的(潜在)功能

您引用的
audioTracks
属性(也是)列出了浏览器已经解码的文件中的可用音频曲目,即能够读取和处理的音频曲目。轨道数据更多的是“语义”描述类型(轨道类型(主要、翻译等)、语言等),与原始数据使用的编码无关

检测这种低级信息的唯一方法是使用XMLHttpRequest(附带CORS要求)或文件读取器作为字节缓冲区(ArrayBuffer)加载视频文件(或其中的一部分),并手动解析它。这是可行的,但它会带来很多陷阱

通常,当浏览器跳过第一个选项并使用第二个、第三个等选项时,这意味着浏览器无法播放该特定文件,这意味着它确实与该文件有问题,但对于该浏览器而言


最好的方法是以一种或多种组合选择适用于大多数浏览器的编解码器,并始终确保视频直接呈现为其中一种格式,或至少转换为这种格式。

谢谢您提供的信息。我的问题是,有时候我的公司不给视频编码,客户自己编码;我们总是可以告诉客户他们做错了,但选择另一个源(如webm)更容易。我希望我们可以自动化这个过程。FFmpeg或mp4box可以帮助您获得视频编解码器。本文将帮助您了解更多信息