碎片化MP4: TrackFragHeader TFHD必须有TrackID,这是在规范中吗?



我正在构建一个碎片化的mp4混音器,并注意到轨道id在TFHD内重复。如果视频没有这个未记录的轨道id,它将不会播放。

下面是一个muxer添加它的例子:https://github.com/edgeware/mp4ff/blob/bb9320744777dc97f18034c8aed45a9bcdbaa995/mp4/tfhd.go L154

我依赖于微软提供的开放规范:https://learn.microsoft.com/en - us/openspecs/windows_protocols/ms sstr/513ea48c - 9 - a57 - 4792 a32a fb6202ce2a58

这是对规范的补充吗?微软提供的规格有问题吗?

必选。否则读者如何知道片段属于哪个音轨呢?

根据ISO 14496第12部分(2015):

aligned(8) class TrackFragmentHeaderBox  
extends FullBox(‘tfhd’, 0, tf_flags){ 
unsigned int(32) track_ID; 
// all the following are optional fields 
unsigned int(64) base_data_offset; 
unsigned int(32) sample_description_index; 
unsigned int(32) default_sample_duration; 
unsigned int(32) default_sample_size; 
unsigned int(32) default_sample_flags 
} 

相关内容

最新更新