【发布时间】:2011-12-23 03:18:44
【问题描述】:
是否有任何开源流解决方案支持 Http Adaptive Streaming?根据我的研究,VLC 不支持自适应流。我不确定 Darwin Streaming Server。有什么想法吗?
【问题讨论】:
标签: libvlc http-streaming
是否有任何开源流解决方案支持 Http Adaptive Streaming?根据我的研究,VLC 不支持自适应流。我不确定 Darwin Streaming Server。有什么想法吗?
【问题讨论】:
标签: libvlc http-streaming
我看到了它们,但还没有测试过它们。我建议他们在 HTTP 实时流的早期阶段造成的悲痛是不值得的。可供您尝试解决问题的可用资源很少。
如果你想便宜可以试试:
50 美元:Apple 压缩机。如果你有 MAC,编码和分段都合二为一
25 美元:Markelsoft HLS 分段器:但是,您可能需要使用一些 X.264 设置来获得最终产品,并且在分段(大工作)时它不会创建变体播放列表。您可以使用记事本手动执行此操作。这不是一项大工作。
如果你想完全免费,你有:
编码:Handbrake、MeGui,随心所欲。只需遵循 Android 编码规范。使用 H264 和 AAC。不要使用渐进式下载设置/预设。使用 CBR 而不是 VBR 并确保您的帧速率是恒定的而不是可变的。选择一个可以轻松用于乘法运算的帧速率,这样您就可以确保关键帧在片段中的位置。
使用 Apples 免费工具:mediafilesegment、variantplaylistcreator 等。Mediafilesegmenter 会询问您想要多大的片段。默认值为 10 秒。这样您就可以设置解码器关键帧以确保每个片段都以关键帧开头。
我举两个例子。
示例 1:
关键帧设置 2 * 30 = 60 帧。每 5 个关键帧 (5 * 60) 引导一个片段
示例 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 这样的开源播放器之一来播放它们。
【讨论】:
OSMF 播放器: http://www.osmf.com/
【讨论】:
说实话,根本没有简单的解决方案可以完成所有这些工作,更不用说自适应流媒体了。 绝对没有一体化的开源解决方案可以对 HTTP 流进行编码、分段和交付(更不用说具有同步关键帧的自适应流)。
【讨论】: