视频时间戳 s64Pts = (s64FrameNumber++) * (1000 / s32FramePreSecond); s64FrameNumber:已编码帧的数量,特别在h264中,不是以NAL为单位 s32FramePreSecond:帧率 libav代码为:tPacket.pts = (s64VideoTimeStamp++) * (ptVdieoContext->time_base.num * 1000 / ptVdieoContext->time_base.den);
音频时间戳 s64Pts = (s64FrameNumber++) * (1000 * s32FrameSize / s32SampleRate); s64FrameNumber:已编码帧的数量 s32FrameSize:编码帧的长度 s32SampleRate:采样率,即每秒产生的字节数量(44100) libav代码为:tPacket.pts = (s64AudioTimeStamp++) * (ptAudioContext->frame_size * 1000 / ptAudioContext->sample_rate);
时间戳单位都是ms. (zorru) |