【问题标题】:http adaptive streaminghttp自适应流
【发布时间】:2011-12-23 03:18:44
【问题描述】:

是否有任何开源流解决方案支持 Http Adaptive Streaming?根据我的研究,VLC 不支持自适应流。我不确定 Darwin Streaming Server。有什么想法吗?

【问题讨论】:

    标签: libvlc http-streaming


    【解决方案1】:

    我看到了它们,但还没有测试过它们。我建议他们在 HTTP 实时流的早期阶段造成的悲痛是不值得的。可供您尝试解决问题的可用资源很少。

    如果你想便宜可以试试:

    50 美元:Apple 压缩机。如果你有 MAC,编码和分段都合二为一

    25 美元:Markelsoft HLS 分段器:但是,您可能需要使用一些 X.264 设置来获得最终产品,并且在分段(大工作)时它不会创建变体播放列表。您可以使用记事本手动执行此操作。这不是一项大工作。

    如果你想完全免费,你有:

    1. 编码:Handbrake、MeGui,随心所欲。只需遵循 Android 编码规范。使用 H264 和 AAC。不要使用渐进式下载设置/预设。使用 CBR 而不是 VBR 并确保您的帧速率是恒定的而不是可变的。选择一个可以轻松用于乘法运算的帧速率,这样您就可以确保关键帧在片段中的位置。

    2. 使用 Apples 免费工具:mediafilesegment、variantplaylistcreator 等。Mediafilesegmenter 会询问您想要多大的片段。默认值为 10 秒。这样您就可以设置解码器关键帧以确保每个片段都以关键帧开头。

    我举两个例子。

    示例 1:

    • 分段大小:10 秒
    • 帧率:最初为 29.97 变量,编码为 30 fps 常量
    • 以帧为单位的关键帧距离:30 x 10 秒 = 300 帧。每 300 帧需要一个关键帧。
    • 推荐的自适应关键帧:每 2 秒

    关键帧设置 2 * 30 = 60 帧。每 5 个关键帧 (5 * 60) 引导一个片段

    示例 2:

    • 帧率:最初是 23.97 变量,编码为 24 fps 常量
    • 段大小:8 秒
    • 片段所需的关键帧:8 * 24 = 192
    • 建议自适应 2 秒 = 2 * 24 = 48
    • 每第 4 个关键帧 (4 * 48) 引导一个片段

    【讨论】:

      【解决方案2】:

      如果您想要一个开源解决方案,您可以使用 x264 和 mp4box 来实现。以下命令将是一个示例,您可以如何创建一个单一的质量/表示/再现:

      x264 --output intermediate_2400k.264 --fps 24 --preset slow --bitrate 2400 --vbv-maxrate 4800 --vbv-bufsize 9600 --min-keyint 48 --keyint 48 --scenecut 0 --no-scenecut --pass 1 --video-filter "resize:width=1280,height=720" inputvideo.mkv
      

      下一步是将编码的内容多路复用到 mp4 中:

      MP4Box -add intermediate.264 -fps 24 output_2400k.mp4
      

      然后您创建单独的段和清单:

      MP4Box -dash 4000 -frag 4000 -rap -segment-name segment_ output_2400k.mp4
      

      然后,您可以创建其他几个品质,并使用像 dash.js 这样的开源播放器之一来播放它们。

      【讨论】:

        【解决方案3】:

        OSMF 播放器: http://www.osmf.com/

        【讨论】:

          【解决方案4】:

          说实话,根本没有简单的解决方案可以完成所有这些工作,更不用说自适应流媒体了。 绝对没有一体化的开源解决方案可以对 HTTP 流进行编码、分段和交付(更不用说具有同步关键帧的自适应流)。

          【讨论】:

          • 相信我,开源视频应用不值得花时间,除了 X264 可以用于某些事情,但需要非常高的专业知识。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-12-07
          • 2017-07-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多