2015-01-26 47 views
1

HTML5标记向JavaScript公开了canPlayType()方法。它需要播放媒体的MIME类型,并返回关于浏览器是否认为它可以真正播放媒体的指示。如何确定文件中使用的视频编解码器

不幸的是,大多数常见媒体类型(例如'video/mp4')都是容器类型,而媒体类型本身不足以确定内容是否可以真正播放。作为对此的响应,RFC 4281定义了一个“编解码器”参数,可以将其添加到MIME类型中以标识特定的编解码器。因此,例如,一种“video/3gpp2; codecs ='mp4v.20.9,mp4a.E1''(根据RFC)”MPEG-4 Visual Simple Profile Level 0加13K语音“。

我发现了很多地方告诉我如果我知道编解码器使用什么值,但我经常发现自己处于接收未知出处的视频文件的位置 - 我所知道的是它有一个.mp4文件类型。

如何从实际文件中确定canPlayType()的正确“编解码器”值?

+0

你想这样做的浏览器? – szatmary 2015-01-27 00:04:25

+0

不需要。我想要一个可以脱机使用的过程来确定浏览器中运行的脚本可以用来确定浏览器是否可以播放视频的正确值。 – scottb 2015-01-27 01:12:28

回答

-1

命令行工具ffprobemediainfo应提供正确的信息。

更新时间:

对于轮廓使用Baseline = 66Main = 77High = 100

对于级别:除以10

例如 [email protected] = avc1.77.31

+1

这些不以正确的格式提供信息。为了调用canPlayType(),我需要非常特定的字符串。从ffprobe或mediainfo中,我可以发现我正在使用AVC Baseline编解码器,但这并不能告诉我在调用canPlayType()时使用什么'编解码器'参数() – scottb 2015-01-27 02:59:08

+0

它告诉你什么用于'编解码器'参数。你只是不知道如何阅读它。答案已更新。 – szatmary 2015-01-27 03:17:08

+1

除“avc1.77.31”不是'编解码器'的正确值外。 “avc1”编解码器后面应该有六个十六进制数字(例如,请参阅RFC 6381)。 – scottb 2015-01-27 04:20:37

相关问题