2015-09-20 97 views
0

美好的一天,从ffmpeg获取正确的帧率

我遇到了问题。我需要得到的ffmpeg库正确的帧率..

我试图使用

pFormatCtx->streams[videoStream]->avg_frame_rate.num 

avg_frame_rate的回报是2997.但是,当我甩元信息,我得到:

Input #0, avi, from '/test.avi': 
    Metadata: 
    encoder   : MEncoder SVN-r33883(20110719-gcc4.5.2) 
    Duration: 00:49:47.70, start: 0.000000, bitrate: 1294 kb/s 
    Stream #0:0: Video: mpeg4 (Advanced Simple Profile) (XVID/0x44495658), yuv420p, 856x480 [SAR 1:1 DAR 107:60], 1090 kb/s, SAR 491520:492521 DAR 8192:4603, 23.98 fps, 23.98 tbr, 23.98 tbn, 23.98 tbc 
    Stream #0:1: Audio: mp3 (U[0][0][0]/0x0055), 48000 Hz, stereo, s16p, 192 kb/s 
2015-09-20 15:47:02.377 TV3[21607:769601] ready to start audio 

采样率:23.98fps。什么样的价值是正确的,它们为什么不同?

回答

2

那么,什么是pFormatCtx->streams[videoStream]->avg_frame_rate.den

那我打赌它是125AVStream::avg_frame_rateAVRational的类型,它是一个有理数作为分数的结构。要获得小数值,您必须将num除以den

-> 2997/125 = 23.976

+0

你说得对,我的错。 – JaSHin