音频-帧率-音视频同步
音频 帧率 音视频同步
录制 视频 过程中,视频帧率视频设置帧率为25, 而此时 从采集设备过来的 数据流也是25frame/s ,如是 我十分好奇音频有没有类似帧率一说,
百度到如下资料:感觉十分 清楚的说明了 该问题:
采样率Sample Rate指单位时间内对媒体对象的采样次数,单位Hz(这句话好像和原来不太一样,郁闷)。
帧率(Frame per second,fps),单位时间内媒体帧的个数。
这两个概念都描述了媒体的“连续”性,二者的区别在于一个Frame可能包含多个Sample。 一般每个视频帧中只包含一个视频采样,而音频帧中会包含多个音频采样 。如 1个AAC帧中包含1024个采样 。所以, 帧率常用在视频方面,采样率常用于音频方面 。采样率(帧率)越高,媒体越流畅,当然人的感受就越过瘾。但是,由于人的视/听器官分辨能力的局限,往往这些数值达到末各程度就可以满足人对“连续”性的需求了。比如,对采样率高于44.1kHz的声音,人很难听出区别了。对帧率高于30的视频,人很难看出帧率的区别。
比特率(bps或kbps),与前面两个概念不同,它描述了单位时间长度的媒体内容需要空间。当然该值越高,每个采样的信息量就越大,对这个采样的描述就越精确。
对于人的感受来说,当然上述数值越大越好,但是这总是会受到网络带宽和处理设备能力的限制。所以,媒体工程师会取一个折中的数值来制作媒体内容,在符合能力的范围内,提供最佳的体验。
例子:一张CD,双声道,采样率44.1kHz每个采样13bit,时长74分钟(4440秒),则CD的容量为13244100*4440约等于640MB
来源;
这篇文章 如此刚好解释了 为什么配置 采集设备,声音需要配置采样率.
而实际项目中,我发现设置为31k采样的 音频,每秒受到的数据frame 为:31.(AAC音频 每个frame包含了1024个采样).(参考faac 库的使用)
faac 库的使用,已经明确了对aac输出的帧率要求:
实际使用情况是 : 对于单声道 48000k 采样数据. 打开faac编码器的时候,返回的输入数据长度是 1024(对于双声道长度2048), 因此
音频fps = 1024*1000/samplerate:
duration = 1/fps;
对与 44K 采样:
AAC 包输出时间间隔为: 44100/1024= 43.0666(ms).
fps = 1024/44100 ~0.02321
对于用mp4v2 封装为 mp4 文件的音视频同步 问题. 只要控制好 音视频的帧率,也会解决.