音频、视频时间戳计算及每帧播放时间
来源:互联网 发布:花都金蝶软件 编辑:程序博客网 时间:2024/06/17 12:45
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的由来。
视频的帧率是会变的
- 音频、视频时间戳计算及每帧播放时间
- 音频,视频时间戳计算及每帧播放时间
- 音频、视频时间戳计算及每帧播放时间
- 计算 视频 音频帧的播放时间
- 音频播放时间计算
- 计算 音频帧的播放时间
- 计算 音频帧的播放时间
- 如何计算视频和音频的时间戳间隔时间
- 计算音频帧的播放时间(音频码流 音频帧)
- 计算音频帧的播放时间(音频码流 音频帧)
- 计算音频帧的播放时间(音频码流 音频帧)
- 视频、音频打时间戳的方法及其音视频同步(播放)原理
- 视频、音频打时间戳的方法及其音视频同步(播放)原理
- 视频、音频打时间戳的方法
- 视频、音频打时间戳的方法
- 视频、音频打时间戳的方法
- 视频、音频打时间戳的方法
- 视频、音频打时间戳的方法
- \/Date(1513130414572)\/ 格式转换
- 江哥案之后,江妈妈应该怎样生活
- 开源地图导航引擎:graphhopper
- php实现换一换功能
- AngualarJS中$watch
- 音频、视频时间戳计算及每帧播放时间
- 排序算法总结
- C# 线程池ThreadPool的用法简析
- 正则
- java获取配置文件内容
- Throwable类
- 周报总结(12.4)
- ubuntu redis-cli服务启动命令
- Asteroid Collision问题及解法