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

时间:2015-05-14 11:07:18

标签: javascript html5 video codec

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

我找到this,但它是IE11属性,但在其他浏览器中尚未实现。

你怎么看?这可能吗?

提前谢谢。

1 个答案:

答案 0 :(得分:3)

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

您引用的<p> <label for="id_categories_0">Categories:</label> <div class="btn-group" data-toggle="buttons" id="id_categories"> &lt;label class=&quot;btn btn-primary&quot;&gt;&lt;input id=&quot;id_categories_0&quot; name=&quot;categories&quot; type=&quot;checkbox&quot; value=&quot;1&quot; autocomplete=&quot;off&quot; /&gt; electronics&lt;/label&gt;&lt;label class=&quot;btn btn-primary&quot;&gt;&lt;input id=&quot;id_categories_1&quot; name=&quot;categories&quot; type=&quot;checkbox&quot; value=&quot;2&quot; autocomplete=&quot;off&quot; /&gt; bedroom and productivity&lt;/label&gt; &lt;label class=&quot;btn btn-primary&quot;&gt;&lt;input id=&quot;id_categories_2&quot; name=&quot;categories&quot; type=&quot;checkbox&quot; value=&quot;3&quot; autocomplete=&quot;off&quot; /&gt; phone&lt;/label&gt; &lt;label class=&quot;btn btn-primary&quot;&gt;&lt;input id=&quot;id_categories_3&quot; name=&quot;categories&quot; type=&quot;checkbox&quot; value=&quot;4&quot; autocomplete=&quot;off&quot; /&gt; office&lt;/label&gt; &lt;label class=&quot;btn btn-primary&quot;&gt;&lt;input id=&quot;id_categories_4&quot; name=&quot;categories&quot; type=&quot;checkbox&quot; value=&quot;6&quot; autocomplete=&quot;off&quot; /&gt; Kitchen&lt;/label&gt; </div> </p> 属性(也是supported in Safari)列出了浏览器已经已解码的文件中的可用音轨,即。能够阅读和处理。轨道数据是更“语义”的描述类型(轨道类型(主要,翻译,...),语言等),而不是关于用于原始数据的编码。

检测此低级信息的唯一方法是使用XMLHttpRequest(附带CORS要求)或FileReader(作为字节缓冲区(ArrayBuffer))加载视频文件(或部分文件)并手动解析它。可行,但它提供了许多陷阱。

通常,当浏览器跳过第一个选项并使用辅助,第三等选项时,这意味着浏览器无法播放该特定文件,这意味着它确实存在文件问题,但对于此浏览器。

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