mpeg2-ts aac PTS

时间:2013-11-25 09:56:55

标签: audio aac mpeg2-ts pts

我有一台IP摄像机,可以发送8000hz采样率配置的音频和H264视频。 我制作了一个程序从这台IP摄像机生成TS文件,它可以在VLC,Android媒体播放器上工作,除了iPhone,Mac OSX Safari。 (该程序适用于我制作的HLS服务器。)

在Iphone中播放视频,Safari很好,但音频不是。 (我可以听到声音,但播放不顺畅)

据我所知,TS数据包中的音频PTS应该是基于MPEG2 Sytem PCR Clock(90000hz)。 IP摄像机发送的时间戳值基于采样率(8000hz),因此当我在TS文件中写入音频的PTS时,我将90000/8000乘以Timestamp以使PTS成为MPEG2 PCR时钟。

错误的方法是将90000/8000乘以Audio PTS吗? 任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

您很可能会遇到舍入错误。 TS中的PTS必须是完美的,否则许多玩家将尝试使用参考时钟重新同步播放,这通常会显示为丢弃的样本或插入静音。

通过计算样本并转换为90khz,确保您的起始PTS准确无误。在你的分歧之前你的倍增,例如(sampleCount * 90000) / sampleRate(非sampleCount * ( 90000 / sampleRate ),并确保使用64位整数来避免整数溢出。或者更好的是,使用libavutil中的av_rescale。