0

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

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

2 回答 2

1

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

于 2015-03-22T10:28:39.330 回答
1

我一直在为 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

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

于 2017-04-27T23:14:25.877 回答