HLS到MPEG DASH

时间:2015-03-16 16:02:03

标签: javascript ffmpeg video-streaming hls mpeg-dash

我目前正在开发一个依赖MPEG Dash为浏览器提供音频和视频的平台。 对于onDemand我使用ffmpeg将视频编码为h264 / aac和MP4Box来创建manifest.mpd文件。 现在我试图弄清楚如何创建实时MPEG Dash流,更具体地说是将hls直播流编码为MPEG Dash。

  1. 我是否需要将所有.ts段重新编码为.mp4(h264 / aac)段,因为chrome不支持mpeg2ts?
  2. 如果是这样,我如何连续重新编码所有片段(不同分辨率,不同比特率)
  3. 如何使用MP4Box创建动态清单/输入参数如何显示

2 个答案:

答案 0 :(得分:1)

如果你想保留HLS流的表示/再现,你基本上只需要将mpeg2ts段重新多路复用到IBMFF / MP4段+创建DASH init文件。有像wowza或Unified Streaming这样的流媒体服务器可以做到这一点。

答案 1 :(得分:1)

我一直在处理onDemand和Live配置文件的MPEG DASH。我使用的是Ubuntu 16.04,这就是我的工作。我使用avconv将输入块从mp2t转换为mp4,然后将ffmpeg转换为chunk视频并对齐I帧,然后使用MP4Box创建.mpd和段。对于直播,我使用ffmpeg使用我的网络摄像头录制剪辑,将mpeg2转换为mpeg4格式,然后最终使用MP4Box生成动态片段。现在,为您提问:

  1. 您应该将输入流从mpeg2转换为mpeg4,然后再将其分段以保存以后转换段
  2. 连续编码onDemand内容:这不是真正需要的,因为内容是一次性转换的,但如果你仍然要求,你可以写一个简单的bash脚本来循环avconv和ffmpeg命令,
  3. 要生成动态内容,您的命令应如下所示:
  4. MP4Box -dash-live DUR(in ms) -fps 24 -some_other_params_you_want_to_use -dash-ctx filename -dynamic -out filename
    

    很高兴提供更多信息! 干杯