一款用于调试RTMP、KMP、HTTP-FLV流时间戳的小工具。
通过这个工具,可以直观的打印出每一帧音视频的信息,包括时间戳,包大小。

一个流畅的直播视频应该符合以下三个状态

一、每一帧数据匀速打印,无停顿。如果停止打印说明无数据返回,有两种情况:第一种是推流端网络阻塞,第二种是播放端网络阻塞。这个比较好判断,使用两台机器测试,如果停顿在同一个时间点,则是推流端阻塞;分别在不同的时间点停顿,则是播流端阻塞。还需要对服务端的上下行带宽进行评估是否已达上限。

二、音视频帧交替打印
以44100采样的aac举例,aac编码一个包需要1024个采样。这时,一帧的时长就是  1000/44100*1024 约等于23.219954648526077毫秒。
如果视频是30fps,则一帧的时长是1000/30 约等于33.3333毫秒。
这时候音视频一般会是AVAVAAV的排列。
如果出现连续上10个以上同类型包,则要考虑是否是编码器音视频编码不同步。

三、时间戳增长与时钟增长频率一致
RTMP,KMP、HTTP-FLV的时间基是1/1000秒,因此通过观察单位时间内时间戳的增长数应该与时钟一致。如果不一致,常见于从其它协议转RTMP时,时间单位换算错误。如RTSP: H264/90000 PCMA/8000

下载地址:https://github.com/illuspas/tsdebugger

原创文章,转载请注明: 转载自贝壳博客

本文链接地址: TSDebugger一款直播流调试工具