http自适应流媒体

时间:2011-11-06 16:49:05

标签: libvlc http-streaming

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

4 个答案:

答案 0 :(得分:4)

我看到他们但没有测试过。我建议他们在HTTP Live Streaming的早期阶段引起的悲伤程度是不值得的。您可以使用很少的资源来尝试解决问题。

如果你想便宜,你可以尝试:

50美元:Apple Compressor。如果您有MAC

,则对所有内容进行编码和分段 25美元:Markelsoft HLS Segmenter:但是你可能需要使用一些X.264设置才能获得最终产品,虽然它是细分的(大工作)但它不会创建变体播放列表。您可以使用记事本手动执行此操作。这不是一件大事。

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

  1. 编码:手刹,MeGui,无论你想要什么。只需遵循Android编码规范即可。使用H264和AAC。请勿使用渐进式下载设置/预设。使用CBR而不是VBR并确保您的帧率恒定不变。选择可在乘法中轻松使用的帧速率,以便确保段中的关键帧位置。

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

  3. 我将举两个例子。

    示例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)引领一个片段

答案 1 :(得分: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这样的开源播放器或像Bitmovin player这样的商业播放器播放它们。对于编码,还可以使用Bitmovin Cloud Encodingzencoder等商业云服务。

答案 2 :(得分:1)

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

答案 3 :(得分:0)

说实话,没有简单的解决方案可以完成所有这些,不提自适应流媒体。 绝对没有一体化的开源解决方案可以对HTTP流进行编码,分段和传送(不提及具有同步关键帧的自适应流)。