如何判断一个帧是否是RTMP流中的KEY帧

How to tell if a frame is a KEY frame in RTMP stream

我使用发出 RTMP 流的第三方服务器,但我无法完全控制该服务器。

但是,我仍然可以让它向我选择的任何位置发出 rtmp 流。

第三方告诉我,他们发出的关键帧速率至少为每秒 1 帧。但我只是想验证一下我自己

我尝试使用 tcpdump 检查传入的 RTMP 流。

但我想知道如何判断数据包是否包含关键帧?我如何知道关键帧到达我的服务器的频率?

我根据教程here搭建了一个nginx-rtmp服务器来反映第三方流。

然后使用ffprobe获取关键帧。

./ffprobe -select_streams v -show_frames -show_entries frame=pict_type -of csv rtmp://<server>/live/<stream-name> | grep -n I 

此命令行将输出一个索引,然后是一个包含关键字 "I" 的框架。根据wikipedia,一个"I"帧基本上就是关键帧。