再会,
我有个问题。我需要从 ffmpeg 库获得正确的帧速率..
我尝试使用
pFormatCtx->streams[videoStream]->avg_frame_rate.num
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
采样率为:23.98fps。什么值是正确的以及为什么它们不同?
小智 5
那么,里面有什么pFormatCtx->streams[videoStream]->avg_frame_rate.den?
我敢打赌就是125那时。AVStream::avg_frame_rate类型为AVRational,一种将有理数保存为分数的结构。要获得十进制值,您必须num除以den。
-> 2997 / 125 = 23.976