【问题标题】:Play .h264 files webplayer播放 .h264 文件网络播放器
【发布时间】:2015-01-21 20:18:30
【问题描述】:

我正在尝试在我的网站上播放 .h264 文件(带有 .h264 后缀的文件,而不是 .mp4!)有什么办法可以做到这一点吗? html标签好像不支持。

该网站在树莓派上运行,无法自动将其转换为 mp4,因为它会导致后端崩溃。视频由安装在树莓派上的摄像头生成。

html:

 % if loaded_video is not None:
                                <video width="720" height="480" controls>
                                    <source src="/movies/{{loaded_video.name}}" type="video/mp4" />

                                    Your browser does not support the video tag.
                                </video>

即使直接加载视频网址,我看到的都是乱码。

谁能帮帮我? 谢谢

【问题讨论】:

  • 我认为浏览器并不关心 extension 而是关心从服务器发送的 MIME 类型。我想你也可以在&lt;video&gt;标签中指定要使用的编解码器,所以只要支持编解码器,它应该可以工作。
  • @RocketHazmat 好吧,从我链接的同一件事来看,我很确定它已经在发送 H.264 编解码器,因为 MP4 只是它的容器,但是“用高配置编码的 MP4 将不能在低端硬件上运行,例如低端 Firefox OS 手机。”但是,直接.h264 格式不起作用,因为同一篇文章提到它不是免版税格式。因此,浏览器供应商必须明确支持该扩展。
  • @sjagr 那么这不可能吗?
  • 您的 Raspberry Pi 能否对具有低复杂度配置文件的 mp4 进行编码?也许那时它会起作用。

标签: html video h.264


【解决方案1】:

您可以使用 Broadway emscripten javascript h264 解码器端口在浏览器中显示 h264 文件。如果您寻求实时,您还需要一个 websocket 服务器/中继,并确保您发送正确分块的 NAL(h264 帧)。我为此非常精确的目的编写了一个项目(使用原始 h264 从 rpi cam 到浏览器的实时流),请参阅“github h264-live-player”

【讨论】:

    【解决方案2】:

    网络浏览器不会播放原始 .264 文件。它必须放入容器中,例如 mp4。如果是直播视频,很多现代浏览器都可以使用媒体源扩展来播放分段的mp4(m4s)

    无法将它们自动转换为 mp4,因为它会 使后端崩溃。

    那么这是一个错误。修复崩溃。

    @sjagr

    是的,h.264 不是免版税的,但将其包装成 mp4 并不能消除该限制。 *.264 只是以附件B 格式保存的 h.264 NAUL。它是 h.264 规范的一部分。

    【讨论】:

    • 因为树莓派计算能力低,会导致后端崩溃。即使我超频,它也无法同时运行后端和转换。
    • 树莓派有足够的处理能力将附件流混合到 mp4 容器中。它所需要做的就是编写 moov atom,将起始码转换为长度,然后将流写入 mdat。任何制造的 CPU 都可以做到这一点而不会“崩溃”。它可能会做的很慢。
    • 确实如此,但我的树莓派也在运行我自己的软件项目,它是创建这些视频并运行网络服务器的原因。所以结合所有这些,它无法进行转换
    • 我相信你的话,但我仍然认为你高估了重新混合的开销。视频不需要重新编码。转换只比文件副本多一点工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多