音视频时间戳总结

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/glw0223/article/details/88947486

音视频时间戳总结

flv/rtmp

  • 只有一个时间戳
  • 四个字节 : 三个字节是低位,后来又扩展了一个高位字节
  • 单位:ms
  • 循环时间:
    如果是有符号四字节的话:
    ( 1 < < 31 ) 1 = 2147483647 (1<<31)-1 = 2147483647
    2147483647 / 1000 / 3600 / 24 = 24.855 2147483647/1000/3600/24=24.855天
    ffmpeg里使用的是uint32
    ( 1 < < 31 ) 1 = 4294967295 (1<<31)-1 = 4294967295
    4294967295 / 1000 / 3600 / 24 = 49.710 4294967295/1000/3600/24=49.710天

hls/ts

  • 有PTS和DTS
  • 33bits:
    无符号的话是
    8589934591 / 90 / 1000 / 3600 / 24 = 26.512 = 1.1046 8589934591/90/1000/3600/24=26.512小时=1.1046天
  • 音视频的时间戳基准都是90k

mp4

  • 在moov的mvhd里有个box叫time scale,就是时间基准,一般是90k。
  • 还有一个叫duration,通过duration和time scale可以计算track的真正时长。
  • 所以一个mp4的最大时长是13.256小时,当然一般不会存储这么长的,因为文件已经很大了。

rtp

  • 只有一个时间戳
  • 4字节,uint32
    视频:
    4294967295 / 90 / 1000 / 3600 = 13.256 4294967295/90/1000/3600=13.256小时
    音频:
    假设是48k采样
    4294967295 / 48 / 1000 / 3600 = 24.855 4294967295/48/1000/3600=24.855小时

猜你喜欢

转载自blog.csdn.net/glw0223/article/details/88947486