如何判断直播流的时间戳是否正常

在拉流过程中,我们会发现卡顿,无法显示,黑屏等原因,这个时候,我们希望看下流的原始信息,比如码率、帧率等信息,我们可以通过 rtmp_dump来进行查看

$srs_rtmp_dump -r rtmp://test.b0.v5linux.com/live/lol >> srslog

查看文本信息

dump rtmp stream to flv file
srs(ossrs) client librtmp library.
version: 4.0.184, signature: SRDUMP/4.0.184
@refer to http://rtmpdump.mplayerhq.hu/rtmpdump.1.html
[2017-06-22 16:37:42.41][2742] rtmp url: rtmp://test.b0.v5linux.com/live/lol
[2017-06-22 16:37:42.41][2742] handshake: simple
[2017-06-22 16:37:42.41][2742] swfUrl: (null)
[2017-06-22 16:37:42.41][2742] pageUrl: (null)
[2017-06-22 16:37:42.41][2742] tcUrl: (null)
[2017-06-22 16:37:42.41][2742] timeout: 5000
[2017-06-22 16:37:42.41][2742] output to console
[2017-06-22 16:37:42.41][2742] start rtmp dump.
[2017-06-22 16:37:42.41][2742] dns resolve ok, dns=0ms/0ms
[2017-06-22 16:37:42.42][2742] tcp connect ok, tcp=7ms/7ms
[2017-06-22 16:37:42.43][2742] do simple handshake success
[2017-06-22 16:37:42.49][2742] connect ok, ip=150.138.216.166, server=UPYUN/4.0.187(BMS)/4.0.187, pid=3493337, cid=11560
[2017-06-22 16:37:42.50][2742] play stream success, play=84ms/91ms
[2017-06-22 16:37:42.51][2742] Rtmp packet id=0/0.0/0.0, type=0x14, dts=0, pts=0, ndiff=0, size=21
[2017-06-22 16:37:42.53][2742] Rtmp packet id=1/0.0/0.0, type=0x4, dts=0, pts=0, ndiff=24, size=6
[2017-06-22 16:37:42.58][2742] Rtmp packet id=2/0.0/0.0, type=0x14, dts=0, pts=0, ndiff=71, size=154
[2017-06-22 16:37:42.58][2742] Rtmp packet id=3/0.0/0.0, type=0x14, dts=0, pts=0, ndiff=71, size=148
[2017-06-22 16:37:42.58][2742] Data packet id=4/0.0/0.0, type=Data, time=0, ndiff=71, diff=0, size=24
String |RtmpSampleAccess
Boolean true
Boolean true
[2017-06-22 16:37:42.58][2742] Data packet id=5/14.2/70.4, type=Data, time=0, ndiff=0, diff=0, size=44
String onStatus
Object (1 items)
    Property 'code' String NetStream.Data.Start
[2017-06-22 16:37:42.90][2742] Data packet id=6/11.8/84.5, type=Data, time=0, ndiff=324, diff=0, size=24
String |RtmpSampleAccess
Boolean true
Boolean true
[2017-06-22 16:37:42.90][2742] Data packet id=7/56.4/17.7, type=Data, time=0, ndiff=0, diff=0, size=44
String onStatus
Object (1 items)
    Property 'code' String NetStream.Data.Start
[2017-06-22 16:37:43.32][2742] Data packet id=8/49.4/20.3, type=Data, time=0, ndiff=416, diff=0, size=24
String |RtmpSampleAccess
Boolean true
Boolean true
[2017-06-22 16:37:43.32][2742] Data packet id=9/90.1/11.1, type=Data, time=0, ndiff=0, diff=0, size=44
String onStatus
Object (1 items)
    Property 'code' String NetStream.Data.Start
[2017-06-22 16:37:43.32][2742] Data packet id=10/81.1/12.3, type=Data, time=0, ndiff=0, diff=0, size=24
String |RtmpSampleAccess
Boolean true
Boolean true
[2017-06-22 16:37:43.32][2742] Data packet id=11/73.7/13.6, type=Data, time=0, ndiff=1, diff=0, size=44
String onStatus
Object (1 items)
    Property 'code' String NetStream.Data.Start
[2017-06-22 16:37:43.32][2742] Data packet id=12/67.7/14.8, type=Data, time=0, ndiff=0, diff=0, size=24
String |RtmpSampleAccess
Boolean true
Boolean true
[2017-06-22 16:37:43.32][2742] Data packet id=13/62.5/16.0, type=Data, time=0, ndiff=0, diff=0, size=44
String onStatus
Object (1 items)
    Property 'code' String NetStream.Data.Start
[2017-06-22 16:37:43.32][2742] Video packet id=14/58.0/17.2, type=Video, dts=7, pts=7, ndiff=0, diff=0/0, size=55, H.264(SH,I)
[2017-06-22 16:37:43.32][2742] got the first audio/video, type=9, first=819ms/910ms, conn=903ms
[2017-06-22 16:37:43.32][2742] Audio packet id=15/54.1/18.5, type=Audio, dts=7, pts=7, ndiff=0, diff=0/0, size=4, AAC(44KHz,16bit,Stereo,SH)
[2017-06-22 16:37:43.32][2742] Video packet id=16/50.8/19.7, type=Video, dts=17, pts=17, ndiff=0, diff=10/10, size=369, H.264(Nalu,P/B)
[2017-06-22 16:37:43.32][2742] Audio packet id=17/47.8/20.9, type=Audio, dts=30, pts=30, ndiff=0, diff=13/23, size=481, AAC(44KHz,16bit,Stereo,Raw)
[2017-06-22 16:37:43.32][2742] Video packet id=18/45.1/22.2, type=Video, dts=50, pts=116, ndiff=0, diff=20/33, size=593, H.264(Nalu,P/B)
[2017-06-22 16:37:43.32][2742] Audio packet id=19/42.7/23.4, type=Audio, dts=53, pts=53, ndiff=0, diff=3/23, size=436, AAC(44KHz,16bit,Stereo,Raw)
[2017-06-22 16:37:43.32][2742] Audio packet id=20/40.6/24.6, type=Audio, dts=77, pts=77, ndiff=0, diff=24/24, size=476, AAC(44KHz,16bit,Stereo,Raw)
[2017-06-22 16:37:43.32][2742] Video packet id=21/38.7/25.9, type=Video, dts=84, pts=84, ndiff=0, diff=7/34, size=369, H.264(Nalu,P/B)
[2017-06-22 16:37:43.32][2742] Audio packet id=22/36.9/27.1, type=Audio, dts=100, pts=100, ndiff=0, diff=16/23, size=475, AAC(44KHz,16bit,Stereo,Raw)
[2017-06-22 16:37:43.32][2742] Video packet id=23/35.3/28.3, type=Video, dts=117, pts=183, ndiff=0, diff=17/33, size=593, H.264(Nalu,P/B)
[2017-06-22 16:37:43.32][2742] Audio packet id=24/33.8/29.6, type=Audio, dts=123, pts=123, ndiff=0, diff=6/23, size=477, AAC(44KHz,16bit,Stereo,Raw)

其中我们主要看类似下面的信息

[2017-06-22 16:37:43.32][2742] Audio packet id=24/33.8/29.6, type=Audio, dts=123, pts=123, ndiff=0, diff=6/23, size=477, AAC(44KHz,16bit,Stereo,Raw)

如果说出现类似这样的现象,则推流端要检查下编码器是否有问题