我正在尝试从原始的h264字节流中制作iso bmff,以便通过javascript播放。我通过自定义传输容器(不是任何标准HLS或rtsp数据包)获取数据,其中每个数据包包含相对时间戳。例如:
chunk1:
Packet1 - 时间戳:100,有效载荷:H264原始数据[通常是单个NAL单元]
Packet2 - 时间戳:120,有效负载:h264原始数据
chunk1:
Packet1 - 时间戳:140,有效负载:H264原始数据
Packet2 - 时间戳:160,有效负载:h264原始数据
由于数据包时间戳是以毫秒为单位的相对时间,因此我认为时间刻度值为1000,并根据第一个数据包和连续数据包的差值计算DTS。例如,
第一个大块的DTS:0 [100 - 100]
第二个大块的DTS:40 [140 - 100]
但问题是它在firefox中工作得很好但是chrome在第一帧之后就卡住了。
可能是什么原因?我在DTS或时间尺度上做错了吗?
注意我没有任何B帧,所以我的DTS和PTS值相同
答案 0 :(得分:0)
最后我能够解决我的问题。基本上DTS值没有任何问题。我正在使用mp4生成器的修改版本,这是移除trun框的持续时间部分的问题。
我已经从我的another post中了解了这个问题,其中szatmary提到了trun box duration。
最后,我刚刚从hls repository复制了mp4-generator,它解决了我的问题。现在它也在玩铬和野生动物园。