我有许多与通过MP4容器内的MediaSource元素流式传输(通过websockets)广播h264视频有关的问题:

  • 我需要ftyp吗?如果可以,是否需要将它与moov放在同一Uint8Array中?
  • 我需要分开发送每个mp4盒吗,还是我希望sourceBuffer.appendBuffer(data)可以对它们进行整理?
  • 我需要一起发送moofmdat吗?还是应该将它们分别发送给sourceBuffer.appendBuffer(data)
  • 我是否需要其他类型的框,专门用于指示时间戳?
  • 我是否需要指示MediaSource元素何时开始播放附加的数据块?
  • 我是否需要设置任何与duration / timestampOffset相关的东西?
  • 在尝试生成实时流时,在moov框中是否应该注意一些关键点?
  • 最佳答案

    moov框是初始化段,它是必需的,因此解码器知道它需要解码的内容,应忽略任何其他框(在初始化时不要尝试包含片段,因此可能不允许这样做),因此无需删除它们。
    moofmdat框应附加在单个调用中(这些段即段),不需要其他框。据我所知,时间戳数据包含在moof框中,因此无需添加其他任何内容。

    基本上,您会喜欢moov [moof mdat]+序列。

    10-06 02:00