提供一種可能解決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
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。