【问题标题】:Unreadable MP4 response with <video> tag带有 <video> 标签的不可读 MP4 响应
【发布时间】:2014-01-13 03:58:12
【问题描述】:

我正在尝试让我的旧网站使用其 HTML5 视频。

为了最大限度地提高浏览器兼容性,我在那里有几个视频,我已将其编码为 MP4、Ogg Theora 和 WEBM。目前,Firefox 似乎可以正常播放相关视频。但是,尝试在 IE11 中查看视频似乎无法正常工作。

服务器似乎确实配置为返回“video/mp4”的 Content-Type,当我直接转到相关链接时,它会下载视频,并且下载后可以在 Windows Media Player 中播放。 在我的开发人员工具的网络选项卡中,我实际上看到了两个对 URL 的请求——一个有 200 响应和 4 KB 的不可渲染内容,另一个有一个“范围”内容标题和一个 206 结果——我想这是与能够流式传输内容有关。 我愿意接受有关我可能遗漏的建议。

HTML:

    <video width="500" height="300" controls="controls">
        <source src="media/pilferocalypse.mp4" type="video/mp4" />
        <source src="media/pilferocalypse.webm" type="video/webm" />
        <source src="media/pilferocalypse.ogv" type="video/ogg" />
        HTML5 Video may not be supported on your browser. You may try <a href="media/pilferocalypse.mp4">downloading</a> the video instead.
    </video>

【问题讨论】:

    标签: html internet-explorer video http-headers mp4


    【解决方案1】:

    确保除了将文件存储在 MP4 容器中之外,还使用 ​​H.264 视频和 AAC 音频对其进行编码。 MP4 是一个通用的容器,可以存储多种类型的音频和视频。如果它包含例如 MPEG-4 第 2 部分视频和 MP3 音频,那么它可能无法在这些浏览器中播放。

    【讨论】:

    • @Katana314 此外,将moov 原子放在 MP4 文件的开头将允许在查看器完全下载之前开始播放。您可以使用 ffmpeg 中的-movflags +faststart 选项来执行此操作。
    • 谢谢,这最终成为了问题。我使用了一个名为 MediaInfo 的程序来检查正在使用的确切编解码器,它被称为“MPEG-4 Visual”。我将它与我使用 Handbrake 制作的其他视频进行了比较;后者使用“AVC”,根据维基百科关于 H.264 的文章,它应该是正确的编解码器名称。用另一个编码替换解决了这个问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-03
    • 2019-02-12
    • 2012-09-11
    • 1970-01-01
    • 1970-01-01
    • 2017-05-08
    • 1970-01-01
    相关资源
    最近更新 更多