微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

我正在构建一个碎片化的 mp4 多路复用器,并注意到轨道 ID 在 TFHD 中重复。 如果视频没有这个未记录的轨道 ID,它就不会播放。

这是一个多路复用器添加它的例子: https://github.com/edgeware/mp4ff/blob/bb9320744777dc97f18034c8aed45a9bcdbaa995/mp4/tfhd.go#L154

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

这是对规范的补充吗?微软提供的规范有错吗?

解决方法

这是强制性的。否则读者怎么知道片段属于哪个轨道?

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

aligned(8) class TrackFragmentHeaderBox  
 extends FullBox(‘tfhd’,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 
} 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。