h264封装成PS过程中PTS,SCR等如何计算
小弟在把h264封装成PS的过程中发现生成的PS文件无法播放,现在怀疑是PES头中的PTS和PS头中的SCR_base及SCR_ext这些内容填的不对。
我想问一下:
1.ps头中
src_base(i)=((system_clock_frequency*t(i))DIV 300)%2 33
src_ext(i)=((system_clock_frequency*t(i))DIV 1)%300
这两个公式中的t(i)怎么获得,网上有前辈说是取的获得h264流的时间戳 (ms为单位),那这个时间戳又是怎么获得的呢?
2.PTS是如何获得的,有资料说PTS=初始时间戳(自己定)+(1/h264码流帧率*时间单位*帧序号),这个h264的帧率是从SPS中获取吗,我手头的一个h264文件的一个sps是67 42 e0 0d 96 52 02 83 f4 05,请问这里面包含有time_scale和num_units_in_tick这样的信息吗?
3.问题1和问题2中的时间戳是同一个概念吗,也就是说对同一个nalu打包时的scr中的t(i)和PTS是不是可以用同一个值?