我有 mp4 碎片,我想通过 HLS 发送给用户。如果我按原样发送就可以了。但我需要机会重新排列该视频中的片段。
例如初始视频,如下所示: original video format
我想重新组织片段并得到这个: expected video format
我尝试在本地制作它,它可以在 VLS 播放器(HLS)中运行。为此,我修改了 moof (mfhd) 中片段的序列号。但当我尝试远程播放(HLS)时,它不起作用。我认为,一些玩家(js)期望从每个片段中获得一些附加信息,例如时间偏移。但我找不到哪个原子(盒子)包含这个信息。我花了很多时间搜索,但我仍然处于问题的最初阶段。
我尝试修改片段序列号,但不起作用。
最佳答案
“跟踪片段媒体解码时间框”(tfdt) 存储baseMediaDecodeTime
,它是累积解码时间。
考虑以下...
baseMediaDecodeTime
对于每个 block 必须单调增加。这意味着您必须用预期的下一个 tftd 条目更新(替换) block 的 tfdt 条目。
当您天真地重新排序 block 时,
baseMediaDecodeTime
将无效。
“轨道片段媒体解码时间框”(tfdt) 位于每个 moof header 内部,位置为:
moof --> traf --> tfdt
关于mp4 - 是否可以对 fmp4 中的片段进行重新排序和重组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75210625/