音视频时间戳获取及音视频同步原理

本文介绍了音视频时间戳的计算方法,包括视频时间戳依赖帧率,音频时间戳依赖采样率。在ffmpeg中,视频时间戳通过帧间间隔计算,音频时间戳基于音频帧的采样率。并以AAC和MP3为例,详细计算了它们的帧播放时间。
摘要由CSDN通过智能技术生成

      时间戳是音视频都具有的属性,我们的音视频都是通过时间戳来同步的,首先,先看看音视频的时间戳计算方法。

1. 视频时间戳
      这个值主要是依赖于帧率;1000/fps为帧间间隔;相当于一个个间隔时间加上去了。可见这个计算是以帧为单位来计算的。pts = inc++ *(1000/fps);  其中inc是一个静态的,初始值为0,每次打完时间戳inc加1.

    在ffmpeg,中的代码为

    pkt.pts= m_nVideoTimeStamp++ * (m_VCtx->time_base.num * 1000 / m_VCtx->time_base.den);

2. 音频时间戳

      依赖于音频的sample rate来计算,(1000 / sample_rate)是每个采样多长时间,(frame_size * 1000 / sample_rate)计算出来framesize长度一个音频帧的时间长。这个值计算是以音频帧单位来计算的。 

       pts = inc++ * (frame_size * 1000 / sample_rate)

       在ffmpeg中的代码为

       pkt.pts= m_nAudioTimeStamp++ * (m_ACtx->frame_size * 1000 / m_ACtx->sample_

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大王算法

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值