通过 websocket 将 mp4 直播视频内容流式传输到 mediasource 元素
Streaming mp4 live broadcasting video content over websocket to mediasource element
我有很多关于流式传输(通过 websockets)将 h264 视频广播到 mp4 容器内的 MediaSource 元素的问题:
- 我需要
ftyp
吗?如果我这样做,我需要它与 moov
位于同一个 Uint8Array 中吗?
- 我需要单独发送每个 mp4 盒还是我可以希望
sourceBuffer.appendBuffer(data)
将它们分类?
- 我需要同时发送
moof
和 mdat
还是应该在对 sourceBuffer.appendBuffer(data)
的不同调用中提供?
- 我是否需要任何其他类型的框,专门用于指示时间戳?
- 我是否需要向 MediaSource 元素指示何时开始播放附加数据块?
- 我需要设置任何 duration/timestampOffset-related 东西吗?
moov
框中有什么关键点是我在尝试制作直播时应该注意的吗?
moov
框是初始化段,它是必需的,以便解码器知道它需要解码什么,任何其他框都应该被忽略(从未尝试在初始化时包含片段,所以可能不是允许)所以不需要删除它们。
moof
和 mdat
框应附加在单个调用中(这些是段),不需要其他框。据我所知,时间戳数据包含在 moof
框中,因此无需添加任何其他内容。
基本上你对 moov [moof mdat]+
.
的序列很好
我有很多关于流式传输(通过 websockets)将 h264 视频广播到 mp4 容器内的 MediaSource 元素的问题:
- 我需要
ftyp
吗?如果我这样做,我需要它与moov
位于同一个 Uint8Array 中吗? - 我需要单独发送每个 mp4 盒还是我可以希望
sourceBuffer.appendBuffer(data)
将它们分类? - 我需要同时发送
moof
和mdat
还是应该在对sourceBuffer.appendBuffer(data)
的不同调用中提供? - 我是否需要任何其他类型的框,专门用于指示时间戳?
- 我是否需要向 MediaSource 元素指示何时开始播放附加数据块?
- 我需要设置任何 duration/timestampOffset-related 东西吗?
moov
框中有什么关键点是我在尝试制作直播时应该注意的吗?
moov
框是初始化段,它是必需的,以便解码器知道它需要解码什么,任何其他框都应该被忽略(从未尝试在初始化时包含片段,所以可能不是允许)所以不需要删除它们。
moof
和 mdat
框应附加在单个调用中(这些是段),不需要其他框。据我所知,时间戳数据包含在 moof
框中,因此无需添加任何其他内容。
基本上你对 moov [moof mdat]+
.