ffmpeg -r 30, 那么一秒钟发出的rtmp msg包应该为30个左右。
但实际上,
2017/02/23 13:48:36 [debug] 5325#5325: *16 RTMP recv video (9) csid=4 timestamp=56200 mlen=2773 msid=1 nbufs=22
2017/02/23 13:48:36 [debug] 5325#5325: *16 RTMP recv video (9) csid=4 timestamp=56267 mlen=1766 msid=1 nbufs=14
2017/02/23 13:48:37 [debug] 5325#5325: *16 RTMP recv video (9) csid=4 timestamp=56333 mlen=1285 msid=1 nbufs=11
2017/02/23 13:48:37 [debug] 5325#5325: *16 RTMP recv video (9) csid=4 timestamp=56400 mlen=6621 msid=1 nbufs=52
2017/02/23 13:48:37 [debug] 5325#5325: *16 RTMP recv video (9) csid=4 timestamp=56467 mlen=1400 msid=1 nbufs=11
2017/02/23 13:48:37 [debug] 5325#5325: *16 RTMP recv video (9) csid=4 timestamp=56533 mlen=1432 msid=1 nbufs=12
2017/02/23 13:48:37 [debug] 5325#5325: *16 RTMP recv video (9) csid=4 timestamp=56600 mlen=427 msid=1 nbufs=4
2017/02/23 13:48:37 [debug] 5325#5325: *16 RTMP recv video (9) csid=4 timestamp=56667 mlen=4685 msid=1 nbufs=37
2017/02/23 13:48:37 [debug] 5325#5325: *16 RTMP recv video (9) csid=4 timestamp=56733 mlen=958 msid=1 nbufs=8
2017/02/23 13:48:37 [debug] 5325#5325: *16 RTMP recv video (9) csid=4 timestamp=56800 mlen=313 msid=1 nbufs=3
2017/02/23 13:48:37 [debug] 5325#5325: *16 RTMP recv video (9) csid=4 timestamp=56867 mlen=607 msid=1 nbufs=5
2017/02/23 13:48:37 [debug] 5325#5325: *16 RTMP recv video (9) csid=4 timestamp=56933 mlen=7603 msid=1 nbufs=60
2017/02/23 13:48:37 [debug] 5325#5325: *16 RTMP recv video (9) csid=4 timestamp=57000 mlen=2949 msid=1 nbufs=24
2017/02/23 13:48:37 [debug] 5325#5325: *16 RTMP recv video (9) csid=4 timestamp=57067 mlen=1235 msid=1 nbufs=10
2017/02/23 13:48:37 [debug] 5325#5325: *16 RTMP recv video (9) csid=4 timestamp=57133 mlen=1565 msid=1 nbufs=13
2017/02/23 13:48:37 [debug] 5325#5325: *16 RTMP recv video (9) csid=4 timestamp=57200 mlen=6834 msid=1 nbufs=54
2017/02/23 13:48:37 [debug] 5325#5325: *16 RTMP recv video (9) csid=4 timestamp=57267 mlen=3512 msid=1 nbufs=28
2017/02/23 13:48:38 [debug] 5325#5325: *16 RTMP recv video (9) csid=4 timestamp=57333 mlen=1776 msid=1 nbufs=14
2017/02/23 13:48:38 [debug] 5325#5325: *16 RTMP recv video (9) csid=4 timestamp=57400 mlen=1191 msid=1 nbufs=10
可以看出一秒钟只收到了 15个包。并且timestamp间隔也是按照fps =15来标记的。不知道为什么。
frame= 1097 fps= 16 q=27.0 size= 3407kB time=00:01:14.44 bitrate= 374.9kbits/ ffmpeg日志也是显示帧率是16. 而不是-r参数所指定的frame= 1106 fps= 16 q=27.0 size= 3461kB time=00:01:15.05 bitrate= 377.7kbits/
frame= 1115 fps= 16 q=27.0 size= 3511kB time=00:01:15.63 bitrate= 380.3kbits/
frame= 1124 fps= 16 q=27.0 size= 3570kB time=00:01:16.20 bitrate= 383.8kbits/
frame= 1133 fps= 16 q=27.0 size= 3613kB time=00:01:16.84 bitrate= 385.2kbits/
frame= 1142 fps= 16 q=27.0 size= 3680kB time=00:01:17.42 bitrate= 389.3kbits/
试了 -r 1 -r 60等参数, 都不准确。并且暂时没发现规律。
而ffmpeg -g参数为设置 gop_size,I帧间隔。这个基本上是准确的。ffmpeg -g 240。那么可以看到 每240个包左右会收到一个0x17打头的rtmp包。