- 时间基相关结构
- 时间基种类
- 时间基转换函数
- ffmpeg中时间基特殊使用
一、ffmpeg中时间基相关数据结构:
typedef struct AVRational{
int num; ///< numerator
int den; ///< denominator
} AVRational;
二、时间基有如下几种:
不同时间基单位:
1、InputStream: 时间基 1:1000000(单位:us)
2、AVStream:时间基 1:90000(单位:s)- 根据mpeg的协议,压缩后或解压前的数据,pts和dts是90kHz时钟的采样值
3、AVCodecContext:时间基 1:framerate (单位:s)
不同结构使用的时间基种类:
1、AVPacket:使用AVStream时间基
2、AVFrame:pts使用AVCodecContext时间基;pkt_pts、pkt_dts使用AVStream时间基
3、InputStream:使用InputStream时间基
四、时间基转换函数
1、
int64_t av_rescale_q(int64_t a, AVRational bq, AVRational cq) av_const;
其中:a为待转换时间;bq为待转换时间依赖的时间基;cq为目标时间基。
上述公式等同于:
a * bq / cq
2、
void av_packet_rescale_

本文探讨了ffmpeg中时间基的相关数据结构,包括InputStream、AVStream和AVCodecContext的时间基单位。并详细介绍了时间基的转换函数,如av_rescale_q()的使用,以及在解码和编码过程中如何处理时间基的不匹配问题。内容覆盖了时间基在AVPacket、AVFrame和InputStream中的应用。
最低0.47元/天 解锁文章
7786

被折叠的 条评论
为什么被折叠?



