【问题标题】:Get mime type for MediaSource.isTypeSupported获取 MediaSource.isTypeSupported 的 mime 类型
【发布时间】:2016-06-07 14:08:47
【问题描述】:

如何使用 ffprobe/ffmpeg 获得 Mime 类型 I need to pass to MediaSource.isTypeSupported

例如,在我的电脑上,返回true

MediaSource.isTypeSupported('video/mp4; codecs="avc1.64000d,mp4a.40.2"')

虽然没有

MediaSource.isTypeSupported('video/mp4')

我不确定如何获取与给定视频的 avc1.64000d,mp4a.40.2 部分对应的内容。 Here 是该部分可能外观的更大列表。

ffprobe -show_streams -i video.mp4返回一些有趣的信息,包括

codec_type=video
codec_time_base=1/40
codec_tag_string=avc1
codec_tag=0x31637661 

codec_type=audio
codec_time_base=1/48000
codec_tag_string=mp4a
codec_tag=0x6134706d

我不确定我是否应该使用'video/mp4; codecs="avc1.0x31637661,mp4a.0x6134706d"',因为这会返回false,我不知道是因为它不是例外参数还是因为确实不支持视频。

【问题讨论】:

    标签: html ffmpeg mime-types ffprobe media-source


    【解决方案1】:

    使用Bento4,我可以得到 Mime 类型

    mp4info video.mp4 | grep Codec
    

    这将返回类似

    Codecs String: avc1.64001F
    Codecs String: mp4a.40.2
    

    然后做

    MediaSource.isTypeSupported('video/mp4; codecs="avc1.64001F,mp4a.40.2"')
    

    返回true :)

    Bento4 专注于 mp4,所以我不确定它在其他格式上的表现如何

    【讨论】:

      【解决方案2】:

      还有其他方法可以将0x31637661 部分转换为avc1.64001F吗?

      编辑:由于我没有安装 Apple 的 XCode,也无意安装 - 我发现 MP4Box 的 javascript 项目是找到正确格式的编解码器信息的最佳方式:

      http://download.tsi.telecom-paristech.fr/gpac/mp4box.js/filereader.html

      【讨论】:

      • 我不知道。是什么阻碍了您使用 Bento4?我同意使用更常用的工具得到答案会很好,并且可以使用mp4。 Bento4 为我完成了这项工作,所以我不再寻找。 (你也应该在 cmets 和答案中写出来:))
      • 在 OSX 上安装 Bento4 (xbuild.proj) 我应该下载 Apple 的 Xcode,文件大小为 4.4GB!经过大量搜索后,看起来 MP4BOX 可以输出 HTML5 视频标签所需的正确 Mime/编解码器格式。他们甚至有一个 JavaScript 版本和一个 GUI 浮动在 gpac.wp.mines-telecom.fr/mp4box
      • 哦,是的,我已经有了 Xcode,所以没有注意到。是的 MP4BOX 看起来也不错。如果您发现如何使用 MP4BOX 进行操作,请随时分享您的回复:)
      • 好时机!好的,我找到了这个页面download.tsi.telecom-paristech.fr/gpac/mp4box.js/… 这是 MP4Box 的 javascript 版本。如果您选择 > 文件加载,您可以在 > 电影视图选项卡中看到所需的编解码器信息。您能帮我一个忙,对照您的 Bento4 结果检查结果吗?干杯!顺便说一句,MP4Box 也需要安装 XTools :-( 我希望这个 .js 版本是解决方案..
      • 我发现结果是一样的(为此,还有其他的东西,比如片段字节位置等)他们的 UI 很适合检查和实验,但还有更多工作要做来自脚本的数据。我认为他们有一个 Java 库应该可以完成这项工作,但我有一段时间没有接触过 Java!
      【解决方案3】:

      我意识到这是一个非常古老的问题,但我最近自己遇到了这个问题。我很难找到一种简单的方法来获取正确的 MIME 字符串,所以我写了一个简单的 Node.js CLI program 来使用出色的 mp4box.js

      你可以这样使用它:

      $ npx get-video-mime your-video-file.mp4
      
      [22:28:37] Getting MIME for 1 file(s)...
      [22:28:38] MIME for your-video-file.mp4 detected as: video/mp4; codecs="hev1.1.6.L120.90,mp4a.6b"; profiles="isom,iso2,mp41"
      [22:28:38] Finished processing all files.
      

      希望它能帮助别人。

      【讨论】:

        猜你喜欢
        • 2014-04-16
        • 1970-01-01
        • 2018-12-01
        • 1970-01-01
        • 2015-10-24
        • 2011-03-12
        • 1970-01-01
        • 2013-10-04
        • 2013-07-07
        相关资源
        最近更新 更多