DTS与时间尺度之间的相关性

时间:2017-07-26 19:21:37

标签: javascript time scale h.264

我正在尝试从原始的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值相同

1 个答案:

答案 0 :(得分:0)

最后我能够解决我的问题。基本上DTS值没有任何问题。我正在使用mp4生成器的修改版本,这是移除trun框的持续时间部分的问题。

我已经从我的another post中了解了这个问题,其中szatmary提到了trun box duration。

最后,我刚刚从hls repository复制了mp4-generator,它解决了我的问题。现在它也在玩铬和野生动物园。