DTS与时间尺度的相关性
Correlation between DTS and time scale
我正在尝试从原始 h264 字节流制作 iso bmff 以通过 javascript 播放。我通过自定义传输容器(不是任何标准 HLS 或 rtsp 数据包)获取数据,其中每个数据包都包含一个相对时间戳。例如:
块 1:
Packet1 -- timestamp:100, payload: H264 raw data [通常是单个NAL单元]
数据包 2 -- timestamp:120,负载:h264 原始数据
块 1:
数据包 1 -- timestamp:140,负载:H264 原始数据
数据包 2 -- timestamp:160,负载:h264 原始数据
由于数据包时间戳是以毫秒为单位的相对时间,所以我考虑时间标度值为 1000 并根据第一个数据包和连续数据包的差异计算 DTS。例如,
第一个块的 DTS:0 [100 - 100]
第二个块的 DTS:40 [140 - 100]
但问题是它在 firefox 中工作正常,但 chrome 只是在第一帧后卡住了。
可能是什么原因?我在 DTS 或时间刻度方面做错了吗?
注意到我没有任何B帧,所以我的DTS和PTS值是一样的
终于解决了我的问题。 DTS值基本上没有问题。我使用的是 mp4 生成器的修改版本,这是从 trun 框删除持续时间部分的问题。
我从我的 another post 那里得到了关于这个问题的线索,其中 szatmary 提到了 trun 框持续时间。
最后,我刚刚从 hls repository 复制了 mp4-generator,它解决了我的问题。现在它也在 chrome 和 safari 中播放。
我正在尝试从原始 h264 字节流制作 iso bmff 以通过 javascript 播放。我通过自定义传输容器(不是任何标准 HLS 或 rtsp 数据包)获取数据,其中每个数据包都包含一个相对时间戳。例如:
块 1:
Packet1 -- timestamp:100, payload: H264 raw data [通常是单个NAL单元]
数据包 2 -- timestamp:120,负载:h264 原始数据
块 1:
数据包 1 -- timestamp:140,负载:H264 原始数据
数据包 2 -- timestamp:160,负载:h264 原始数据
由于数据包时间戳是以毫秒为单位的相对时间,所以我考虑时间标度值为 1000 并根据第一个数据包和连续数据包的差异计算 DTS。例如,
第一个块的 DTS:0 [100 - 100]
第二个块的 DTS:40 [140 - 100]
但问题是它在 firefox 中工作正常,但 chrome 只是在第一帧后卡住了。
可能是什么原因?我在 DTS 或时间刻度方面做错了吗?
注意到我没有任何B帧,所以我的DTS和PTS值是一样的
终于解决了我的问题。 DTS值基本上没有问题。我使用的是 mp4 生成器的修改版本,这是从 trun 框删除持续时间部分的问题。
我从我的 another post 那里得到了关于这个问题的线索,其中 szatmary 提到了 trun 框持续时间。
最后,我刚刚从 hls repository 复制了 mp4-generator,它解决了我的问题。现在它也在 chrome 和 safari 中播放。