<1>音频采样率和音频比特率关系
采样率:每秒采样的个数(不包含采样的数据长度,也就是采样格式,)
音频的比特率公式: 比特率=采样率 * 单个的周期音频数据长度 。
如16bit 双声道 48KHz音频的比特率
- 48KHz * (16 * 2) = 1536kbps = 192 kBps
文件大小 size=采样率*声道数*采样位数/8 * 秒数
<2>视频修改帧率的原理
情景:原文件帧率29.97,目标文件帧率25
规则:需要先把原文件的每一帧取出来放到队列数组中,需要把原始的数据放入队列存起来, 然后需要的去取出来, 取离需要的pts最近的那个, 比如你原始的的pts是1 2 3 4 5 6 7 8 9 1010个, 然后你现在需要 1 3 6 9四个,要1的时候直接取出1,要3的时候比对完发现3是最合适的, 以此类推下去
1,3,6,9又是基于1/25得到
<3>音频修改采样率原理
情景:48000采样率文件转44100采样率文件
首先要理解采样率,采样数,比特率直接关系,是以单通道作为解释
可参考大神博客https://blog.csdn.net/bixinwei22/article/details/86545497
采样率:每秒中采样的个数 AAC常用44100.每个数的大小又和你采样的格式相关,现在aac常用fltp是32位
采样数:一帧数据中包含的采样个数
比特率:就是单位时间内输出的数据量=采样率 * fmt * 通道数
我们看到他人写的音频转码代码有的使用了fifo有的没有使用fifo,这是两种方案
根据上面大神博客可知道采样率不一样,导致每帧的采样数
<4>解码器参数
decoder_v_ctx->framerate可能在创建解码器时得不到真实值,可在获取文件信息后获取