【问题标题】:HLS to MPEG DASHHLS 转 MPEG DASH
【发布时间】:2015-05-18 20:09:07
【问题描述】:

我目前在一个平台上工作,该平台依靠 MPEG Dash 向浏览器提供音频和视频。 对于 onDemand 我使用 ffmpeg 将视频编码为 h264/aac 和 MP4Box 以创建 manifest.mpd 文件。 现在我试图弄清楚如何创建实时 MPEG Dash 流,更具体地说,将 hls 实时流编码为 MPEG Dash。

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

【问题讨论】:

标签: javascript ffmpeg video-streaming http-live-streaming mpeg-dash


【解决方案1】:

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

【讨论】:

  • 我不想使用 3rd 方服务来创建文件和清单。我可以使用 ffmpeg 和 -c:v 复制参数创建 IBMFF/MP4 段吗?
  • 我不认为你可以在 ffmpeg 中将所有 HLS 转换为可播放的 DASH。片段,也许是的,您可以将 mpeg2-ts 转换为 ISOBMFF,但如果您想拥有可播放的 DASH 内容,还有更多内容,例如构建片段初始化文件和转换后片段的相应清单。
【解决方案2】:

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

  1. 您应该在分段之前将输入流从 mpeg2 转换为 mpeg4,以节省以后转换分段,
  2. 连续编码 onDemand 内容:这并不是真正需要的,因为内容是一次性转换的,但如果您仍然需要,您可以编写一个简单的 bash 脚本来依次循环 avconv 和 ffmpeg 命令,
  3. 要生成动态内容,您的命令应如下所示:

MP4Box -dash-live DUR(in ms) -fps 24 -some_other_params_you_want_to_use -dash-ctx filename -dynamic -out filename

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

【讨论】:

    猜你喜欢
    • 2015-02-03
    • 2017-05-23
    • 1970-01-01
    • 2013-03-19
    • 2015-12-27
    • 2020-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多