ossrs / srs

SRS is a simple, high-efficiency, real-time video server supporting RTMP, WebRTC, HLS, HTTP-FLV, SRT, MPEG-DASH, and GB28181.

Home Page:https://ossrs.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Docker source station cluster, two-way streaming cannot be played simultaneously

XCY2018 opened this issue · comments

commented

Overview

Deployment of Two Origin Server Clusters and an Edge Server Using Docker

Deploy two origin server clusters and an edge server using Docker. The two streaming sources will be pushed to the two origin servers respectively, and VLC will play the RTMP stream from the edge server.

Question

  • Occasionally, we can play together, but most of the time we can only play videos from one source site.

  • Deployment Environment

  • Origin Server, EDGE:

  • CentOS 7 (virtual machine), pulled SRS 3.0 from Docker Hub.

  • Configuration file for origin server A:

# the config for srs origin-origin cluster
# @see https://github.com/ossrs/srs/wiki/v3_EN_OriginCluster
# @see full.conf for detail config.

listen              1935;
max_connections     1000;
daemon              off;
srs_log_tank        console;
pid                 ./objs/origin.cluster.serverA.pid;
http_api {
    enabled         on;
    listen          9090;
}
vhost __defaultVhost__ {
    cluster {
        mode            local;
        origin_cluster  on;
        coworkers       192.168.0.59:9090;
    }
}
  • Configuration file for origin server B:

# the config for srs origin-origin cluster
# @see https://github.com/ossrs/srs/wiki/v3_EN_OriginCluster
# @see full.conf for detail config.

listen              1935;
max_connections     1000;
daemon              off;
srs_log_tank        console;
pid                 ./objs/origin.cluster.serverB.pid;
http_api {
    enabled         on;
    listen          9090;
}
vhost __defaultVhost__ {
    cluster {
        mode            local;
        origin_cluster  on;
        coworkers       192.168.0.60:9090;
    }
}
  • Edge configuration file:

# the config for srs origin-edge cluster
# @see https://github.com/ossrs/srs/wiki/v3_EN_OriginCluster
# @see full.conf for detail config.

listen              1935;
max_connections     1000;
pid                 objs/edge.pid;
daemon              off;
srs_log_tank        console;
vhost __defaultVhost__ {
    cluster {
        mode            remote;                              
        origin          192.168.0.60:1935 192.168.0.59:1935;
    }
}
  • Live streaming:

  • Windows 10 (Virtual Machine), OBS Studio 24.0.3,

Streaming test1 configuration:

image

Streaming test2 configuration:

image

Player:

win10 (local), VLC media player 3.0.8

test1 playback:

image

test2 playback:

image

TRANS_BY_GPT3

First praise, the description is very clear, I will see if I can reproduce it.

TRANS_BY_GPT3

Unable to reproduce the issue, please provide:

  1. SRS version number.
  2. Edge logs.

TRANS_BY_GPT3

Also, could you please provide some additional information on how to start SRS using Docker?

TRANS_BY_GPT3

https://hub.docker.com/r/ossrs/srs

Launch Docker according to the instructions here.

TRANS_BY_GPT3

docker pull ossrs/srs:3.0

docker run -v /root/config.conf:/srs/conf/docker.conf -p 1935:1935 -p 8080:8080 -p 9090:9090 ossrs/srs:3.0

commented

Pulling the new SRS:3 using Docker, both streams are now playing normally. The Xshell running on the edge is giving a prompt. Is there any impact?
image

TRANS_BY_GPT3

servA,IP 192.168.0.60

[BEGIN] 2019/11/30 14:23:14
A.conf:/usr/local/srs/conf/srs.conf ossrs/srs:3
[2019-11-30 06:23:30.234][Trace][1][0] XCORE-SRS/3.0.60(OuXuli)
[2019-11-30 06:23:30.234][Trace][1][0] config parse complete
[2019-11-30 06:23:30.234][Trace][1][0] write log to console
[2019-11-30 06:23:30.234][Trace][1][0] SRS/3.0.60(OuXuli)
[2019-11-30 06:23:30.234][Trace][1][0] license: The MIT License (MIT)
[2019-11-30 06:23:30.234][Trace][1][0] contributors: winlin<winlin@vip.126.com> wenjie.zhao<740936897@qq.com> xiangcheng.liu<liuxc0116@foxmail.com> naijia.liu<youngcow@youngcow.net> alcoholyi<alcoholyi@qq.com> byteman<wangchen2011@gmail.com> chad.wang<chad.wang.cn@gmail.com> suhetao<suhetao@gmail.com> Johnny<fengjihu@163.com> karthikeyan<keyanmca@gmail.com> StevenLiu<lq@chinaffmpeg.org> zhengfl<zhengfl_1989@126.com> tufang14<breadbean1449@gmail.com> allspace<allspace@gmail.com> niesongsong<nie950@gmail.com> rudeb0t<nimrod@themanxgroup.tw> CallMeNP<np.liamg@gmail.com> synote<synote@qq.com> lovecat<littlefawn@163.com> panda1986<542638787@qq.com> YueHonghui<hongf.yue@hotmail.com> ThomasDreibholz<dreibh@simula.no> JuntaoLiu<juntliu@gmail.com> RocFang<fangpeng1986@gmail.com> MakarovYaroslav<yaroslav.makarov.97@mail.ru> MirkoVelic<mvelic@inoxx.net> HuiZhang(huzhang2)<huzhang2@cisco.com> OtterWa<simpleotter23@gmail.com> walkermi<172192667@qq.com> haofz<fuzhuang.hao@vhall.com> ME_Kun_Han<hanvskun@hotmail.com> ljx0305<ljx0305@gmail.com> cenxinwei<censhanhe@163.com> StarBrilliant<m13253@hotmail.com> xubin<xubin@chnvideo.com> intliang<yintiliang@gmail.com> flowerwrong<sysuyangkang@gmail.com> 
[2019-11-30 06:23:30.234][Trace][1][0] build: 2019-11-30 04:25:36, configure:--x86-x64 , uname: Linux 3b43bfff84ee 4.9.60-linuxkit-aufs #1 SMP Mon Nov 6 16:00:12 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
[2019-11-30 06:23:30.234][Trace][1][0] configure detail: --prefix=/usr/local/srs --with-hls --with-hds --with-dvr --without-nginx --with-ssl --without-ffmpeg --with-transcode --with-ingest --with-stat --with-http-callback --with-http-server --with-stream-caster --with-http-api --with-librtmp --without-research --with-utest --without-gperf --without-gmc --without-gmd --without-gmp --without-gcp --without-gprof --without-arm-ubuntu12 --without-mips-ubuntu12 --log-trace
[2019-11-30 06:23:30.234][Trace][1][0] cwd=/usr/local/srs, work_dir=./
[2019-11-30 06:23:30.234][Trace][1][0] srs checking config...
[2019-11-30 06:23:30.235][Trace][1][0] ips, iface[0] eth0 ipv4 0x11043 172.17.0.2
[2019-11-30 06:23:30.235][Trace][1][0] devices, intranet eth0 172.17.0.2
[2019-11-30 06:23:30.235][Warn][1][0][0] stats network use index=0, ip=172.17.0.2
[2019-11-30 06:23:30.235][Warn][1][0][0] stats disk not configed, disk iops disabled.
[2019-11-30 06:23:30.235][Trace][1][0] write log to console
[2019-11-30 06:23:30.235][Trace][1][0] features, rch:on, dash:on, hls:on, hds:on, hc:on, ha:on, hs:on, hp:on, dvr:on, trans:on, inge:on, stat:on, nginx:off, ff:off, sc:on
[2019-11-30 06:23:30.235][Trace][1][0] SRS on  amd64 x86_64, glibc2.17, conf:conf/srs.conf, limit:1000, writev:1024, encoding:little-endian, HZ:100
[2019-11-30 06:23:30.235][Trace][1][0] mw sleep:350ms. mr enabled:on, default:0, sleep:350ms
[2019-11-30 06:23:30.235][Trace][1][0] gc:on, pq:30000ms, cscc:[0,16), csa:on, tn:on(may hurts performance), ss:auto(guess by merged write)
[2019-11-30 06:23:30.235][Trace][1][0] system default latency(ms): mw(0-350) + mr(0-350) + play-queue(0-30000)
[2019-11-30 06:23:30.235][Warn][1][0][0] Develop is unstable, please use branch: git checkout -b 2.0release origin/2.0release
[2019-11-30 06:23:30.235][Trace][1][0] http: root mount to ./objs/nginx/html
[2019-11-30 06:23:30.235][Trace][1][0] st_init success, use epoll
[2019-11-30 06:23:30.235][Trace][1][100] server main cid=100, pid=1, ppid=0, asprocess=0
[2019-11-30 06:23:30.235][Trace][1][100] write pid=1 to ./objs/origin.cluster.serverA.pid success!
[2019-11-30 06:23:30.235][Trace][1][100] RTMP listen at tcp://0.0.0.0:1935, fd=7
[2019-11-30 06:23:30.235][Trace][1][100] HTTP-API listen at tcp://0.0.0.0:9090, fd=8
[2019-11-30 06:23:30.235][Trace][1][100] signal installed, reload=1, reopen=10, grace_quit=15
[2019-11-30 06:23:30.235][Trace][1][100] http: api mount /console to ./objs/nginx/html/console
[2019-11-30 06:23:47.357][Trace][1][105] RTMP client ip=172.17.0.2, fd=9
[2019-11-30 06:23:47.360][Trace][1][105] simple handshake success.
[2019-11-30 06:23:47.360][Trace][1][105] connect app, tcUrl=rtmp://192.168.0.60/video, pageUrl=, swfUrl=rtmp://192.168.0.60/video, schema=rtmp, vhost=192.168.0.60, port=1935, app=video, args=null
[2019-11-30 06:23:47.402][Trace][1][105] client identified, type=fmle-publish, vhost=192.168.0.60, app=video, stream=test1, param=, duration=0ms
[2019-11-30 06:23:47.403][Trace][1][105] connected stream, tcUrl=rtmp://192.168.0.60/video, pageUrl=, swfUrl=rtmp://192.168.0.60/video, schema=rtmp, vhost=__defaultVhost__, port=1935, app=video, stream=test1, param=, args=null
[2019-11-30 06:23:47.403][Trace][1][105] source url=/video/test1, ip=172.17.0.2, cache=1, is_edge=0, source_id=-1[-1]
[2019-11-30 06:23:47.445][Trace][1][105] ignore disabled exec for vhost=__defaultVhost__
[2019-11-30 06:23:47.445][Trace][1][105] start publish mr=0/350, p1stpt=20000, pnt=5000, tcp_nodelay=0
[2019-11-30 06:23:47.485][Trace][1][105] got metadata, width=1272, height=694
[2019-11-30 06:23:48.058][Trace][1][105] protocol in.buffer=0, in.ack=0, out.ack=2500000, in.chunk=4096, out.chunk=60000
[2019-11-30 06:23:48.058][Trace][1][105] 7B audio sh, codec(10, profile=LC, 2channels, 0kbps, 44100HZ), flv(16bits, 2channels, 44100HZ)
[2019-11-30 06:23:48.058][Trace][1][105] 46B video sh,  codec(7, profile=High, level=3.1, 1280x704, 0kbps, 0.0fps, 0.0s)
[2019-11-30 06:23:54.238][Trace][1][106] RTMP client ip=172.17.0.2, fd=10
[2019-11-30 06:23:54.242][Trace][1][106] complex handshake success
[2019-11-30 06:23:54.243][Trace][1][106] connect app, tcUrl=rtmp://192.168.0.60/video, pageUrl=, swfUrl=, schema=rtmp, vhost=192.168.0.60, port=1935, app=video, args=(obj)
[2019-11-30 06:23:54.243][Trace][1][106] edge-srs ip=172.17.0.2, version=3.0.60, pid=1, id=105
[2019-11-30 06:23:54.284][Trace][1][106] client identified, type=Play, vhost=192.168.0.60, app=video, stream=test1, param=?&vhost=192.168.0.60, duration=-1ms
[2019-11-30 06:23:54.284][Trace][1][106] connected stream, tcUrl=rtmp://192.168.0.60/video, pageUrl=, swfUrl=, schema=rtmp, vhost=__defaultVhost__, port=1935, app=video, stream=test1, param=?&vhost=192.168.0.60, args=(obj)
[2019-11-30 06:23:54.285][Trace][1][106] source url=/video/test1, ip=172.17.0.2, cache=1, is_edge=0, source_id=105[105]
[2019-11-30 06:23:54.285][Trace][1][106] dispatch cached gop success. count=370, duration=5081
[2019-11-30 06:23:54.285][Trace][1][106] create consumer, queue_size=0.00, jitter=30000000
[2019-11-30 06:23:54.285][Trace][1][106] set fd=10, SO_SNDBUF=87040=>175000, buffer=350ms
[2019-11-30 06:23:54.285][Trace][1][106] start play smi=0ms, mw_sleep=350, mw_enabled=1, realtime=0, tcp_nodelay=0
[2019-11-30 06:23:54.285][Warn][1][106][11] resize iovs 256 => 512, max_msgs=128
[2019-11-30 06:23:54.288][Trace][1][106] protocol in.buffer=1000, in.ack=2500000, out.ack=2500000, in.chunk=128, out.chunk=60000
[2019-11-30 06:23:59.885][Warn][1][106][104] client disconnect peer. ret=1007
[2019-11-30 06:24:00.013][Trace][1][107] RTMP client ip=172.17.0.2, fd=10
[2019-11-30 06:24:00.016][Trace][1][107] complex handshake success
[2019-11-30 06:24:00.057][Trace][1][107] connect app, tcUrl=rtmp://192.168.0.60/video, pageUrl=, swfUrl=, schema=rtmp, vhost=192.168.0.60, port=1935, app=video, args=(obj)
[2019-11-30 06:24:00.057][Trace][1][107] edge-srs ip=172.17.0.2, version=3.0.60, pid=1, id=107
[2019-11-30 06:24:00.099][Trace][1][107] client identified, type=Play, vhost=192.168.0.60, app=video, stream=test2, param=?&vhost=192.168.0.60, duration=-1ms
[2019-11-30 06:24:00.099][Trace][1][107] connected stream, tcUrl=rtmp://192.168.0.60/video, pageUrl=, swfUrl=, schema=rtmp, vhost=__defaultVhost__, port=1935, app=video, stream=test2, param=?&vhost=192.168.0.60, args=(obj)
[2019-11-30 06:24:00.099][Trace][1][107] source url=/video/test2, ip=172.17.0.2, cache=1, is_edge=0, source_id=-1[-1]
[2019-11-30 06:24:00.102][Trace][1][107] ignore private address: 172.17.0.2
[2019-11-30 06:24:00.102][Warn][1][107][11] use private address as ip: 172.17.0.2
[2019-11-30 06:24:00.102][Trace][1][107] http: cluster redirect 172.17.0.2:1935 ok, url=http://192.168.0.59:9090/api/v1/clusters?vhost=__defaultVhost__&ip=192.168.0.60&app=video&stream=test2, response={"code":0,"data":{"query":{"ip":"192.168.0.60","vhost":"__defaultVhost__","app":"video","stream":"test2"},"origin":{"ip":"172.17.0.2","port":1935,"vhost":"__defaultVhost__","api":"172.17.0.2:9090","routers":["172.17.0.2:9090"]}}}
[2019-11-30 06:24:00.102][Trace][1][107] rtmp: redirect in cluster, from=192.168.0.60:1935, target=172.17.0.2:1935, url=http://192.168.0.59:9090/api/v1/clusters?vhost=__defaultVhost__&ip=192.168.0.60&app=video&stream=test2
[2019-11-30 06:24:00.140][Trace][1][107] client finished.
[2019-11-30 06:24:08.264][Trace][1][108] RTMP client ip=172.17.0.2, fd=10
[2019-11-30 06:24:08.266][Warn][1][108][11] regenerate 128B key, current=127B
[2019-11-30 06:24:08.269][Trace][1][108] complex handshake success
[2019-11-30 06:24:08.269][Trace][1][108] connect app, tcUrl=rtmp://172.17.0.2/video, pageUrl=, swfUrl=, schema=rtmp, vhost=172.17.0.2, port=1935, app=video, args=(obj)
[2019-11-30 06:24:08.269][Trace][1][108] edge-srs ip=172.17.0.2, version=3.0.60, pid=1, id=107
[2019-11-30 06:24:08.309][Trace][1][108] client identified, type=Play, vhost=172.17.0.2, app=video, stream=test2, param=?&vhost=172.17.0.2, duration=-1ms
[2019-11-30 06:24:08.309][Trace][1][108] connected stream, tcUrl=rtmp://172.17.0.2/video, pageUrl=, swfUrl=, schema=rtmp, vhost=__defaultVhost__, port=1935, app=video, stream=test2, param=?&vhost=172.17.0.2, args=(obj)
[2019-11-30 06:24:08.310][Trace][1][108] source url=/video/test2, ip=172.17.0.2, cache=1, is_edge=0, source_id=-1[-1]
[2019-11-30 06:24:08.313][Trace][1][108] http: cluster redirect 172.17.0.2:1935 ok, url=http://192.168.0.59:9090/api/v1/clusters?vhost=__defaultVhost__&ip=172.17.0.2&app=video&stream=test2, response={"code":0,"data":{"query":{"ip":"172.17.0.2","vhost":"__defaultVhost__","app":"video","stream":"test2"},"origin":{"ip":"172.17.0.2","port":1935,"vhost":"__defaultVhost__","api":"172.17.0.2:9090","routers":["172.17.0.2:9090"]}}}
[2019-11-30 06:24:08.313][Trace][1][108] rtmp: redirect in cluster, from=172.17.0.2:1935, target=172.17.0.2:1935, url=http://192.168.0.59:9090/api/v1/clusters?vhost=__defaultVhost__&ip=172.17.0.2&app=video&stream=test2
[2019-11-30 06:24:08.350][Trace][1][108] client finished.
[2019-11-30 06:24:12.445][Trace][1][105] <- CPB time=20002485, okbps=1,0,0, ikbps=1277,0,0, mr=0/350, p1stpt=20000, pnt=5000
[2019-11-30 06:24:16.476][Trace][1][109] RTMP client ip=172.17.0.2, fd=10
[2019-11-30 06:24:16.479][Trace][1][109] complex handshake success
[2019-11-30 06:24:16.480][Trace][1][109] connect app, tcUrl=rtmp://172.17.0.2/video, pageUrl=, swfUrl=, schema=rtmp, vhost=172.17.0.2, port=1935, app=video, args=(obj)
[2019-11-30 06:24:16.480][Trace][1][109] edge-srs ip=172.17.0.2, version=3.0.60, pid=1, id=107
[2019-11-30 06:24:16.521][Trace][1][109] client identified, type=Play, vhost=172.17.0.2, app=video, stream=test2, param=?&vhost=172.17.0.2, duration=-1ms
[2019-11-30 06:24:16.521][Trace][1][109] connected stream, tcUrl=rtmp://172.17.0.2/video, pageUrl=, swfUrl=, schema=rtmp, vhost=__defaultVhost__, port=1935, app=video, stream=test2, param=?&vhost=172.17.0.2, args=(obj)
[2019-11-30 06:24:16.522][Trace][1][109] source url=/video/test2, ip=172.17.0.2, cache=1, is_edge=0, source_id=-1[-1]
[2019-11-30 06:24:16.525][Trace][1][109] http: cluster redirect 172.17.0.2:1935 ok, url=http://192.168.0.59:9090/api/v1/clusters?vhost=__defaultVhost__&ip=172.17.0.2&app=video&stream=test2, response={"code":0,"data":{"query":{"ip":"172.17.0.2","vhost":"__defaultVhost__","app":"video","stream":"test2"},"origin":{"ip":"172.17.0.2","port":1935,"vhost":"__defaultVhost__","api":"172.17.0.2:9090","routers":["172.17.0.2:9090"]}}}
[2019-11-30 06:24:16.525][Trace][1][109] rtmp: redirect in cluster, from=172.17.0.2:1935, target=172.17.0.2:1935, url=http://192.168.0.59:9090/api/v1/clusters?vhost=__defaultVhost__&ip=172.17.0.2&app=video&stream=test2
[2019-11-30 06:24:16.562][Trace][1][109] client finished.
[2019-11-30 06:24:21.849][Trace][1][110] api get peer ip success. ip=172.17.0.2
[2019-11-30 06:24:21.850][Trace][1][110] HTTP API POST http://192.168.0.60:9090/api/v1/clusters?vhost=__defaultVhost__&ip=192.168.0.59&app=video&stream=test1, content-length=0, chunked=0/0
[2019-11-30 06:24:21.852][Warn][1][110][104] client disconnect peer. ret=1007
[2019-11-30 06:24:22.445][Trace][1][105] <- CPB time=30007583, okbps=0,0,0, ikbps=1325,1275,0, mr=0/350, p1stpt=20000, pnt=5000
[2019-11-30 06:24:24.685][Trace][1][111] RTMP client ip=172.17.0.2, fd=10
[2019-11-30 06:24:24.688][Trace][1][111] complex handshake success
[2019-11-30 06:24:24.728][Trace][1][111] connect app, tcUrl=rtmp://172.17.0.2/video, pageUrl=, swfUrl=, schema=rtmp, vhost=172.17.0.2, port=1935, app=video, args=(obj)
[2019-11-30 06:24:24.728][Trace][1][111] edge-srs ip=172.17.0.2, version=3.0.60, pid=1, id=107
[2019-11-30 06:24:24.769][Trace][1][111] client identified, type=Play, vhost=172.17.0.2, app=video, stream=test2, param=?&vhost=172.17.0.2, duration=-1ms
[2019-11-30 06:24:24.769][Trace][1][111] connected stream, tcUrl=rtmp://172.17.0.2/video, pageUrl=, swfUrl=, schema=rtmp, vhost=__defaultVhost__, port=1935, app=video, stream=test2, param=?&vhost=172.17.0.2, args=(obj)
[2019-11-30 06:24:24.769][Trace][1][111] source url=/video/test2, ip=172.17.0.2, cache=1, is_edge=0, source_id=-1[-1]
[2019-11-30 06:24:24.772][Trace][1][111] http: cluster redirect 172.17.0.2:1935 ok, url=http://192.168.0.59:9090/api/v1/clusters?vhost=__defaultVhost__&ip=172.17.0.2&app=video&stream=test2, response={"code":0,"data":{"query":{"ip":"172.17.0.2","vhost":"__defaultVhost__","app":"video","stream":"test2"},"origin":{"ip":"172.17.0.2","port":1935,"vhost":"__defaultVhost__","api":"172.17.0.2:9090","routers":["172.17.0.2:9090"]}}}
[2019-11-30 06:24:24.772][Trace][1][111] rtmp: redirect in cluster, from=172.17.0.2:1935, target=172.17.0.2:1935, url=http://192.168.0.59:9090/api/v1/clusters?vhost=__defaultVhost__&ip=172.17.0.2&app=video&stream=test2
[2019-11-30 06:24:24.812][Trace][1][111] client finished.
[2019-11-30 06:24:30.405][Trace][1][112] api get peer ip success. ip=172.17.0.2
[2019-11-30 06:24:30.406][Trace][1][112] HTTP API POST http://192.168.0.60:9090/api/v1/clusters?vhost=__defaultVhost__&ip=172.17.0.2&app=video&stream=test1, content-length=0, chunked=0/0
[2019-11-30 06:24:30.407][Warn][1][112][104] client disconnect peer. ret=1007
[2019-11-30 06:24:32.445][Trace][1][105] <- CPB time=40010610, okbps=0,0,0, ikbps=1321,1275,0, mr=0/350, p1stpt=20000, pnt=5000
[2019-11-30 06:24:32.935][Trace][1][113] RTMP client ip=172.17.0.2, fd=10
[2019-11-30 06:24:32.938][Trace][1][113] complex handshake success
[2019-11-30 06:24:32.979][Trace][1][113] connect app, tcUrl=rtmp://172.17.0.2/video, pageUrl=, swfUrl=, schema=rtmp, vhost=172.17.0.2, port=1935, app=video, args=(obj)
[2019-11-30 06:24:32.979][Trace][1][113] edge-srs ip=172.17.0.2, version=3.0.60, pid=1, id=107
[2019-11-30 06:24:33.022][Trace][1][113] client identified, type=Play, vhost=172.17.0.2, app=video, stream=test2, param=?&vhost=172.17.0.2, duration=-1ms
[2019-11-30 06:24:33.022][Trace][1][113] connected stream, tcUrl=rtmp://172.17.0.2/video, pageUrl=, swfUrl=, schema=rtmp, vhost=__defaultVhost__, port=1935, app=video, stream=test2, param=?&vhost=172.17.0.2, args=(obj)
[2019-11-30 06:24:33.022][Trace][1][113] source url=/video/test2, ip=172.17.0.2, cache=1, is_edge=0, source_id=-1[-1]
[2019-11-30 06:24:33.025][Trace][1][113] http: cluster redirect 172.17.0.2:1935 ok, url=http://192.168.0.59:9090/api/v1/clusters?vhost=__defaultVhost__&ip=172.17.0.2&app=video&stream=test2, response={"code":0,"data":{"query":{"ip":"172.17.0.2","vhost":"__defaultVhost__","app":"video","stream":"test2"},"origin":{"ip":"172.17.0.2","port":1935,"vhost":"__defaultVhost__","api":"172.17.0.2:9090","routers":["172.17.0.2:9090"]}}}
[2019-11-30 06:24:33.025][Trace][1][113] rtmp: redirect in cluster, from=172.17.0.2:1935, target=172.17.0.2:1935, url=http://192.168.0.59:9090/api/v1/clusters?vhost=__defaultVhost__&ip=172.17.0.2&app=video&stream=test2
[2019-11-30 06:24:33.063][Trace][1][113] client finished.
[2019-11-30 06:24:38.967][Trace][1][114] api get peer ip success. ip=172.17.0.2
[2019-11-30 06:24:38.968][Trace][1][114] HTTP API POST http://192.168.0.60:9090/api/v1/clusters?vhost=__defaultVhost__&ip=172.17.0.2&app=video&stream=test1, content-length=0, chunked=0/0
[2019-11-30 06:24:38.969][Warn][1][114][104] client disconnect peer. ret=1007
[2019-11-30 06:24:41.186][Trace][1][115] RTMP client ip=172.17.0.2, fd=10
[2019-11-30 06:24:41.189][Trace][1][115] complex handshake success
[2019-11-30 06:24:41.229][Trace][1][115] connect app, tcUrl=rtmp://172.17.0.2/video, pageUrl=, swfUrl=, schema=rtmp, vhost=172.17.0.2, port=1935, app=video, args=(obj)
[2019-11-30 06:24:41.229][Trace][1][115] edge-srs ip=172.17.0.2, version=3.0.60, pid=1, id=107
[2019-11-30 06:24:41.271][Trace][1][115] client identified, type=Play, vhost=172.17.0.2, app=video, stream=test2, param=?&vhost=172.17.0.2, duration=-1ms
[2019-11-30 06:24:41.271][Trace][1][115] connected stream, tcUrl=rtmp://172.17.0.2/video, pageUrl=, swfUrl=, schema=rtmp, vhost=__defaultVhost__, port=1935, app=video, stream=test2, param=?&vhost=172.17.0.2, args=(obj)
[2019-11-30 06:24:41.271][Trace][1][115] source url=/video/test2, ip=172.17.0.2, cache=1, is_edge=0, source_id=-1[-1]
[2019-11-30 06:24:41.274][Trace][1][115] http: cluster redirect 172.17.0.2:1935 ok, url=http://192.168.0.59:9090/api/v1/clusters?vhost=__defaultVhost__&ip=172.17.0.2&app=video&stream=test2, response={"code":0,"data":{"query":{"ip":"172.17.0.2","vhost":"__defaultVhost__","app":"video","stream":"test2"},"origin":{"ip":"172.17.0.2","port":1935,"vhost":"__defaultVhost__","api":"172.17.0.2:9090","routers":["172.17.0.2:9090"]}}}
[2019-11-30 06:24:41.274][Trace][1][115] rtmp: redirect in cluster, from=172.17.0.2:1935, target=172.17.0.2:1935, url=http://192.168.0.59:9090/api/v1/clusters?vhost=__defaultVhost__&ip=172.17.0.2&app=video&stream=test2
[2019-11-30 06:24:41.313][Trace][1][115] client finished.
[2019-11-30 06:24:42.445][Trace][1][105] <- CPB time=50012001, okbps=0,0,0, ikbps=1332,1275,0, mr=0/350, p1stpt=20000, pnt=5000
[2019-11-30 06:24:47.529][Trace][1][116] api get peer ip success. ip=172.17.0.2
[2019-11-30 06:24:47.530][Trace][1][116] HTTP API POST http://192.168.0.60:9090/api/v1/clusters?vhost=__defaultVhost__&ip=172.17.0.2&app=video&stream=test1, content-length=0, chunked=0/0
[2019-11-30 06:24:47.531][Warn][1][116][104] client disconnect peer. ret=1007
[2019-11-30 06:24:49.438][Trace][1][117] RTMP client ip=172.17.0.2, fd=10
[2019-11-30 06:24:49.441][Trace][1][117] complex handshake success
[2019-11-30 06:24:49.482][Trace][1][117] connect app, tcUrl=rtmp://172.17.0.2/video, pageUrl=, swfUrl=, schema=rtmp, vhost=172.17.0.2, port=1935, app=video, args=(obj)
[2019-11-30 06:24:49.482][Trace][1][117] edge-srs ip=172.17.0.2, version=3.0.60, pid=1, id=107
[2019-11-30 06:24:49.524][Trace][1][117] client identified, type=Play, vhost=172.17.0.2, app=video, stream=test2, param=?&vhost=172.17.0.2, duration=-1ms
[2019-11-30 06:24:49.524][Trace][1][117] connected stream, tcUrl=rtmp://172.17.0.2/video, pageUrl=, swfUrl=, schema=rtmp, vhost=__defaultVhost__, port=1935, app=video, stream=test2, param=?&vhost=172.17.0.2, args=(obj)
[2019-11-30 06:24:49.524][Trace][1][117] source url=/video/test2, ip=172.17.0.2, cache=1, is_edge=0, source_id=-1[-1]
[2019-11-30 06:24:49.527][Trace][1][117] http: cluster redirect 172.17.0.2:1935 ok, url=http://192.168.0.59:9090/api/v1/clusters?vhost=__defaultVhost__&ip=172.17.0.2&app=video&stream=test2, response={"code":0,"data":{"query":{"ip":"172.17.0.2","vhost":"__defaultVhost__","app":"video","stream":"test2"},"origin":{"ip":"172.17.0.2","port":1935,"vhost":"__defaultVhost__","api":"172.17.0.2:9090","routers":["172.17.0.2:9090"]}}}
[2019-11-30 06:24:49.528][Trace][1][117] rtmp: redirect in cluster, from=172.17.0.2:1935, target=172.17.0.2:1935, url=http://192.168.0.59:9090/api/v1/clusters?vhost=__defaultVhost__&ip=172.17.0.2&app=video&stream=test2
[2019-11-30 06:24:49.565][Trace][1][117] client finished.

[END] 2019/11/30 14:24:51

servB
ip 192.168.0.59

[BEGIN] 2019/11/30 14:23:22
B.conf:/usr/local/srs/conf/srs.conf ossrs/srs:3
[2019-11-30 06:23:32.513][Trace][1][0] XCORE-SRS/3.0.60(OuXuli)
[2019-11-30 06:23:32.513][Trace][1][0] config parse complete
[2019-11-30 06:23:32.513][Trace][1][0] write log to console
[2019-11-30 06:23:32.513][Trace][1][0] SRS/3.0.60(OuXuli)
[2019-11-30 06:23:32.513][Trace][1][0] license: The MIT License (MIT)
[2019-11-30 06:23:32.513][Trace][1][0] contributors: winlin<winlin@vip.126.com> wenjie.zhao<740936897@qq.com> xiangcheng.liu<liuxc0116@foxmail.com> naijia.liu<youngcow@youngcow.net> alcoholyi<alcoholyi@qq.com> byteman<wangchen2011@gmail.com> chad.wang<chad.wang.cn@gmail.com> suhetao<suhetao@gmail.com> Johnny<fengjihu@163.com> karthikeyan<keyanmca@gmail.com> StevenLiu<lq@chinaffmpeg.org> zhengfl<zhengfl_1989@126.com> tufang14<breadbean1449@gmail.com> allspace<allspace@gmail.com> niesongsong<nie950@gmail.com> rudeb0t<nimrod@themanxgroup.tw> CallMeNP<np.liamg@gmail.com> synote<synote@qq.com> lovecat<littlefawn@163.com> panda1986<542638787@qq.com> YueHonghui<hongf.yue@hotmail.com> ThomasDreibholz<dreibh@simula.no> JuntaoLiu<juntliu@gmail.com> RocFang<fangpeng1986@gmail.com> MakarovYaroslav<yaroslav.makarov.97@mail.ru> MirkoVelic<mvelic@inoxx.net> HuiZhang(huzhang2)<huzhang2@cisco.com> OtterWa<simpleotter23@gmail.com> walkermi<172192667@qq.com> haofz<fuzhuang.hao@vhall.com> ME_Kun_Han<hanvskun@hotmail.com> ljx0305<ljx0305@gmail.com> cenxinwei<censhanhe@163.com> StarBrilliant<m13253@hotmail.com> xubin<xubin@chnvideo.com> intliang<yintiliang@gmail.com> flowerwrong<sysuyangkang@gmail.com> 
[2019-11-30 06:23:32.513][Trace][1][0] build: 2019-11-30 04:25:36, configure:--x86-x64 , uname: Linux 3b43bfff84ee 4.9.60-linuxkit-aufs #1 SMP Mon Nov 6 16:00:12 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
[2019-11-30 06:23:32.513][Trace][1][0] configure detail: --prefix=/usr/local/srs --with-hls --with-hds --with-dvr --without-nginx --with-ssl --without-ffmpeg --with-transcode --with-ingest --with-stat --with-http-callback --with-http-server --with-stream-caster --with-http-api --with-librtmp --without-research --with-utest --without-gperf --without-gmc --without-gmd --without-gmp --without-gcp --without-gprof --without-arm-ubuntu12 --without-mips-ubuntu12 --log-trace
[2019-11-30 06:23:32.513][Trace][1][0] cwd=/usr/local/srs, work_dir=./
[2019-11-30 06:23:32.513][Trace][1][0] srs checking config...
[2019-11-30 06:23:32.514][Trace][1][0] ips, iface[0] eth0 ipv4 0x11043 172.17.0.2
[2019-11-30 06:23:32.514][Trace][1][0] devices, intranet eth0 172.17.0.2
[2019-11-30 06:23:32.514][Warn][1][0][0] stats network use index=0, ip=172.17.0.2
[2019-11-30 06:23:32.514][Warn][1][0][0] stats disk not configed, disk iops disabled.
[2019-11-30 06:23:32.514][Trace][1][0] write log to console
[2019-11-30 06:23:32.514][Trace][1][0] features, rch:on, dash:on, hls:on, hds:on, hc:on, ha:on, hs:on, hp:on, dvr:on, trans:on, inge:on, stat:on, nginx:off, ff:off, sc:on
[2019-11-30 06:23:32.514][Trace][1][0] SRS on  amd64 x86_64, glibc2.17, conf:conf/srs.conf, limit:1000, writev:1024, encoding:little-endian, HZ:100
[2019-11-30 06:23:32.514][Trace][1][0] mw sleep:350ms. mr enabled:on, default:0, sleep:350ms
[2019-11-30 06:23:32.514][Trace][1][0] gc:on, pq:30000ms, cscc:[0,16), csa:on, tn:on(may hurts performance), ss:auto(guess by merged write)
[2019-11-30 06:23:32.514][Trace][1][0] system default latency(ms): mw(0-350) + mr(0-350) + play-queue(0-30000)
[2019-11-30 06:23:32.514][Warn][1][0][0] Develop is unstable, please use branch: git checkout -b 2.0release origin/2.0release
[2019-11-30 06:23:32.514][Trace][1][0] http: root mount to ./objs/nginx/html
[2019-11-30 06:23:32.514][Trace][1][0] st_init success, use epoll
[2019-11-30 06:23:32.514][Trace][1][100] server main cid=100, pid=1, ppid=0, asprocess=0
[2019-11-30 06:23:32.514][Trace][1][100] write pid=1 to ./objs/origin.cluster.serverB.pid success!
[2019-11-30 06:23:32.514][Trace][1][100] RTMP listen at tcp://0.0.0.0:1935, fd=7
[2019-11-30 06:23:32.514][Trace][1][100] HTTP-API listen at tcp://0.0.0.0:9090, fd=8
[2019-11-30 06:23:32.514][Trace][1][100] signal installed, reload=1, reopen=10, grace_quit=15
[2019-11-30 06:23:32.514][Trace][1][100] http: api mount /console to ./objs/nginx/html/console
[2019-11-30 06:23:48.664][Trace][1][105] RTMP client ip=172.17.0.2, fd=9
[2019-11-30 06:23:48.667][Trace][1][105] simple handshake success.
[2019-11-30 06:23:48.668][Trace][1][105] connect app, tcUrl=rtmp://192.168.0.59/video, pageUrl=, swfUrl=rtmp://192.168.0.59/video, schema=rtmp, vhost=192.168.0.59, port=1935, app=video, args=null
[2019-11-30 06:23:48.710][Trace][1][105] client identified, type=fmle-publish, vhost=192.168.0.59, app=video, stream=test2, param=, duration=0ms
[2019-11-30 06:23:48.710][Trace][1][105] connected stream, tcUrl=rtmp://192.168.0.59/video, pageUrl=, swfUrl=rtmp://192.168.0.59/video, schema=rtmp, vhost=__defaultVhost__, port=1935, app=video, stream=test2, param=, args=null
[2019-11-30 06:23:48.710][Trace][1][105] source url=/video/test2, ip=172.17.0.2, cache=1, is_edge=0, source_id=-1[-1]
[2019-11-30 06:23:48.752][Trace][1][105] ignore disabled exec for vhost=__defaultVhost__
[2019-11-30 06:23:48.752][Trace][1][105] start publish mr=0/350, p1stpt=20000, pnt=5000, tcp_nodelay=0
[2019-11-30 06:23:48.793][Trace][1][105] got metadata, width=1272, height=694
[2019-11-30 06:23:49.911][Trace][1][105] protocol in.buffer=0, in.ack=0, out.ack=2500000, in.chunk=4096, out.chunk=60000
[2019-11-30 06:23:49.911][Trace][1][105] 7B audio sh, codec(10, profile=LC, 2channels, 0kbps, 44100HZ), flv(16bits, 2channels, 44100HZ)
[2019-11-30 06:23:49.911][Trace][1][105] 46B video sh,  codec(7, profile=High, level=3.1, 1280x704, 0kbps, 0.0fps, 0.0s)
[2019-11-30 06:24:00.100][Trace][1][106] api get peer ip success. ip=172.17.0.2
[2019-11-30 06:24:00.101][Trace][1][106] HTTP API POST http://192.168.0.59:9090/api/v1/clusters?vhost=__defaultVhost__&ip=192.168.0.60&app=video&stream=test2, content-length=0, chunked=0/0
[2019-11-30 06:24:00.101][Trace][1][106] ignore private address: 172.17.0.2
[2019-11-30 06:24:00.101][Warn][1][106][11] use private address as ip: 172.17.0.2
[2019-11-30 06:24:00.102][Warn][1][106][104] client disconnect peer. ret=1007
[2019-11-30 06:24:08.311][Trace][1][107] api get peer ip success. ip=172.17.0.2
[2019-11-30 06:24:08.312][Trace][1][107] HTTP API POST http://192.168.0.59:9090/api/v1/clusters?vhost=__defaultVhost__&ip=172.17.0.2&app=video&stream=test2, content-length=0, chunked=0/0
[2019-11-30 06:24:08.313][Warn][1][107][104] client disconnect peer. ret=1007
[2019-11-30 06:24:13.752][Trace][1][105] <- CPB time=20003676, okbps=1,0,0, ikbps=1320,0,0, mr=0/350, p1stpt=20000, pnt=5000
[2019-11-30 06:24:16.523][Trace][1][108] api get peer ip success. ip=172.17.0.2
[2019-11-30 06:24:16.524][Trace][1][108] HTTP API POST http://192.168.0.59:9090/api/v1/clusters?vhost=__defaultVhost__&ip=172.17.0.2&app=video&stream=test2, content-length=0, chunked=0/0
[2019-11-30 06:24:16.525][Warn][1][108][104] client disconnect peer. ret=1007
[2019-11-30 06:24:21.843][Trace][1][109] RTMP client ip=172.17.0.2, fd=10
[2019-11-30 06:24:21.846][Trace][1][109] complex handshake success
[2019-11-30 06:24:21.846][Trace][1][109] connect app, tcUrl=rtmp://192.168.0.59/video, pageUrl=, swfUrl=, schema=rtmp, vhost=192.168.0.59, port=1935, app=video, args=(obj)
[2019-11-30 06:24:21.846][Trace][1][109] edge-srs ip=172.17.0.2, version=3.0.60, pid=1, id=112
[2019-11-30 06:24:21.847][Trace][1][109] client identified, type=Play, vhost=192.168.0.59, app=video, stream=test1, param=?&vhost=192.168.0.59, duration=-1ms
[2019-11-30 06:24:21.848][Trace][1][109] connected stream, tcUrl=rtmp://192.168.0.59/video, pageUrl=, swfUrl=, schema=rtmp, vhost=__defaultVhost__, port=1935, app=video, stream=test1, param=?&vhost=192.168.0.59, args=(obj)
[2019-11-30 06:24:21.848][Trace][1][109] source url=/video/test1, ip=172.17.0.2, cache=1, is_edge=0, source_id=-1[-1]
[2019-11-30 06:24:21.852][Trace][1][109] http: cluster redirect 172.17.0.2:1935 ok, url=http://192.168.0.60:9090/api/v1/clusters?vhost=__defaultVhost__&ip=192.168.0.59&app=video&stream=test1, response={"code":0,"data":{"query":{"ip":"192.168.0.59","vhost":"__defaultVhost__","app":"video","stream":"test1"},"origin":{"ip":"172.17.0.2","port":1935,"vhost":"__defaultVhost__","api":"172.17.0.2:9090","routers":["172.17.0.2:9090"]}}}
[2019-11-30 06:24:21.852][Trace][1][109] rtmp: redirect in cluster, from=192.168.0.59:1935, target=172.17.0.2:1935, url=http://192.168.0.60:9090/api/v1/clusters?vhost=__defaultVhost__&ip=192.168.0.59&app=video&stream=test1
[2019-11-30 06:24:21.888][Trace][1][109] client finished.
[2019-11-30 06:24:23.752][Trace][1][105] <- CPB time=30004067, okbps=0,1,0, ikbps=1324,1321,0, mr=0/350, p1stpt=20000, pnt=5000
[2019-11-30 06:24:24.771][Trace][1][110] api get peer ip success. ip=172.17.0.2
[2019-11-30 06:24:24.771][Trace][1][110] HTTP API POST http://192.168.0.59:9090/api/v1/clusters?vhost=__defaultVhost__&ip=172.17.0.2&app=video&stream=test2, content-length=0, chunked=0/0
[2019-11-30 06:24:24.772][Warn][1][110][104] client disconnect peer. ret=1007
[2019-11-30 06:24:30.320][Trace][1][111] RTMP client ip=172.17.0.2, fd=10
[2019-11-30 06:24:30.323][Trace][1][111] complex handshake success
[2019-11-30 06:24:30.363][Trace][1][111] connect app, tcUrl=rtmp://172.17.0.2/video, pageUrl=, swfUrl=, schema=rtmp, vhost=172.17.0.2, port=1935, app=video, args=(obj)
[2019-11-30 06:24:30.363][Trace][1][111] edge-srs ip=172.17.0.2, version=3.0.60, pid=1, id=112
[2019-11-30 06:24:30.404][Trace][1][111] client identified, type=Play, vhost=172.17.0.2, app=video, stream=test1, param=?&vhost=172.17.0.2, duration=-1ms
[2019-11-30 06:24:30.404][Trace][1][111] connected stream, tcUrl=rtmp://172.17.0.2/video, pageUrl=, swfUrl=, schema=rtmp, vhost=__defaultVhost__, port=1935, app=video, stream=test1, param=?&vhost=172.17.0.2, args=(obj)
[2019-11-30 06:24:30.404][Trace][1][111] source url=/video/test1, ip=172.17.0.2, cache=1, is_edge=0, source_id=-1[-1]
[2019-11-30 06:24:30.407][Trace][1][111] http: cluster redirect 172.17.0.2:1935 ok, url=http://192.168.0.60:9090/api/v1/clusters?vhost=__defaultVhost__&ip=172.17.0.2&app=video&stream=test1, response={"code":0,"data":{"query":{"ip":"172.17.0.2","vhost":"__defaultVhost__","app":"video","stream":"test1"},"origin":{"ip":"172.17.0.2","port":1935,"vhost":"__defaultVhost__","api":"172.17.0.2:9090","routers":["172.17.0.2:9090"]}}}
[2019-11-30 06:24:30.407][Trace][1][111] rtmp: redirect in cluster, from=172.17.0.2:1935, target=172.17.0.2:1935, url=http://192.168.0.60:9090/api/v1/clusters?vhost=__defaultVhost__&ip=172.17.0.2&app=video&stream=test1
[2019-11-30 06:24:30.446][Trace][1][111] client finished.
[2019-11-30 06:24:33.023][Trace][1][112] api get peer ip success. ip=172.17.0.2
[2019-11-30 06:24:33.024][Trace][1][112] HTTP API POST http://192.168.0.59:9090/api/v1/clusters?vhost=__defaultVhost__&ip=172.17.0.2&app=video&stream=test2, content-length=0, chunked=0/0
[2019-11-30 06:24:33.025][Warn][1][112][104] client disconnect peer. ret=1007
[2019-11-30 06:24:33.752][Trace][1][105] <- CPB time=40005498, okbps=0,1,0, ikbps=1332,1321,0, mr=0/350, p1stpt=20000, pnt=5000
[2019-11-30 06:24:38.880][Trace][1][113] RTMP client ip=172.17.0.2, fd=10
[2019-11-30 06:24:38.884][Trace][1][113] complex handshake success
[2019-11-30 06:24:38.925][Trace][1][113] connect app, tcUrl=rtmp://172.17.0.2/video, pageUrl=, swfUrl=, schema=rtmp, vhost=172.17.0.2, port=1935, app=video, args=(obj)
[2019-11-30 06:24:38.925][Trace][1][113] edge-srs ip=172.17.0.2, version=3.0.60, pid=1, id=112
[2019-11-30 06:24:38.966][Trace][1][113] client identified, type=Play, vhost=172.17.0.2, app=video, stream=test1, param=?&vhost=172.17.0.2, duration=-1ms
[2019-11-30 06:24:38.966][Trace][1][113] connected stream, tcUrl=rtmp://172.17.0.2/video, pageUrl=, swfUrl=, schema=rtmp, vhost=__defaultVhost__, port=1935, app=video, stream=test1, param=?&vhost=172.17.0.2, args=(obj)
[2019-11-30 06:24:38.967][Trace][1][113] source url=/video/test1, ip=172.17.0.2, cache=1, is_edge=0, source_id=-1[-1]
[2019-11-30 06:24:38.968][Trace][1][113] http: cluster redirect 172.17.0.2:1935 ok, url=http://192.168.0.60:9090/api/v1/clusters?vhost=__defaultVhost__&ip=172.17.0.2&app=video&stream=test1, response={"code":0,"data":{"query":{"ip":"172.17.0.2","vhost":"__defaultVhost__","app":"video","stream":"test1"},"origin":{"ip":"172.17.0.2","port":1935,"vhost":"__defaultVhost__","api":"172.17.0.2:9090","routers":["172.17.0.2:9090"]}}}
[2019-11-30 06:24:38.970][Trace][1][113] rtmp: redirect in cluster, from=172.17.0.2:1935, target=172.17.0.2:1935, url=http://192.168.0.60:9090/api/v1/clusters?vhost=__defaultVhost__&ip=172.17.0.2&app=video&stream=test1
[2019-11-30 06:24:39.007][Trace][1][113] client finished.
[2019-11-30 06:24:41.272][Trace][1][114] api get peer ip success. ip=172.17.0.2
[2019-11-30 06:24:41.273][Trace][1][114] HTTP API POST http://192.168.0.59:9090/api/v1/clusters?vhost=__defaultVhost__&ip=172.17.0.2&app=video&stream=test2, content-length=0, chunked=0/0
[2019-11-30 06:24:41.274][Warn][1][114][104] client disconnect peer. ret=1007
[2019-11-30 06:24:43.752][Trace][1][105] <- CPB time=50006923, okbps=0,1,0, ikbps=1341,1321,0, mr=0/350, p1stpt=20000, pnt=5000
[2019-11-30 06:24:47.442][Trace][1][115] RTMP client ip=172.17.0.2, fd=10
[2019-11-30 06:24:47.446][Trace][1][115] complex handshake success
[2019-11-30 06:24:47.486][Trace][1][115] connect app, tcUrl=rtmp://172.17.0.2/video, pageUrl=, swfUrl=, schema=rtmp, vhost=172.17.0.2, port=1935, app=video, args=(obj)
[2019-11-30 06:24:47.486][Trace][1][115] edge-srs ip=172.17.0.2, version=3.0.60, pid=1, id=112
[2019-11-30 06:24:47.528][Trace][1][115] client identified, type=Play, vhost=172.17.0.2, app=video, stream=test1, param=?&vhost=172.17.0.2, duration=-1ms
[2019-11-30 06:24:47.528][Trace][1][115] connected stream, tcUrl=rtmp://172.17.0.2/video, pageUrl=, swfUrl=, schema=rtmp, vhost=__defaultVhost__, port=1935, app=video, stream=test1, param=?&vhost=172.17.0.2, args=(obj)
[2019-11-30 06:24:47.528][Trace][1][115] source url=/video/test1, ip=172.17.0.2, cache=1, is_edge=0, source_id=-1[-1]
[2019-11-30 06:24:47.531][Trace][1][115] http: cluster redirect 172.17.0.2:1935 ok, url=http://192.168.0.60:9090/api/v1/clusters?vhost=__defaultVhost__&ip=172.17.0.2&app=video&stream=test1, response={"code":0,"data":{"query":{"ip":"172.17.0.2","vhost":"__defaultVhost__","app":"video","stream":"test1"},"origin":{"ip":"172.17.0.2","port":1935,"vhost":"__defaultVhost__","api":"172.17.0.2:9090","routers":["172.17.0.2:9090"]}}}
[2019-11-30 06:24:47.531][Trace][1][115] rtmp: redirect in cluster, from=172.17.0.2:1935, target=172.17.0.2:1935, url=http://192.168.0.60:9090/api/v1/clusters?vhost=__defaultVhost__&ip=172.17.0.2&app=video&stream=test1
[2019-11-30 06:24:47.570][Trace][1][115] client finished.

[END] 2019/11/30 14:24:49

edge
ip:192.168.0.61

[BEGIN] 2019/11/30 14:23:27
onf:/usr/local/srs/conf/srs.conf ossrs/srs:3
[2019-11-30 06:23:34.563][Trace][1][0] XCORE-SRS/3.0.60(OuXuli)
[2019-11-30 06:23:34.564][Trace][1][0] config parse complete
[2019-11-30 06:23:34.564][Trace][1][0] write log to console
[2019-11-30 06:23:34.564][Trace][1][0] SRS/3.0.60(OuXuli)
[2019-11-30 06:23:34.564][Trace][1][0] license: The MIT License (MIT)
[2019-11-30 06:23:34.564][Trace][1][0] contributors: winlin<winlin@vip.126.com> wenjie.zhao<740936897@qq.com> xiangcheng.liu<liuxc0116@foxmail.com> naijia.liu<youngcow@youngcow.net> alcoholyi<alcoholyi@qq.com> byteman<wangchen2011@gmail.com> chad.wang<chad.wang.cn@gmail.com> suhetao<suhetao@gmail.com> Johnny<fengjihu@163.com> karthikeyan<keyanmca@gmail.com> StevenLiu<lq@chinaffmpeg.org> zhengfl<zhengfl_1989@126.com> tufang14<breadbean1449@gmail.com> allspace<allspace@gmail.com> niesongsong<nie950@gmail.com> rudeb0t<nimrod@themanxgroup.tw> CallMeNP<np.liamg@gmail.com> synote<synote@qq.com> lovecat<littlefawn@163.com> panda1986<542638787@qq.com> YueHonghui<hongf.yue@hotmail.com> ThomasDreibholz<dreibh@simula.no> JuntaoLiu<juntliu@gmail.com> RocFang<fangpeng1986@gmail.com> MakarovYaroslav<yaroslav.makarov.97@mail.ru> MirkoVelic<mvelic@inoxx.net> HuiZhang(huzhang2)<huzhang2@cisco.com> OtterWa<simpleotter23@gmail.com> walkermi<172192667@qq.com> haofz<fuzhuang.hao@vhall.com> ME_Kun_Han<hanvskun@hotmail.com> ljx0305<ljx0305@gmail.com> cenxinwei<censhanhe@163.com> StarBrilliant<m13253@hotmail.com> xubin<xubin@chnvideo.com> intliang<yintiliang@gmail.com> flowerwrong<sysuyangkang@gmail.com> 
[2019-11-30 06:23:34.564][Trace][1][0] build: 2019-11-29 09:25:49, configure:--x86-x64 , uname: Linux c59825a96b4e 4.9.60-linuxkit-aufs #1 SMP Mon Nov 6 16:00:12 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
[2019-11-30 06:23:34.564][Trace][1][0] configure detail: --prefix=/usr/local/srs --with-hls --with-hds --with-dvr --without-nginx --with-ssl --without-ffmpeg --with-transcode --with-ingest --with-stat --with-http-callback --with-http-server --with-stream-caster --with-http-api --with-librtmp --without-research --with-utest --without-gperf --without-gmc --without-gmd --without-gmp --without-gcp --without-gprof --without-arm-ubuntu12 --without-mips-ubuntu12 --log-trace
[2019-11-30 06:23:34.564][Trace][1][0] cwd=/usr/local/srs, work_dir=./
[2019-11-30 06:23:34.564][Trace][1][0] srs checking config...
[2019-11-30 06:23:34.564][Trace][1][0] ips, iface[0] eth0 ipv4 0x11043 172.17.0.2
[2019-11-30 06:23:34.564][Trace][1][0] devices, intranet eth0 172.17.0.2
[2019-11-30 06:23:34.564][Warn][1][0][0] stats network use index=0, ip=172.17.0.2
[2019-11-30 06:23:34.564][Warn][1][0][0] stats disk not configed, disk iops disabled.
[2019-11-30 06:23:34.564][Trace][1][0] write log to console
[2019-11-30 06:23:34.564][Trace][1][0] features, rch:on, dash:on, hls:on, hds:on, hc:on, ha:on, hs:on, hp:on, dvr:on, trans:on, inge:on, stat:on, nginx:off, ff:off, sc:on
[2019-11-30 06:23:34.564][Trace][1][0] SRS on  amd64 x86_64, glibc2.17, conf:conf/srs.conf, limit:1000, writev:1024, encoding:little-endian, HZ:100
[2019-11-30 06:23:34.564][Trace][1][0] mw sleep:350ms. mr enabled:on, default:0, sleep:350ms
[2019-11-30 06:23:34.564][Trace][1][0] gc:on, pq:30000ms, cscc:[0,16), csa:on, tn:on(may hurts performance), ss:auto(guess by merged write)
[2019-11-30 06:23:34.564][Trace][1][0] system default latency(ms): mw(0-350) + mr(0-350) + play-queue(0-30000)
[2019-11-30 06:23:34.564][Warn][1][0][0] Develop is unstable, please use branch: git checkout -b 2.0release origin/2.0release
[2019-11-30 06:23:34.564][Trace][1][0] http: root mount to ./objs/nginx/html
[2019-11-30 06:23:34.564][Trace][1][0] st_init success, use epoll
[2019-11-30 06:23:34.564][Trace][1][100] server main cid=100, pid=1, ppid=0, asprocess=0
[2019-11-30 06:23:34.564][Trace][1][100] write pid=1 to objs/edge.pid success!
[2019-11-30 06:23:34.565][Trace][1][100] RTMP listen at tcp://0.0.0.0:1935, fd=7
[2019-11-30 06:23:34.565][Trace][1][100] signal installed, reload=1, reopen=10, grace_quit=15
[2019-11-30 06:23:34.565][Trace][1][100] http: api mount /console to ./objs/nginx/html/console
[2019-11-30 06:23:54.069][Trace][1][104] RTMP client ip=172.17.0.2, fd=8
[2019-11-30 06:23:54.073][Trace][1][104] complex handshake success
[2019-11-30 06:23:54.115][Trace][1][104] connect app, tcUrl=rtmp://192.168.0.61:1935/video, pageUrl=, swfUrl=, schema=rtmp, vhost=192.168.0.61, port=1935, app=video, args=null
[2019-11-30 06:23:54.196][Trace][1][104] ignore AMF0/AMF3 command message.
[2019-11-30 06:23:54.236][Trace][1][104] ignore AMF0/AMF3 command message.
[2019-11-30 06:23:54.237][Trace][1][104] client identified, type=Play, vhost=192.168.0.61, app=video, stream=test1, param=, duration=-1ms
[2019-11-30 06:23:54.237][Trace][1][104] connected stream, tcUrl=rtmp://192.168.0.61:1935/video, pageUrl=, swfUrl=, schema=rtmp, vhost=__defaultVhost__, port=1935, app=video, stream=test1, param=, args=null
[2019-11-30 06:23:54.237][Trace][1][104] source url=/video/test1, ip=172.17.0.2, cache=1, is_edge=1, source_id=-1[-1]
[2019-11-30 06:23:54.237][Trace][1][104] dispatch cached gop success. count=0, duration=-1
[2019-11-30 06:23:54.237][Trace][1][104] create consumer, queue_size=0.00, jitter=30000000
[2019-11-30 06:23:54.237][Trace][1][104] ignore disabled exec for vhost=__defaultVhost__
[2019-11-30 06:23:54.237][Trace][1][104] set fd=8, SO_SNDBUF=87040=>175000, buffer=350ms
[2019-11-30 06:23:54.237][Trace][1][104] start play smi=0ms, mw_sleep=350, mw_enabled=1, realtime=0, tcp_nodelay=0
[2019-11-30 06:23:54.237][Trace][1][104] update source_id=105[105]
[2019-11-30 06:23:54.242][Trace][1][105] complex handshake success.
[2019-11-30 06:23:54.283][Trace][1][105] connected, dsu=1
[2019-11-30 06:23:54.284][Trace][1][105] edge change from 100 to state 101 (pull).
[2019-11-30 06:23:54.285][Trace][1][105] got metadata, width=1272, height=694
[2019-11-30 06:23:54.285][Trace][1][105] protocol in.buffer=0, in.ack=2500000, out.ack=2500000, in.chunk=60000, out.chunk=60000
[2019-11-30 06:23:54.285][Trace][1][105] 7B audio sh, codec(10, profile=LC, 2channels, 0kbps, 44100HZ), flv(16bits, 2channels, 44100HZ)
[2019-11-30 06:23:54.285][Trace][1][105] 46B video sh,  codec(7, profile=High, level=3.1, 1280x704, 0kbps, 0.0fps, 0.0s)
[2019-11-30 06:23:54.290][Trace][1][104] protocol in.buffer=3000, in.ack=2500000, out.ack=2500000, in.chunk=128, out.chunk=60000
[2019-11-30 06:23:59.884][Warn][1][105][4] origin disconnected, retry, error code=1007 : recv message : recv interlaced message : read basic header : basic header requires 1 bytes : read bytes : read
thread #105: ingest() [src/app/srs_app_edge.cpp:315][errno=4]
thread #105: recv_message() [src/protocol/srs_rtmp_stack.cpp:354][errno=4]
thread #105: recv_interlaced_message() [src/protocol/srs_rtmp_stack.cpp:877][errno=4]
thread #105: read_basic_header() [src/protocol/srs_rtmp_stack.cpp:972][errno=4]
thread #105: grow() [src/protocol/srs_protocol_stream.cpp:180][errno=4]
thread #105: read() [src/service/srs_service_st.cpp:470][errno=4]
[2019-11-30 06:23:59.884][Trace][1][104] cleanup when unpublish
[2019-11-30 06:23:59.884][Trace][1][104] edge change from 101 to state 0 (init).
[2019-11-30 06:23:59.884][Warn][1][104][4] client disconnect peer. ret=1007
[2019-11-30 06:23:59.888][Trace][1][106] RTMP client ip=172.17.0.2, fd=8
[2019-11-30 06:23:59.891][Trace][1][106] complex handshake success
[2019-11-30 06:23:59.891][Trace][1][106] connect app, tcUrl=rtmp://192.168.0.61:1935/video, pageUrl=, swfUrl=, schema=rtmp, vhost=192.168.0.61, port=1935, app=video, args=null
[2019-11-30 06:23:59.971][Trace][1][106] ignore AMF0/AMF3 command message.
[2019-11-30 06:24:00.011][Trace][1][106] ignore AMF0/AMF3 command message.
[2019-11-30 06:24:00.012][Trace][1][106] client identified, type=Play, vhost=192.168.0.61, app=video, stream=test2, param=, duration=-1ms
[2019-11-30 06:24:00.012][Trace][1][106] connected stream, tcUrl=rtmp://192.168.0.61:1935/video, pageUrl=, swfUrl=, schema=rtmp, vhost=__defaultVhost__, port=1935, app=video, stream=test2, param=, args=null
[2019-11-30 06:24:00.012][Trace][1][106] source url=/video/test2, ip=172.17.0.2, cache=1, is_edge=1, source_id=-1[-1]
[2019-11-30 06:24:00.012][Trace][1][106] dispatch cached gop success. count=0, duration=-1
[2019-11-30 06:24:00.012][Trace][1][106] create consumer, queue_size=0.00, jitter=30000000
[2019-11-30 06:24:00.012][Trace][1][106] ignore disabled exec for vhost=__defaultVhost__
[2019-11-30 06:24:00.012][Trace][1][106] set fd=8, SO_SNDBUF=87040=>175000, buffer=350ms
[2019-11-30 06:24:00.012][Trace][1][106] start play smi=0ms, mw_sleep=350, mw_enabled=1, realtime=0, tcp_nodelay=0
[2019-11-30 06:24:00.012][Trace][1][106] update source_id=107[107]
[2019-11-30 06:24:00.016][Trace][1][107] complex handshake success.
[2019-11-30 06:24:00.097][Trace][1][107] connected, dsu=1
[2019-11-30 06:24:00.098][Trace][1][107] edge change from 100 to state 101 (pull).
[2019-11-30 06:24:00.139][Warn][1][107][11] RTMP redirect 192.168.0.59:1935 to 172.17.0.2:1935 stream=
[2019-11-30 06:24:00.140][Trace][1][108] RTMP client ip=172.17.0.2, fd=10
[2019-11-30 06:24:00.141][Trace][1][107] complex handshake success.
[2019-11-30 06:24:00.142][Trace][1][108] complex handshake success
[2019-11-30 06:24:00.181][Trace][1][108] connect app, tcUrl=rtmp://172.17.0.2/video, pageUrl=, swfUrl=, schema=rtmp, vhost=172.17.0.2, port=1935, app=video, args=(obj)
[2019-11-30 06:24:00.181][Trace][1][108] edge-srs ip=172.17.0.2, version=3.0.60, pid=1, id=107
[2019-11-30 06:24:00.222][Trace][1][107] connected, dsu=1
[2019-11-30 06:24:00.222][Trace][1][108] client identified, type=Play, vhost=172.17.0.2, app=video, stream=test2, param=?&vhost=172.17.0.2, duration=-1ms
[2019-11-30 06:24:00.222][Trace][1][108] connected stream, tcUrl=rtmp://172.17.0.2/video, pageUrl=, swfUrl=, schema=rtmp, vhost=__defaultVhost__, port=1935, app=video, stream=test2, param=?&vhost=172.17.0.2, args=(obj)
[2019-11-30 06:24:00.222][Trace][1][108] source url=/video/test2, ip=172.17.0.2, cache=1, is_edge=1, source_id=107[107]
[2019-11-30 06:24:00.222][Trace][1][108] dispatch cached gop success. count=0, duration=-1
[2019-11-30 06:24:00.222][Trace][1][108] create consumer, queue_size=0.00, jitter=30000000
[2019-11-30 06:24:00.222][Trace][1][108] set fd=10, SO_SNDBUF=2626560=>175000, buffer=350ms
[2019-11-30 06:24:00.222][Trace][1][108] start play smi=0ms, mw_sleep=350, mw_enabled=1, realtime=0, tcp_nodelay=0
[2019-11-30 06:24:05.262][Warn][1][107][62] EdgeIngester: Ignore error, code=1011 : recv message : recv interlaced message : read basic header : basic header requires 1 bytes : read bytes : timeout 5000 ms
thread #107: ingest() [src/app/srs_app_edge.cpp:315][errno=62]
thread #107: recv_message() [src/protocol/srs_rtmp_stack.cpp:354][errno=62]
thread #107: recv_interlaced_message() [src/protocol/srs_rtmp_stack.cpp:877][errno=62]
thread #107: read_basic_header() [src/protocol/srs_rtmp_stack.cpp:972][errno=62]
thread #107: grow() [src/protocol/srs_protocol_stream.cpp:180][errno=62]
thread #107: read() [src/service/srs_service_st.cpp:463][errno=62]
[2019-11-30 06:24:08.263][Warn][1][108][104] client disconnect peer. ret=1007
[2019-11-30 06:24:08.268][Trace][1][107] complex handshake success.
[2019-11-30 06:24:08.308][Trace][1][107] connected, dsu=1
[2019-11-30 06:24:08.350][Warn][1][107][11] RTMP redirect 192.168.0.59:1935 to 172.17.0.2:1935 stream=
[2019-11-30 06:24:08.350][Trace][1][109] RTMP client ip=172.17.0.2, fd=10
[2019-11-30 06:24:08.352][Trace][1][107] complex handshake success.
[2019-11-30 06:24:08.352][Trace][1][109] complex handshake success
[2019-11-30 06:24:08.392][Trace][1][109] connect app, tcUrl=rtmp://172.17.0.2/video, pageUrl=, swfUrl=, schema=rtmp, vhost=172.17.0.2, port=1935, app=video, args=(obj)
[2019-11-30 06:24:08.392][Trace][1][109] edge-srs ip=172.17.0.2, version=3.0.60, pid=1, id=107
[2019-11-30 06:24:08.432][Trace][1][107] connected, dsu=1
[2019-11-30 06:24:08.432][Trace][1][109] client identified, type=Play, vhost=172.17.0.2, app=video, stream=test2, param=?&vhost=172.17.0.2, duration=-1ms
[2019-11-30 06:24:08.432][Trace][1][109] connected stream, tcUrl=rtmp://172.17.0.2/video, pageUrl=, swfUrl=, schema=rtmp, vhost=__defaultVhost__, port=1935, app=video, stream=test2, param=?&vhost=172.17.0.2, args=(obj)
[2019-11-30 06:24:08.432][Trace][1][109] source url=/video/test2, ip=172.17.0.2, cache=1, is_edge=1, source_id=107[107]
[2019-11-30 06:24:08.432][Trace][1][109] dispatch cached gop success. count=0, duration=-1
[2019-11-30 06:24:08.432][Trace][1][109] create consumer, queue_size=0.00, jitter=30000000
[2019-11-30 06:24:08.432][Trace][1][109] set fd=10, SO_SNDBUF=2626560=>175000, buffer=350ms
[2019-11-30 06:24:08.432][Trace][1][109] start play smi=0ms, mw_sleep=350, mw_enabled=1, realtime=0, tcp_nodelay=0
[2019-11-30 06:24:13.474][Warn][1][107][62] EdgeIngester: Ignore error, code=1011 : recv message : recv interlaced message : read basic header : basic header requires 1 bytes : read bytes : timeout 5000 ms
thread #107: ingest() [src/app/srs_app_edge.cpp:315][errno=62]
thread #107: recv_message() [src/protocol/srs_rtmp_stack.cpp:354][errno=62]
thread #107: recv_interlaced_message() [src/protocol/srs_rtmp_stack.cpp:877][errno=62]
thread #107: read_basic_header() [src/protocol/srs_rtmp_stack.cpp:972][errno=62]
thread #107: grow() [src/protocol/srs_protocol_stream.cpp:180][errno=62]
thread #107: read() [src/service/srs_service_st.cpp:463][errno=62]
[2019-11-30 06:24:16.475][Warn][1][109][104] client disconnect peer. ret=1007
[2019-11-30 06:24:16.479][Trace][1][107] complex handshake success.
[2019-11-30 06:24:16.520][Trace][1][107] connected, dsu=1
[2019-11-30 06:24:16.561][Warn][1][107][11] RTMP redirect 192.168.0.59:1935 to 172.17.0.2:1935 stream=
[2019-11-30 06:24:16.562][Trace][1][110] RTMP client ip=172.17.0.2, fd=10
[2019-11-30 06:24:16.564][Trace][1][107] complex handshake success.
[2019-11-30 06:24:16.564][Trace][1][110] complex handshake success
[2019-11-30 06:24:16.603][Trace][1][110] connect app, tcUrl=rtmp://172.17.0.2/video, pageUrl=, swfUrl=, schema=rtmp, vhost=172.17.0.2, port=1935, app=video, args=(obj)
[2019-11-30 06:24:16.603][Trace][1][110] edge-srs ip=172.17.0.2, version=3.0.60, pid=1, id=107
[2019-11-30 06:24:16.643][Trace][1][107] connected, dsu=1
[2019-11-30 06:24:16.644][Trace][1][110] client identified, type=Play, vhost=172.17.0.2, app=video, stream=test2, param=?&vhost=172.17.0.2, duration=-1ms
[2019-11-30 06:24:16.644][Trace][1][110] connected stream, tcUrl=rtmp://172.17.0.2/video, pageUrl=, swfUrl=, schema=rtmp, vhost=__defaultVhost__, port=1935, app=video, stream=test2, param=?&vhost=172.17.0.2, args=(obj)
[2019-11-30 06:24:16.644][Trace][1][110] source url=/video/test2, ip=172.17.0.2, cache=1, is_edge=1, source_id=107[107]
[2019-11-30 06:24:16.644][Trace][1][110] dispatch cached gop success. count=0, duration=-1
[2019-11-30 06:24:16.644][Trace][1][110] create consumer, queue_size=0.00, jitter=30000000
[2019-11-30 06:24:16.644][Trace][1][110] set fd=10, SO_SNDBUF=2626560=>175000, buffer=350ms
[2019-11-30 06:24:16.644][Trace][1][110] start play smi=0ms, mw_sleep=350, mw_enabled=1, realtime=0, tcp_nodelay=0
[2019-11-30 06:24:16.644][Trace][1][110] -> PLA time=0, msgs=0, okbps=32,0,0, ikbps=29,0,0, mw=350
[2019-11-30 06:24:21.683][Warn][1][107][62] EdgeIngester: Ignore error, code=1011 : recv message : recv interlaced message : read basic header : basic header requires 1 bytes : read bytes : timeout 5000 ms
thread #107: ingest() [src/app/srs_app_edge.cpp:315][errno=62]
thread #107: recv_message() [src/protocol/srs_rtmp_stack.cpp:354][errno=62]
thread #107: recv_interlaced_message() [src/protocol/srs_rtmp_stack.cpp:877][errno=62]
thread #107: read_basic_header() [src/protocol/srs_rtmp_stack.cpp:972][errno=62]
thread #107: grow() [src/protocol/srs_protocol_stream.cpp:180][errno=62]
thread #107: read() [src/service/srs_service_st.cpp:463][errno=62]
[2019-11-30 06:24:21.719][Trace][1][111] RTMP client ip=172.17.0.2, fd=11
[2019-11-30 06:24:21.721][Trace][1][111] complex handshake success
[2019-11-30 06:24:21.722][Trace][1][111] connect app, tcUrl=rtmp://192.168.0.61:1935/video, pageUrl=, swfUrl=, schema=rtmp, vhost=192.168.0.61, port=1935, app=video, args=null
[2019-11-30 06:24:21.801][Trace][1][111] ignore AMF0/AMF3 command message.
[2019-11-30 06:24:21.842][Trace][1][111] ignore AMF0/AMF3 command message.
[2019-11-30 06:24:21.842][Trace][1][111] client identified, type=Play, vhost=192.168.0.61, app=video, stream=test1, param=, duration=-1ms
[2019-11-30 06:24:21.842][Trace][1][111] connected stream, tcUrl=rtmp://192.168.0.61:1935/video, pageUrl=, swfUrl=, schema=rtmp, vhost=__defaultVhost__, port=1935, app=video, stream=test1, param=, args=null
[2019-11-30 06:24:21.842][Trace][1][111] source url=/video/test1, ip=172.17.0.2, cache=1, is_edge=1, source_id=-1[-1]
[2019-11-30 06:24:21.842][Trace][1][111] dispatch cached gop success. count=0, duration=0
[2019-11-30 06:24:21.842][Trace][1][111] create consumer, queue_size=0.00, jitter=30000000
[2019-11-30 06:24:21.842][Trace][1][111] ignore disabled exec for vhost=__defaultVhost__
[2019-11-30 06:24:21.842][Trace][1][111] set fd=11, SO_SNDBUF=87040=>175000, buffer=350ms
[2019-11-30 06:24:21.842][Trace][1][111] start play smi=0ms, mw_sleep=350, mw_enabled=1, realtime=0, tcp_nodelay=0
[2019-11-30 06:24:21.842][Trace][1][111] update source_id=112[112]
[2019-11-30 06:24:21.842][Trace][1][111] protocol in.buffer=3000, in.ack=2500000, out.ack=2500000, in.chunk=128, out.chunk=60000
[2019-11-30 06:24:21.845][Trace][1][112] complex handshake success.
[2019-11-30 06:24:21.846][Trace][1][112] connected, dsu=1
[2019-11-30 06:24:21.847][Trace][1][112] edge change from 100 to state 101 (pull).
[2019-11-30 06:24:21.887][Warn][1][112][11] RTMP redirect 192.168.0.60:1935 to 172.17.0.2:1935 stream=
[2019-11-30 06:24:21.888][Trace][1][113] RTMP client ip=172.17.0.2, fd=13
[2019-11-30 06:24:21.889][Trace][1][112] complex handshake success.
[2019-11-30 06:24:21.889][Trace][1][113] complex handshake success
[2019-11-30 06:24:21.928][Trace][1][113] connect app, tcUrl=rtmp://172.17.0.2/video, pageUrl=, swfUrl=, schema=rtmp, vhost=172.17.0.2, port=1935, app=video, args=(obj)
[2019-11-30 06:24:21.928][Trace][1][113] edge-srs ip=172.17.0.2, version=3.0.60, pid=1, id=112
[2019-11-30 06:24:21.968][Trace][1][112] connected, dsu=1
[2019-11-30 06:24:21.968][Trace][1][113] client identified, type=Play, vhost=172.17.0.2, app=video, stream=test1, param=?&vhost=172.17.0.2, duration=-1ms
[2019-11-30 06:24:21.968][Trace][1][113] connected stream, tcUrl=rtmp://172.17.0.2/video, pageUrl=, swfUrl=, schema=rtmp, vhost=__defaultVhost__, port=1935, app=video, stream=test1, param=?&vhost=172.17.0.2, args=(obj)
[2019-11-30 06:24:21.968][Trace][1][113] source url=/video/test1, ip=172.17.0.2, cache=1, is_edge=1, source_id=112[112]
[2019-11-30 06:24:21.968][Trace][1][113] dispatch cached gop success. count=0, duration=0
[2019-11-30 06:24:21.968][Trace][1][113] create consumer, queue_size=0.00, jitter=30000000
[2019-11-30 06:24:21.968][Trace][1][113] set fd=13, SO_SNDBUF=2626560=>175000, buffer=350ms
[2019-11-30 06:24:21.968][Trace][1][113] start play smi=0ms, mw_sleep=350, mw_enabled=1, realtime=0, tcp_nodelay=0
[2019-11-30 06:24:21.969][Trace][1][113] protocol in.buffer=1000, in.ack=2500000, out.ack=2500000, in.chunk=128, out.chunk=60000
[2019-11-30 06:24:22.008][Trace][1][112] got metadata, width=1272, height=694
[2019-11-30 06:24:22.008][Trace][1][112] protocol in.buffer=0, in.ack=2500000, out.ack=2500000, in.chunk=60000, out.chunk=60000
[2019-11-30 06:24:22.008][Trace][1][112] 7B audio sh, codec(10, profile=LC, 2channels, 0kbps, 44100HZ), flv(16bits, 2channels, 44100HZ)
[2019-11-30 06:24:22.008][Trace][1][112] 46B video sh,  codec(7, profile=High, level=3.1, 1280x704, 0kbps, 0.0fps, 0.0s)
[2019-11-30 06:24:22.318][Trace][1][112] got metadata, width=1272, height=694
[2019-11-30 06:24:22.319][Trace][1][112] 7B audio sh, codec(10, profile=LC, 2channels, 0kbps, 44100HZ), flv(16bits, 2channels, 44100HZ)
[2019-11-30 06:24:22.319][Trace][1][112] 46B video sh,  codec(7, profile=High, level=3.1, 1280x704, 0kbps, 0.0fps, 0.0s)
[2019-11-30 06:24:24.684][Warn][1][110][104] client disconnect peer. ret=1007
[2019-11-30 06:24:24.686][Trace][1][107] complex handshake success.
[2019-11-30 06:24:24.768][Trace][1][107] connected, dsu=1
[2019-11-30 06:24:24.811][Warn][1][107][11] RTMP redirect 192.168.0.59:1935 to 172.17.0.2:1935 stream=
[2019-11-30 06:24:24.812][Trace][1][114] RTMP client ip=172.17.0.2, fd=10
[2019-11-30 06:24:24.814][Trace][1][107] complex handshake success.
[2019-11-30 06:24:24.814][Trace][1][114] complex handshake success
[2019-11-30 06:24:24.853][Trace][1][114] connect app, tcUrl=rtmp://172.17.0.2/video, pageUrl=, swfUrl=, schema=rtmp, vhost=172.17.0.2, port=1935, app=video, args=(obj)
[2019-11-30 06:24:24.853][Trace][1][114] edge-srs ip=172.17.0.2, version=3.0.60, pid=1, id=107
[2019-11-30 06:24:24.893][Trace][1][107] connected, dsu=1
[2019-11-30 06:24:24.893][Trace][1][114] client identified, type=Play, vhost=172.17.0.2, app=video, stream=test2, param=?&vhost=172.17.0.2, duration=-1ms
[2019-11-30 06:24:24.893][Trace][1][114] connected stream, tcUrl=rtmp://172.17.0.2/video, pageUrl=, swfUrl=, schema=rtmp, vhost=__defaultVhost__, port=1935, app=video, stream=test2, param=?&vhost=172.17.0.2, args=(obj)
[2019-11-30 06:24:24.893][Trace][1][114] source url=/video/test2, ip=172.17.0.2, cache=1, is_edge=1, source_id=107[107]
[2019-11-30 06:24:24.893][Trace][1][114] dispatch cached gop success. count=0, duration=-1
[2019-11-30 06:24:24.893][Trace][1][114] create consumer, queue_size=0.00, jitter=30000000
[2019-11-30 06:24:24.894][Trace][1][114] set fd=10, SO_SNDBUF=2626560=>175000, buffer=350ms
[2019-11-30 06:24:24.894][Trace][1][114] start play smi=0ms, mw_sleep=350, mw_enabled=1, realtime=0, tcp_nodelay=0
[2019-11-30 06:24:27.318][Warn][1][112][62] EdgeIngester: Ignore error, code=1011 : recv message : recv interlaced message : read basic header : basic header requires 1 bytes : read bytes : timeout 5000 ms
thread #112: ingest() [src/app/srs_app_edge.cpp:315][errno=62]
thread #112: recv_message() [src/protocol/srs_rtmp_stack.cpp:354][errno=62]
thread #112: recv_interlaced_message() [src/protocol/srs_rtmp_stack.cpp:877][errno=62]
thread #112: read_basic_header() [src/protocol/srs_rtmp_stack.cpp:972][errno=62]
thread #112: grow() [src/protocol/srs_protocol_stream.cpp:180][errno=62]
thread #112: read() [src/service/srs_service_st.cpp:463][errno=62]
[2019-11-30 06:24:29.934][Warn][1][107][62] EdgeIngester: Ignore error, code=1011 : recv message : recv interlaced message : read basic header : basic header requires 1 bytes : read bytes : timeout 5000 ms
thread #107: ingest() [src/app/srs_app_edge.cpp:315][errno=62]
thread #107: recv_message() [src/protocol/srs_rtmp_stack.cpp:354][errno=62]
thread #107: recv_interlaced_message() [src/protocol/srs_rtmp_stack.cpp:877][errno=62]
thread #107: read_basic_header() [src/protocol/srs_rtmp_stack.cpp:972][errno=62]
thread #107: grow() [src/protocol/srs_protocol_stream.cpp:180][errno=62]
thread #107: read() [src/service/srs_service_st.cpp:463][errno=62]
[2019-11-30 06:24:30.319][Warn][1][113][104] client disconnect peer. ret=1007
[2019-11-30 06:24:30.322][Trace][1][112] complex handshake success.
[2019-11-30 06:24:30.402][Trace][1][112] connected, dsu=1
[2019-11-30 06:24:30.445][Warn][1][112][11] RTMP redirect 192.168.0.60:1935 to 172.17.0.2:1935 stream=
[2019-11-30 06:24:30.445][Trace][1][115] RTMP client ip=172.17.0.2, fd=13
[2019-11-30 06:24:30.447][Trace][1][112] complex handshake success.
[2019-11-30 06:24:30.447][Trace][1][115] complex handshake success
[2019-11-30 06:24:30.486][Trace][1][115] connect app, tcUrl=rtmp://172.17.0.2/video, pageUrl=, swfUrl=, schema=rtmp, vhost=172.17.0.2, port=1935, app=video, args=(obj)
[2019-11-30 06:24:30.486][Trace][1][115] edge-srs ip=172.17.0.2, version=3.0.60, pid=1, id=112
[2019-11-30 06:24:30.526][Trace][1][112] connected, dsu=1
[2019-11-30 06:24:30.526][Trace][1][115] client identified, type=Play, vhost=172.17.0.2, app=video, stream=test1, param=?&vhost=172.17.0.2, duration=-1ms
[2019-11-30 06:24:30.527][Trace][1][115] connected stream, tcUrl=rtmp://172.17.0.2/video, pageUrl=, swfUrl=, schema=rtmp, vhost=__defaultVhost__, port=1935, app=video, stream=test1, param=?&vhost=172.17.0.2, args=(obj)
[2019-11-30 06:24:30.527][Trace][1][115] source url=/video/test1, ip=172.17.0.2, cache=1, is_edge=1, source_id=112[112]
[2019-11-30 06:24:30.527][Trace][1][115] dispatch cached gop success. count=0, duration=0
[2019-11-30 06:24:30.527][Trace][1][115] create consumer, queue_size=0.00, jitter=30000000
[2019-11-30 06:24:30.527][Trace][1][115] set fd=13, SO_SNDBUF=2626560=>175000, buffer=350ms
[2019-11-30 06:24:30.527][Trace][1][115] start play smi=0ms, mw_sleep=350, mw_enabled=1, realtime=0, tcp_nodelay=0
[2019-11-30 06:24:30.527][Trace][1][115] protocol in.buffer=1000, in.ack=2500000, out.ack=2500000, in.chunk=128, out.chunk=60000
[2019-11-30 06:24:30.566][Trace][1][112] got metadata, width=1272, height=694
[2019-11-30 06:24:30.566][Trace][1][112] protocol in.buffer=0, in.ack=2500000, out.ack=2500000, in.chunk=60000, out.chunk=60000
[2019-11-30 06:24:30.566][Trace][1][112] 7B audio sh, codec(10, profile=LC, 2channels, 0kbps, 44100HZ), flv(16bits, 2channels, 44100HZ)
[2019-11-30 06:24:30.566][Trace][1][112] 46B video sh,  codec(7, profile=High, level=3.1, 1280x704, 0kbps, 0.0fps, 0.0s)
[2019-11-30 06:24:30.877][Trace][1][112] got metadata, width=1272, height=694
[2019-11-30 06:24:30.877][Trace][1][112] 7B audio sh, codec(10, profile=LC, 2channels, 0kbps, 44100HZ), flv(16bits, 2channels, 44100HZ)
[2019-11-30 06:24:30.877][Trace][1][112] 46B video sh,  codec(7, profile=High, level=3.1, 1280x704, 0kbps, 0.0fps, 0.0s)
[2019-11-30 06:24:32.934][Warn][1][114][104] client disconnect peer. ret=1007
[2019-11-30 06:24:32.938][Trace][1][107] complex handshake success.
[2019-11-30 06:24:33.020][Trace][1][107] connected, dsu=1
[2019-11-30 06:24:33.063][Warn][1][107][11] RTMP redirect 192.168.0.59:1935 to 172.17.0.2:1935 stream=
[2019-11-30 06:24:33.063][Trace][1][116] RTMP client ip=172.17.0.2, fd=10
[2019-11-30 06:24:33.065][Trace][1][107] complex handshake success.
[2019-11-30 06:24:33.065][Trace][1][116] complex handshake success
[2019-11-30 06:24:33.104][Trace][1][116] connect app, tcUrl=rtmp://172.17.0.2/video, pageUrl=, swfUrl=, schema=rtmp, vhost=172.17.0.2, port=1935, app=video, args=(obj)
[2019-11-30 06:24:33.104][Trace][1][116] edge-srs ip=172.17.0.2, version=3.0.60, pid=1, id=107
[2019-11-30 06:24:33.144][Trace][1][107] connected, dsu=1
[2019-11-30 06:24:33.144][Trace][1][116] client identified, type=Play, vhost=172.17.0.2, app=video, stream=test2, param=?&vhost=172.17.0.2, duration=-1ms
[2019-11-30 06:24:33.144][Trace][1][116] connected stream, tcUrl=rtmp://172.17.0.2/video, pageUrl=, swfUrl=, schema=rtmp, vhost=__defaultVhost__, port=1935, app=video, stream=test2, param=?&vhost=172.17.0.2, args=(obj)
[2019-11-30 06:24:33.144][Trace][1][116] source url=/video/test2, ip=172.17.0.2, cache=1, is_edge=1, source_id=107[107]
[2019-11-30 06:24:33.144][Trace][1][116] dispatch cached gop success. count=0, duration=-1
[2019-11-30 06:24:33.144][Trace][1][116] create consumer, queue_size=0.00, jitter=30000000
[2019-11-30 06:24:33.145][Trace][1][116] set fd=10, SO_SNDBUF=2626560=>175000, buffer=350ms
[2019-11-30 06:24:33.145][Trace][1][116] start play smi=0ms, mw_sleep=350, mw_enabled=1, realtime=0, tcp_nodelay=0
[2019-11-30 06:24:35.878][Warn][1][112][62] EdgeIngester: Ignore error, code=1011 : recv message : recv interlaced message : read basic header : basic header requires 1 bytes : read bytes : timeout 5000 ms
thread #112: ingest() [src/app/srs_app_edge.cpp:315][errno=62]
thread #112: recv_message() [src/protocol/srs_rtmp_stack.cpp:354][errno=62]
thread #112: recv_interlaced_message() [src/protocol/srs_rtmp_stack.cpp:877][errno=62]
thread #112: read_basic_header() [src/protocol/srs_rtmp_stack.cpp:972][errno=62]
thread #112: grow() [src/protocol/srs_protocol_stream.cpp:180][errno=62]
thread #112: read() [src/service/srs_service_st.cpp:463][errno=62]
[2019-11-30 06:24:38.185][Warn][1][107][62] EdgeIngester: Ignore error, code=1011 : recv message : recv interlaced message : read basic header : basic header requires 1 bytes : read bytes : timeout 5000 ms
thread #107: ingest() [src/app/srs_app_edge.cpp:315][errno=62]
thread #107: recv_message() [src/protocol/srs_rtmp_stack.cpp:354][errno=62]
thread #107: recv_interlaced_message() [src/protocol/srs_rtmp_stack.cpp:877][errno=62]
thread #107: read_basic_header() [src/protocol/srs_rtmp_stack.cpp:972][errno=62]
thread #107: grow() [src/protocol/srs_protocol_stream.cpp:180][errno=62]
thread #107: read() [src/service/srs_service_st.cpp:463][errno=62]
[2019-11-30 06:24:38.879][Warn][1][115][104] client disconnect peer. ret=1007
[2019-11-30 06:24:38.883][Trace][1][112] complex handshake success.
[2019-11-30 06:24:38.965][Trace][1][112] connected, dsu=1
[2019-11-30 06:24:39.007][Warn][1][112][11] RTMP redirect 192.168.0.60:1935 to 172.17.0.2:1935 stream=
[2019-11-30 06:24:39.007][Trace][1][117] RTMP client ip=172.17.0.2, fd=13
[2019-11-30 06:24:39.008][Trace][1][112] complex handshake success.
[2019-11-30 06:24:39.009][Trace][1][117] complex handshake success
[2019-11-30 06:24:39.048][Trace][1][117] connect app, tcUrl=rtmp://172.17.0.2/video, pageUrl=, swfUrl=, schema=rtmp, vhost=172.17.0.2, port=1935, app=video, args=(obj)
[2019-11-30 06:24:39.048][Trace][1][117] edge-srs ip=172.17.0.2, version=3.0.60, pid=1, id=112
[2019-11-30 06:24:39.088][Trace][1][112] connected, dsu=1
[2019-11-30 06:24:39.089][Trace][1][117] client identified, type=Play, vhost=172.17.0.2, app=video, stream=test1, param=?&vhost=172.17.0.2, duration=-1ms
[2019-11-30 06:24:39.089][Trace][1][117] connected stream, tcUrl=rtmp://172.17.0.2/video, pageUrl=, swfUrl=, schema=rtmp, vhost=__defaultVhost__, port=1935, app=video, stream=test1, param=?&vhost=172.17.0.2, args=(obj)
[2019-11-30 06:24:39.089][Trace][1][117] source url=/video/test1, ip=172.17.0.2, cache=1, is_edge=1, source_id=112[112]
[2019-11-30 06:24:39.089][Trace][1][117] dispatch cached gop success. count=0, duration=0
[2019-11-30 06:24:39.089][Trace][1][117] create consumer, queue_size=0.00, jitter=30000000
[2019-11-30 06:24:39.089][Trace][1][117] set fd=13, SO_SNDBUF=2626560=>175000, buffer=350ms
[2019-11-30 06:24:39.089][Trace][1][117] start play smi=0ms, mw_sleep=350, mw_enabled=1, realtime=0, tcp_nodelay=0
[2019-11-30 06:24:39.089][Trace][1][117] protocol in.buffer=1000, in.ack=2500000, out.ack=2500000, in.chunk=128, out.chunk=60000
[2019-11-30 06:24:39.128][Trace][1][112] got metadata, width=1272, height=694
[2019-11-30 06:24:39.128][Trace][1][112] protocol in.buffer=0, in.ack=2500000, out.ack=2500000, in.chunk=60000, out.chunk=60000
[2019-11-30 06:24:39.128][Trace][1][112] 7B audio sh, codec(10, profile=LC, 2channels, 0kbps, 44100HZ), flv(16bits, 2channels, 44100HZ)
[2019-11-30 06:24:39.128][Trace][1][112] 46B video sh,  codec(7, profile=High, level=3.1, 1280x704, 0kbps, 0.0fps, 0.0s)
[2019-11-30 06:24:39.439][Trace][1][112] got metadata, width=1272, height=694
[2019-11-30 06:24:39.440][Trace][1][112] 7B audio sh, codec(10, profile=LC, 2channels, 0kbps, 44100HZ), flv(16bits, 2channels, 44100HZ)
[2019-11-30 06:24:39.440][Trace][1][112] 46B video sh,  codec(7, profile=High, level=3.1, 1280x704, 0kbps, 0.0fps, 0.0s)
[2019-11-30 06:24:41.186][Warn][1][116][104] client disconnect peer. ret=1007
[2019-11-30 06:24:41.188][Trace][1][107] complex handshake success.
[2019-11-30 06:24:41.269][Trace][1][107] connected, dsu=1
[2019-11-30 06:24:41.312][Warn][1][107][11] RTMP redirect 192.168.0.59:1935 to 172.17.0.2:1935 stream=
[2019-11-30 06:24:41.313][Trace][1][118] RTMP client ip=172.17.0.2, fd=10
[2019-11-30 06:24:41.315][Trace][1][107] complex handshake success.
[2019-11-30 06:24:41.316][Trace][1][118] complex handshake success
[2019-11-30 06:24:41.355][Trace][1][118] connect app, tcUrl=rtmp://172.17.0.2/video, pageUrl=, swfUrl=, schema=rtmp, vhost=172.17.0.2, port=1935, app=video, args=(obj)
[2019-11-30 06:24:41.355][Trace][1][118] edge-srs ip=172.17.0.2, version=3.0.60, pid=1, id=107
[2019-11-30 06:24:41.395][Trace][1][107] connected, dsu=1
[2019-11-30 06:24:41.396][Trace][1][118] client identified, type=Play, vhost=172.17.0.2, app=video, stream=test2, param=?&vhost=172.17.0.2, duration=-1ms
[2019-11-30 06:24:41.396][Trace][1][118] connected stream, tcUrl=rtmp://172.17.0.2/video, pageUrl=, swfUrl=, schema=rtmp, vhost=__defaultVhost__, port=1935, app=video, stream=test2, param=?&vhost=172.17.0.2, args=(obj)
[2019-11-30 06:24:41.396][Trace][1][118] source url=/video/test2, ip=172.17.0.2, cache=1, is_edge=1, source_id=107[107]
[2019-11-30 06:24:41.396][Trace][1][118] dispatch cached gop success. count=0, duration=-1
[2019-11-30 06:24:41.396][Trace][1][118] create consumer, queue_size=0.00, jitter=30000000
[2019-11-30 06:24:41.396][Trace][1][118] set fd=10, SO_SNDBUF=2626560=>175000, buffer=350ms
[2019-11-30 06:24:41.396][Trace][1][118] start play smi=0ms, mw_sleep=350, mw_enabled=1, realtime=0, tcp_nodelay=0
[2019-11-30 06:24:41.396][Trace][1][118] -> PLA time=0, msgs=0, okbps=0,0,0, ikbps=0,0,0, mw=350
[2019-11-30 06:24:44.440][Warn][1][112][62] EdgeIngester: Ignore error, code=1011 : recv message : recv interlaced message : read basic header : basic header requires 1 bytes : read bytes : timeout 5000 ms
thread #112: ingest() [src/app/srs_app_edge.cpp:315][errno=62]
thread #112: recv_message() [src/protocol/srs_rtmp_stack.cpp:354][errno=62]
thread #112: recv_interlaced_message() [src/protocol/srs_rtmp_stack.cpp:877][errno=62]
thread #112: read_basic_header() [src/protocol/srs_rtmp_stack.cpp:972][errno=62]
thread #112: grow() [src/protocol/srs_protocol_stream.cpp:180][errno=62]
thread #112: read() [src/service/srs_service_st.cpp:463][errno=62]

[END] 2019/11/30 14:24:46

The log of Edge has a warning:

[2019-11-30 06:24:00.139][Warn][1][107][11] RTMP redirect 192.168.0.59:1935 to 172.17.0.2:1935 stream=

In fact, the IP assigned by Docker for all three servers is this:

edge.log:[2019-11-30 06:23:34.564][Warn][1][0][0] stats network use index=0, ip=172.17.0.2
serverA.log:[2019-11-30 06:23:30.235][Warn][1][0][0] stats network use index=0, ip=172.17.0.2
serverB.log:[2019-11-30 06:23:32.514][Warn][1][0][0] stats network use index=0, ip=172.17.0.2

This will result in connecting to oneself, causing a timeout of 5000ms with no data.

107 is the origin link.

[2019-11-30 06:24:00.012][Trace][1][106] update source_id=107[107]
[2019-11-30 06:24:00.016][Trace][1][107] complex handshake success.
[2019-11-30 06:24:00.097][Trace][1][107] connected, dsu=1
[2019-11-30 06:24:00.098][Trace][1][107] edge change from 100 to state 101 (pull).
[2019-11-30 06:24:00.139][Warn][1][107][11] RTMP redirect 192.168.0.59:1935 to 172.17.0.2:1935 stream=
[2019-11-30 06:24:05.262][Warn][1][107][62] EdgeIngester: Ignore error, code=1011 : recv message : recv interlaced message : read basic header : basic header requires 1 bytes : read bytes : timeout 5000 ms

It is connected to serverA. The logs are as follows:

[2019-11-30 06:24:00.013][Trace][1][107] RTMP client ip=172.17.0.2, fd=10
[2019-11-30 06:24:00.016][Trace][1][107] complex handshake success
[2019-11-30 06:24:00.057][Trace][1][107] connect app, tcUrl=rtmp://192.168.0.60/video, pageUrl=, swfUrl=, schema=rtmp, vhost=192.168.0.60, port=1935, app=video, args=(obj)
[2019-11-30 06:24:00.057][Trace][1][107] edge-srs ip=172.17.0.2, version=3.0.60, pid=1, id=107
[2019-11-30 06:24:00.099][Trace][1][107] client identified, type=Play, vhost=192.168.0.60, app=video, stream=test2, param=?&vhost=192.168.0.60, duration=-1ms
[2019-11-30 06:24:00.099][Trace][1][107] connected stream, tcUrl=rtmp://192.168.0.60/video, pageUrl=, swfUrl=, schema=rtmp, vhost=__defaultVhost__, port=1935, app=video, stream=test2, param=?&vhost=192.168.0.60, args=(obj)
[2019-11-30 06:24:00.099][Trace][1][107] source url=/video/test2, ip=172.17.0.2, cache=1, is_edge=0, source_id=-1[-1]
[2019-11-30 06:24:00.102][Trace][1][107] ignore private address: 172.17.0.2
[2019-11-30 06:24:00.102][Warn][1][107][11] use private address as ip: 172.17.0.2
[2019-11-30 06:24:00.102][Trace][1][107] http: cluster redirect 172.17.0.2:1935 ok, url=http://192.168.0.59:9090/api/v1/clusters?vhost=__defaultVhost__&ip=192.168.0.60&app=video&stream=test2, response={"code":0,"data":{"query":{"ip":"192.168.0.60","vhost":"__defaultVhost__","app":"video","stream":"test2"},"origin":{"ip":"172.17.0.2","port":1935,"vhost":"__defaultVhost__","api":"172.17.0.2:9090","routers":["172.17.0.2:9090"]}}}
[2019-11-30 06:24:00.102][Trace][1][107] rtmp: redirect in cluster, from=192.168.0.60:1935, target=172.17.0.2:1935, url=http://192.168.0.59:9090/api/v1/clusters?vhost=__defaultVhost__&ip=192.168.0.60&app=video&stream=test2
[2019-11-30 06:24:00.140][Trace][1][107] client finished.

The address returned by serverA is this docker IP, which is 172.17.0.2.

In other words:

  1. The edge is connected to a serverA that does not have the stream.
  2. ServerA accesses serverB and finds that the stream is on serverB, so it gives the address 172.17.0.2 to the edge.
  3. The edge accesses this incorrect address, causing it to continuously fail to retrieve the stream correctly.

There are two remaining issues to investigate:

  1. Srs-docker also has an IP assigned by Docker, so why hasn't this problem been reproduced?
  2. It should consistently fail to play, so why does it appear to be able to play?

TRANS_BY_GPT3

Only one video can be played, which is ServA's. The address returned by ServA for ServB is incorrect, so it cannot be played.

The reason why the problem could not be reproduced is because the docker containers were deployed on the same machine, which means that the containers can communicate with each other. In other words, all the docker containers are in the same internal network, so the problem could not be reproduced.

TRANS_BY_GPT3

@zynfly You're right, I confirmed the first issue, srs-docker also has a problem.

107 is the origin link, accessing serverA, and being redirected to serverB (172.17.0.4).

[2019-11-30 09:50:32.769][Trace][1][107] complex handshake success.
[2019-11-30 09:50:32.830][Trace][1][107] connected, dsu=1
[2019-11-30 09:50:32.832][Trace][1][107] edge change from 100 to state 101 (pull).
[2019-11-30 09:50:32.890][Warn][1][107][11] RTMP redirect docker:19351 to 172.17.0.4:19351 stream=

serverA returns the docker IP of serverB (172.17.0.4).

[2019-11-30 09:50:32.838][Warn][1][105][11] use private address as ip: 172.17.0.2
[2019-11-30 09:50:32.838][Trace][1][105] http: cluster redirect 172.17.0.4:19351 ok, url=http://docker:9091/api/v1/clusters?vhost=__defaultVhost__&ip=docker&app=live&stream=livestream, response={"code":0,"data":{"query":{"ip":"docker","vhost":"__defaultVhost__","app":"live","stream":"livestream"},"origin":{"ip":"172.17.0.4","port":19351,"vhost":"__defaultVhost__","api":"172.17.0.4:9091","routers":["172.17.0.4:9091"]}}}
[2019-11-30 09:50:32.838][Trace][1][105] rtmp: redirect in cluster, from=docker:19350, target=172.17.0.4:19351, url=http://docker:9091/api/v1/clusters?vhost=__defaultVhost__&ip=docker&app=live&stream=livestream

However, edge and serverB are running in the same docker, as @zynfly mentioned, so they can communicate with each other.

TRANS_BY_GPT3

Second question, from the logs, it appears that there has never been a successful playback of video/test2.

TRANS_BY_GPT3

When the origin server cluster redirects, it returns the IP to the client (usually the edge) in the following order:

For example, when the stream is on server B and the edge accesses server A, server A will return server B's address to the edge through RTMP Redirect.

  1. First, check the "listen" configuration in the server B configuration file. If it is not set to "localhost" or "loopback," then use this address. For example: listen 182.92.80.26:1935 means that this IP should be used. By default, it is usually set as listen 1935, which actually means listen 0.0.0.0:1935, and it will ignore this IP.

  2. Server A's upstream cluster configuration includes server B's IP. When server A accesses server B, server B's IP is included in the request. For example, the URL for server A accessing server B could be http://127.0.0.1:9090/api/v1/clusters?vhost=__defaultVhost__&ip=192.168.0.10&app=live&stream=livestream&coworker=106.19.31.10, where the "coworker" parameter is 106.19.31.10, and this IP is used as the server B's service IP. This IP can be accessed by other upstream servers and potentially by the edge as well.

  3. Use the IP discovered by server B itself. This is configured through the stats{network 0;} configuration and refers to the first network interface card (NIC). Usually, it will prioritize ignoring the "lo" (loopback) NIC unless there are no other NICs available. Generally, this IP is also usable, but sometimes, for example, when running in Docker, it may be an unreachable NIC.

The following are definitions of "localhost" and "loopback":

  • "localhost" refers to the loopback network interface of a device, typically represented by the IP address 127.0.0.1. It is used to access the network services running on the same device.
  • "loopback" is a virtual network interface that allows a device to send and receive network traffic to itself. It is commonly represented by the IP address range 127.0.0.0/8, with 127.0.0.1 being the most commonly used address. The loopback interface is often used for testing and troubleshooting network applications.
#define SRS_CONSTS_LOCALHOST "127.0.0.1"
#define SRS_CONSTS_LOOPBACK "0.0.0.0"
#define SRS_CONSTS_LOOPBACK6 "::"

TRANS_BY_GPT3

In Docker or NAT network environment, there are no accessible addresses. All network card addresses are internal addresses and cannot be accessed externally. In Docker environment, the accessible IP should be the host machine IP, while in NAT environment, the accessible IP is the gateway IP.

TRANS_BY_GPT3

@zynfly, what you said is the second situation mentioned above. You can read it. The rules mentioned above can support your requirements, as well as support having a direct public IP, which means a non-docker situation.

TRANS_BY_GPT3

Docker image: https://github.com/ossrs/srs-docker#aliyun

Fixed in v3.0-a3, 3.0.67

Redirect edge to serverB (19351) on serverB.

[2019-11-30 21:37:25.968][Trace][1][354] http: cluster redirect docker:19350 ok, url=http://docker:9090/api/v1/clusters?vhost=__defaultVhost__&ip=docker&app=live&stream=livestream, response={"code":0,"data":{"query":{"ip":"docker","vhost":"__defaultVhost__","app":"live","stream":"livestream"},"origin":{"ip":"docker","port":19350,"vhost":"__defaultVhost__","api":"docker:9090","routers":["docker:9090"]}}}

The edge first connects to serverA (172.17.0.3:19350), and then connects to serverB (172.17.0.2:19351).

[2019-11-30 21:37:25.960][Trace][1][235] connected, version=3.0.66.0, ip=172.17.0.3, pid=1, id=354, dsu=1
[2019-11-30 21:37:25.962][Trace][1][235] edge change from 100 to state 101 (pull).
[2019-11-30 21:37:26.013][Warn][1][235][11] RTMP redirect docker:19350 to docker:19350 stream=
[2019-11-30 21:37:26.019][Trace][1][235] complex handshake success.
[2019-11-30 21:37:26.070][Trace][1][235] connected, version=3.0.66.0, ip=172.17.0.2, pid=1, id=1043, dsu=1

Verification passed.

TRANS_BY_GPT3

Regarding the storage issue of the origin server cluster, please refer to: #1595 (comment)

Regarding the API issue of the origin server cluster, please refer to: #1607 (comment)

TRANS_BY_GPT3

Regarding the storage issue of the origin server cluster, please refer to: #1595 (comment)

Regarding the API issue of the origin server cluster, please refer to: #1607 (comment)

TRANS_BY_GPT3