音频、视频时间戳计算及每帧播放时间
来源:互联网 发布:asp.net 4高级编程pdf 编辑:程序博客网 时间:2024/06/09 14:01
av_rescale_q用于计算Packet的PTS。av_rescale_q的返回值是一个很大的整数,且每次计算的结果间隔很大。
av_rescale_q(a,b,c)是用来把时间戳从一个时基调整到另外一个时基时候用的函数。它基本的动作是计算a*b/c,但是这个函数还是必需的,因为直接计算会有溢出的情况发生。AV_TIME_BASE_Q是AV_TIME_BASE作为分母后的版本。它们是很不相同的:AV_TIME_BASE * time_in_seconds = avcodec_timestamp而AV_TIME_BASE_Q * avcodec_timestamp = time_in_seconds(注意AV_TIME_BASE_Q实际上是一个AVRational对象,所以你必需使用avcodec中特定的q函数来处理它)。
H264/90000,代表时钟频率必须是90000
背景知识:
(一个AAC原始帧包含一段时间内1024个采样及相关数据)
1. 视频时间戳
2. 音频时间戳
采样频率是指将模拟声音波形进行数字化时,每秒钟抽取声波幅度样本的次数。
。正常人听觉的频率范围大约在20Hz~20kHz之间,根据奈奎斯特采样理论,为了保证声音不失真,采样频率应该在40kHz左右。常用的音频采样频率有8kHz、11.025kHz、22.05kHz、16kHz、37.8kHz、44.1kHz、48kHz等,如果采用更高的采样频率,还可以达到DVD的音质
对采样率为44.1kHz的AAC音频进行解码时,一帧的解码时间须控制在23.22毫秒内。
背景知识:
(一个AAC原始帧包含一段时间内1024个采样及相关数据)
分析:
1 AAC
音频帧的播放时间=一个AAC帧对应的采样样本的个数/采样频率(单位为s)
一帧 1024个 sample。采样率 Samplerate 44100Hz,每秒44100个sample, 所以根据公式
当前AAC一帧的播放时间是= 1024*1000/44100= 22.32ms(单位为ms)
2 MP3
mp3 每帧均为1152个字节, 则:
frame_duration = 1152 * 1000 / sample_rate
例如:sample_rate = 44100HZ时,计算出的时长为26.122ms,这就是经常听到的mp3每帧播放时间固定为26ms的由来。
视频的帧率是会变的
- 音频、视频时间戳计算及每帧播放时间
- 音频,视频时间戳计算及每帧播放时间
- 音频、视频时间戳计算及每帧播放时间
- 计算 视频 音频帧的播放时间
- 音频播放时间计算
- 计算 音频帧的播放时间
- 计算 音频帧的播放时间
- 如何计算视频和音频的时间戳间隔时间
- 计算音频帧的播放时间(音频码流 音频帧)
- 计算音频帧的播放时间(音频码流 音频帧)
- 计算音频帧的播放时间(音频码流 音频帧)
- 视频、音频打时间戳的方法及其音视频同步(播放)原理
- 视频、音频打时间戳的方法及其音视频同步(播放)原理
- 视频、音频打时间戳的方法
- 视频、音频打时间戳的方法
- 视频、音频打时间戳的方法
- 视频、音频打时间戳的方法
- 视频、音频打时间戳的方法
- DateTime转换为字符串示例
- Yii AR模式的增删改查
- C语言中.h和.c文件解析(很精彩)
- 模拟网页行为之实践四
- SpannableString与SpannableStringBuilder(把字符串转换成图片等,字符串在textview 等控件显示不同的颜色,背景样式的方法)
- 音频、视频时间戳计算及每帧播放时间
- CSS学习、Day02
- rails 手动创建controller和model 用和model名不同的数据表 会产生的问题
- BLUP
- centos 7 密码忘记 如何进入修改
- 为什么匿名内部类和局部内部类只能访问final变量 - 2
- c语言简单实现队列
- Gson 和 json 详解
- c/c++--10个经典的C语言面试基础算法及代码