sample_rate(采样率),sample(采样),duration(时长)是什么关系?
发现一个音频包解成一个frame 之后,有以下数据 nb_samples = 1024 sample_rate = 48000 pkt_duration = 1920 pkt_size = 427 这些值到底是什么关系?
pkt_size = 427 427 bytes nb_samples = 1024 解码后获得1024个采样数据 sample_rate = 48000 表示每秒需要播出48K 数据 pkt_duration = 1920
sample_rate:采样率, 每秒采样次数 48000HZ,每个sample1/48000秒 nb_samples: 采样次数 音频播放时间, nb_samples 采样点所能播放的时间 duration_s=nb_samples*(1/48000)秒,
duration 单位不是秒,也不是毫秒,而是AVStream 时基的个数. duration=duration_s / av_q2d(st->time_base) st->time_base 是 (1,90k), 则av_q2d=1/90k 所以duration 实际上秒数乘以90K
则: duration = 1024 * 1/48K *90K = 1920
特例: 如果令st->time_base == sample_rate, 则duration=nb_samples.
另外, pts 是按 duration 来递长的。