ffmpeg 分数的表示形态

提供一种可能解决avformat_find_stream_info耗时问题方案之前,先了解一些基本的ffmpeg的知识点

先看代码


pFormatContext->streams[video_index]->time_base.den = 1200000;

pFormatContext->streams[video_index]->time_base.num = 1;

//avg_frame_rate 获取帧率

pFormatContext->streams[video_index]->avg_frame_rate.den = 1;

pFormatContext->streams[video_index]->avg_frame_rate.num = 25;

pFormatContext->streams[video_index]->r_frame_rate.den = 25;

pFormatContext->streams[video_index]->r_frame_rate.num = 1;


注意到每一个结构体都有一个den和num的成员变量

通过查看声明,了解到上述的结构体其实是这样子的一个类型

/**

 * Rational number (pair of numerator and denominator).

 */


typedef struct AVRational

{

    int num; ///< Numerator

 分子   

int den; ///< Denominator 分母

 } AVRational;


由于分数表现形式不方便计算,因此提供了上面的一种结构体保存分子和分母,等

需要进行计算的时候,才进行除法运算,ffmpeg提供了如下的模板进行除法运算

/**

 * Convert rational to double.

 * @param a rational to convert

 * @return (double) a

 */


static inline double av_q2d(AVRational a)

{

    return a.num / (double) a.den;

}



参考

http://www.jianshu.com/p/66b13b2b2979





     本文转自fengyuzaitu 51CTO博客,原文链接:http://blog.51cto.com/fengyuzaitu/1983016,如需转载请自行联系原作者
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值