Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

webrtc推流,转rtmp,同时配置有hls,会导致每秒生成十数个ts文件' translates to: 'When using webrtc to push the stream and convert it to rtmp, while also configuring hls, it will result in generating dozens of ts files per second. #2421

Closed
itmanvip opened this issue Jun 18, 2021 · 2 comments · Fixed by #2470
Assignees
Labels
Bug It might be a bug. TransByAI Translated by AI/GPT.
Milestone

Comments

@itmanvip
Copy link

itmanvip commented Jun 18, 2021

Description
srs is configured with webrtc, webrtc to rtmp, hls. When using webrtc for streaming, it generates dozens of ts files per second.

Please describe the issue you are facing.

  1. SRS Version: 4.0.123
  2. SRS log is as follows:

Please make sure to maintain the markdown structure.

[2021-06-18 14:42:07.481][Trace][1][0sa331x5] http: on_hls ok, client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, request={"action":"on_hls","client_id":"0sa331x5","ip":"","vhost":"__defaultVhost__","app":"q8v12ayoq6","stream":"891886082","param":"","duration":8440.98,"cwd":"/usr/local/srs","file":"./objs/nginx/html/q8v12ayoq6/891886082-3419.ts","url":"q8v12ayoq6/891886082-3419.ts","m3u8":"./objs/nginx/html/q8v12ayoq6/891886082.m3u8","m3u8_url":"q8v12ayoq6/891886082.m3u8","seq_no":3419}, response=0
[2021-06-18 14:42:07.486][Trace][1][0sa331x5] http hook on_hls_notify success. client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, code=200, spent=4ms, read=1B, err=Success
[2021-06-18 14:42:07.490][Trace][1][0sa331x5] http: on_hls ok, client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, request={"action":"on_hls","client_id":"0sa331x5","ip":"","vhost":"__defaultVhost__","app":"q8v12ayoq6","stream":"891886082","param":"","duration":8440.97,"cwd":"/usr/local/srs","file":"./objs/nginx/html/q8v12ayoq6/891886082-3420.ts","url":"q8v12ayoq6/891886082-3420.ts","m3u8":"./objs/nginx/html/q8v12ayoq6/891886082.m3u8","m3u8_url":"q8v12ayoq6/891886082.m3u8","seq_no":3420}, response=0
[2021-06-18 14:42:07.494][Trace][1][0sa331x5] http hook on_hls_notify success. client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, code=200, spent=3ms, read=1B, err=Success
[2021-06-18 14:42:07.496][Trace][1][0sa331x5] http: on_hls ok, client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, request={"action":"on_hls","client_id":"0sa331x5","ip":"","vhost":"__defaultVhost__","app":"q8v12ayoq6","stream":"891886082","param":"","duration":8440.96,"cwd":"/usr/local/srs","file":"./objs/nginx/html/q8v12ayoq6/891886082-3421.ts","url":"q8v12ayoq6/891886082-3421.ts","m3u8":"./objs/nginx/html/q8v12ayoq6/891886082.m3u8","m3u8_url":"q8v12ayoq6/891886082.m3u8","seq_no":3421}, response=0
[2021-06-18 14:42:07.498][Trace][1][0sa331x5] http hook on_hls_notify success. client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, code=200, spent=1ms, read=1B, err=Success
[2021-06-18 14:42:07.500][Trace][1][0sa331x5] http: on_hls ok, client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, request={"action":"on_hls","client_id":"0sa331x5","ip":"","vhost":"__defaultVhost__","app":"q8v12ayoq6","stream":"891886082","param":"","duration":8440.98,"cwd":"/usr/local/srs","file":"./objs/nginx/html/q8v12ayoq6/891886082-3422.ts","url":"q8v12ayoq6/891886082-3422.ts","m3u8":"./objs/nginx/html/q8v12ayoq6/891886082.m3u8","m3u8_url":"q8v12ayoq6/891886082.m3u8","seq_no":3422}, response=0
[2021-06-18 14:42:07.503][Trace][1][0sa331x5] http hook on_hls_notify success. client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, code=200, spent=3ms, read=1B, err=Success
[2021-06-18 14:42:07.505][Trace][1][0sa331x5] http: on_hls ok, client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, request={"action":"on_hls","client_id":"0sa331x5","ip":"","vhost":"__defaultVhost__","app":"q8v12ayoq6","stream":"891886082","param":"","duration":8440.97,"cwd":"/usr/local/srs","file":"./objs/nginx/html/q8v12ayoq6/891886082-3423.ts","url":"q8v12ayoq6/891886082-3423.ts","m3u8":"./objs/nginx/html/q8v12ayoq6/891886082.m3u8","m3u8_url":"q8v12ayoq6/891886082.m3u8","seq_no":3423}, response=0
[2021-06-18 14:42:07.507][Trace][1][0sa331x5] http hook on_hls_notify success. client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, code=200, spent=2ms, read=1B, err=Success
[2021-06-18 14:42:07.509][Trace][1][0sa331x5] http: on_hls ok, client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, request={"action":"on_hls","client_id":"0sa331x5","ip":"","vhost":"__defaultVhost__","app":"q8v12ayoq6","stream":"891886082","param":"","duration":8440.98,"cwd":"/usr/local/srs","file":"./objs/nginx/html/q8v12ayoq6/891886082-3424.ts","url":"q8v12ayoq6/891886082-3424.ts","m3u8":"./objs/nginx/html/q8v12ayoq6/891886082.m3u8","m3u8_url":"q8v12ayoq6/891886082.m3u8","seq_no":3424}, response=0
[2021-06-18 14:42:07.510][Trace][1][0sa331x5] http hook on_hls_notify success. client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, code=200, spent=1ms, read=1B, err=Success
[2021-06-18 14:42:07.512][Trace][1][0sa331x5] http: on_hls ok, client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, request={"action":"on_hls","client_id":"0sa331x5","ip":"","vhost":"__defaultVhost__","app":"q8v12ayoq6","stream":"891886082","param":"","duration":8440.97,"cwd":"/usr/local/srs","file":"./objs/nginx/html/q8v12ayoq6/891886082-3425.ts","url":"q8v12ayoq6/891886082-3425.ts","m3u8":"./objs/nginx/html/q8v12ayoq6/891886082.m3u8","m3u8_url":"q8v12ayoq6/891886082.m3u8","seq_no":3425}, response=0
[2021-06-18 14:42:07.514][Trace][1][0sa331x5] http hook on_hls_notify success. client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, code=200, spent=1ms, read=1B, err=Success
[2021-06-18 14:42:07.519][Trace][1][0sa331x5] http: on_hls ok, client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, request={"action":"on_hls","client_id":"0sa331x5","ip":"","vhost":"__defaultVhost__","app":"q8v12ayoq6","stream":"891886082","param":"","duration":8440.96,"cwd":"/usr/local/srs","file":"./objs/nginx/html/q8v12ayoq6/891886082-3426.ts","url":"q8v12ayoq6/891886082-3426.ts","m3u8":"./objs/nginx/html/q8v12ayoq6/891886082.m3u8","m3u8_url":"q8v12ayoq6/891886082.m3u8","seq_no":3426}, response=0
[2021-06-18 14:42:07.523][Trace][1][0sa331x5] http hook on_hls_notify success. client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, code=200, spent=3ms, read=1B, err=Success
[2021-06-18 14:42:07.528][Trace][1][0sa331x5] http: on_hls ok, client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, request={"action":"on_hls","client_id":"0sa331x5","ip":"","vhost":"__defaultVhost__","app":"q8v12ayoq6","stream":"891886082","param":"","duration":8440.99,"cwd":"/usr/local/srs","file":"./objs/nginx/html/q8v12ayoq6/891886082-3427.ts","url":"q8v12ayoq6/891886082-3427.ts","m3u8":"./objs/nginx/html/q8v12ayoq6/891886082.m3u8","m3u8_url":"q8v12ayoq6/891886082.m3u8","seq_no":3427}, response=0
[2021-06-18 14:42:07.531][Trace][1][0sa331x5] http hook on_hls_notify success. client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, code=200, spent=3ms, read=1B, err=Success
[2021-06-18 14:42:07.536][Trace][1][0sa331x5] http: on_hls ok, client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, request={"action":"on_hls","client_id":"0sa331x5","ip":"","vhost":"__defaultVhost__","app":"q8v12ayoq6","stream":"891886082","param":"","duration":8440.96,"cwd":"/usr/local/srs","file":"./objs/nginx/html/q8v12ayoq6/891886082-3428.ts","url":"q8v12ayoq6/891886082-3428.ts","m3u8":"./objs/nginx/html/q8v12ayoq6/891886082.m3u8","m3u8_url":"q8v12ayoq6/891886082.m3u8","seq_no":3428}, response=0
[2021-06-18 14:42:07.539][Trace][1][0sa331x5] http hook on_hls_notify success. client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, code=200, spent=3ms, read=1B, err=Success
[2021-06-18 14:42:07.543][Trace][1][0sa331x5] http: on_hls ok, client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, request={"action":"on_hls","client_id":"0sa331x5","ip":"","vhost":"__defaultVhost__","app":"q8v12ayoq6","stream":"891886082","param":"","duration":8440.98,"cwd":"/usr/local/srs","file":"./objs/nginx/html/q8v12ayoq6/891886082-3429.ts","url":"q8v12ayoq6/891886082-3429.ts","m3u8":"./objs/nginx/html/q8v12ayoq6/891886082.m3u8","m3u8_url":"q8v12ayoq6/891886082.m3u8","seq_no":3429}, response=0
[2021-06-18 14:42:07.547][Trace][1][0sa331x5] http hook on_hls_notify success. client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, code=200, spent=3ms, read=1B, err=Success
[2021-06-18 14:42:07.552][Trace][1][0sa331x5] http: on_hls ok, client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, request={"action":"on_hls","client_id":"0sa331x5","ip":"","vhost":"__defaultVhost__","app":"q8v12ayoq6","stream":"891886082","param":"","duration":8440.97,"cwd":"/usr/local/srs","file":"./objs/nginx/html/q8v12ayoq6/891886082-3430.ts","url":"q8v12ayoq6/891886082-3430.ts","m3u8":"./objs/nginx/html/q8v12ayoq6/891886082.m3u8","m3u8_url":"q8v12ayoq6/891886082.m3u8","seq_no":3430}, response=0
[2021-06-18 14:42:07.556][Trace][1][0sa331x5] http hook on_hls_notify success. client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, code=200, spent=4ms, read=1B, err=Success
[2021-06-18 14:42:07.560][Trace][1][0sa331x5] http: on_hls ok, client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, request={"action":"on_hls","client_id":"0sa331x5","ip":"","vhost":"__defaultVhost__","app":"q8v12ayoq6","stream":"891886082","param":"","duration":8440.98,"cwd":"/usr/local/srs","file":"./objs/nginx/html/q8v12ayoq6/891886082-3431.ts","url":"q8v12ayoq6/891886082-3431.ts","m3u8":"./objs/nginx/html/q8v12ayoq6/891886082.m3u8","m3u8_url":"q8v12ayoq6/891886082.m3u8","seq_no":3431}, response=0
[2021-06-18 14:42:07.563][Trace][1][0sa331x5] http hook on_hls_notify success. client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, code=200, spent=3ms, read=1B, err=Success
[2021-06-18 14:42:07.568][Trace][1][0sa331x5] http: on_hls ok, client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, request={"action":"on_hls","client_id":"0sa331x5","ip":"","vhost":"__defaultVhost__","app":"q8v12ayoq6","stream":"891886082","param":"","duration":8440.97,"cwd":"/usr/local/srs","file":"./objs/nginx/html/q8v12ayoq6/891886082-3432.ts","url":"q8v12ayoq6/891886082-3432.ts","m3u8":"./objs/nginx/html/q8v12ayoq6/891886082.m3u8","m3u8_url":"q8v12ayoq6/891886082.m3u8","seq_no":3432}, response=0
[2021-06-18 14:42:07.572][Trace][1][0sa331x5] http hook on_hls_notify success. client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, code=200, spent=4ms, read=1B, err=Success
[2021-06-18 14:42:07.577][Trace][1][0sa331x5] http: on_hls ok, client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, request={"action":"on_hls","client_id":"0sa331x5","ip":"","vhost":"__defaultVhost__","app":"q8v12ayoq6","stream":"891886082","param":"","duration":8440.96,"cwd":"/usr/local/srs","file":"./objs/nginx/html/q8v12ayoq6/891886082-3433.ts","url":"q8v12ayoq6/891886082-3433.ts","m3u8":"./objs/nginx/html/q8v12ayoq6/891886082.m3u8","m3u8_url":"q8v12ayoq6/891886082.m3u8","seq_no":3433}, response=0
[2021-06-18 14:42:07.578][Trace][1][0sa331x5] http hook on_hls_notify success. client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, code=200, spent=1ms, read=1B, err=Success
[2021-06-18 14:42:07.580][Trace][1][0sa331x5] http: on_hls ok, client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, request={"action":"on_hls","client_id":"0sa331x5","ip":"","vhost":"__defaultVhost__","app":"q8v12ayoq6","stream":"891886082","param":"","duration":8440.98,"cwd":"/usr/local/srs","file":"./objs/nginx/html/q8v12ayoq6/891886082-3434.ts","url":"q8v12ayoq6/891886082-3434.ts","m3u8":"./objs/nginx/html/q8v12ayoq6/891886082.m3u8","m3u8_url":"q8v12ayoq6/891886082.m3u8","seq_no":3434}, response=0
[2021-06-18 14:42:07.582][Trace][1][0sa331x5] http hook on_hls_notify success. client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, code=200, spent=2ms, read=1B, err=Success
[2021-06-18 14:42:07.585][Trace][1][0sa331x5] http: on_hls ok, client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, request={"action":"on_hls","client_id":"0sa331x5","ip":"","vhost":"__defaultVhost__","app":"q8v12ayoq6","stream":"891886082","param":"","duration":8440.97,"cwd":"/usr/local/srs","file":"./objs/nginx/html/q8v12ayoq6/891886082-3435.ts","url":"q8v12ayoq6/891886082-3435.ts","m3u8":"./objs/nginx/html/q8v12ayoq6/891886082.m3u8","m3u8_url":"q8v12ayoq6/891886082.m3u8","seq_no":3435}, response=0
[2021-06-18 14:42:07.587][Trace][1][0sa331x5] http hook on_hls_notify success. client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, code=200, spent=1ms, read=1B, err=Success
[2021-06-18 14:42:07.589][Trace][1][0sa331x5] http: on_hls ok, client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, request={"action":"on_hls","client_id":"0sa331x5","ip":"","vhost":"__defaultVhost__","app":"q8v12ayoq6","stream":"891886082","param":"","duration":8440.98,"cwd":"/usr/local/srs","file":"./objs/nginx/html/q8v12ayoq6/891886082-3436.ts","url":"q8v12ayoq6/891886082-3436.ts","m3u8":"./objs/nginx/html/q8v12ayoq6/891886082.m3u8","m3u8_url":"q8v12ayoq6/891886082.m3u8","seq_no":3436}, response=0
[2021-06-18 14:42:07.591][Trace][1][0sa331x5] http hook on_hls_notify success. client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, code=200, spent=1ms, read=1B, err=Success
[2021-06-18 14:42:07.593][Trace][1][0sa331x5] http: on_hls ok, client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, request={"action":"on_hls","client_id":"0sa331x5","ip":"","vhost":"__defaultVhost__","app":"q8v12ayoq6","stream":"891886082","param":"","duration":8440.95,"cwd":"/usr/local/srs","file":"./objs/nginx/html/q8v12ayoq6/891886082-3437.ts","url":"q8v12ayoq6/891886082-3437.ts","m3u8":"./objs/nginx/html/q8v12ayoq6/891886082.m3u8","m3u8_url":"q8v12ayoq6/891886082.m3u8","seq_no":3437}, response=0
[2021-06-18 14:42:07.595][Trace][1][0sa331x5] http hook on_hls_notify success. client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, code=200, spent=1ms, read=1B, err=Success
[2021-06-18 14:42:07.597][Trace][1][0sa331x5] http: on_hls ok, client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, request={"action":"on_hls","client_id":"0sa331x5","ip":"","vhost":"__defaultVhost__","app":"q8v12ayoq6","stream":"891886082","param":"","duration":8440.96,"cwd":"/usr/local/srs","file":"./objs/nginx/html/q8v12ayoq6/891886082-3438.ts","url":"q8v12ayoq6/891886082-3438.ts","m3u8":"./objs/nginx/html/q8v12ayoq6/891886082.m3u8","m3u8_url":"q8v12ayoq6/891886082.m3u8","seq_no":3438}, response=0
[2021-06-18 14:42:07.602][Trace][1][0sa331x5] http hook on_hls_notify success. client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, code=200, spent=5ms, read=1B, err=Success
[2021-06-18 14:42:07.605][Trace][1][0sa331x5] http: on_hls ok, client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, request={"action":"on_hls","client_id":"0sa331x5","ip":"","vhost":"__defaultVhost__","app":"q8v12ayoq6","stream":"891886082","param":"","duration":8440.99,"cwd":"/usr/local/srs","file":"./objs/nginx/html/q8v12ayoq6/891886082-3439.ts","url":"q8v12ayoq6/891886082-3439.ts","m3u8":"./objs/nginx/html/q8v12ayoq6/891886082.m3u8","m3u8_url":"q8v12ayoq6/891886082.m3u8","seq_no":3439}, response=0
[2021-06-18 14:42:07.609][Trace][1][0sa331x5] http hook on_hls_notify success. client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, code=200, spent=4ms, read=1B, err=Success
[2021-06-18 14:42:07.613][Trace][1][0sa331x5] http: on_hls ok, client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, request={"action":"on_hls","client_id":"0sa331x5","ip":"","vhost":"__defaultVhost__","app":"q8v12ayoq6","stream":"891886082","param":"","duration":8440.96,"cwd":"/usr/local/srs","file":"./objs/nginx/html/q8v12ayoq6/891886082-3440.ts","url":"q8v12ayoq6/891886082-3440.ts","m3u8":"./objs/nginx/html/q8v12ayoq6/891886082.m3u8","m3u8_url":"q8v12ayoq6/891886082.m3u8","seq_no":3440}, response=0
[2021-06-18 14:42:07.617][Trace][1][0sa331x5] http hook on_hls_notify success. client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, code=200, spent=4ms, read=1B, err=Success
[2021-06-18 14:42:07.620][Trace][1][0sa331x5] http: on_hls ok, client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, request={"action":"on_hls","client_id":"0sa331x5","ip":"","vhost":"__defaultVhost__","app":"q8v12ayoq6","stream":"891886082","param":"","duration":8440.98,"cwd":"/usr/local/srs","file":"./objs/nginx/html/q8v12ayoq6/891886082-3441.ts","url":"q8v12ayoq6/891886082-3441.ts","m3u8":"./objs/nginx/html/q8v12ayoq6/891886082.m3u8","m3u8_url":"q8v12ayoq6/891886082.m3u8","seq_no":3441}, response=0
[2021-06-18 14:42:07.624][Trace][1][0sa331x5] http hook on_hls_notify success. client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, code=200, spent=3ms, read=1B, err=Success
[2021-06-18 14:42:07.628][Trace][1][0sa331x5] http: on_hls ok, client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, request={"action":"on_hls","client_id":"0sa331x5","ip":"","vhost":"__defaultVhost__","app":"q8v12ayoq6","stream":"891886082","param":"","duration":8440.97,"cwd":"/usr/local/srs","file":"./objs/nginx/html/q8v12ayoq6/891886082-3442.ts","url":"q8v12ayoq6/891886082-3442.ts","m3u8":"./objs/nginx/html/q8v12ayoq6/891886082.m3u8","m3u8_url":"q8v12ayoq6/891886082.m3u8","seq_no":3442}, response=0
[2021-06-18 14:42:07.632][Trace][1][0sa331x5] http hook on_hls_notify success. client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, code=200, spent=3ms, read=1B, err=Success
[2021-06-18 14:42:07.636][Trace][1][0sa331x5] http: on_hls ok, client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, request={"action":"on_hls","client_id":"0sa331x5","ip":"","vhost":"__defaultVhost__","app":"q8v12ayoq6","stream":"891886082","param":"","duration":8440.98,"cwd":"/usr/local/srs","file":"./objs/nginx/html/q8v12ayoq6/891886082-3443.ts","url":"q8v12ayoq6/891886082-3443.ts","m3u8":"./objs/nginx/html/q8v12ayoq6/891886082.m3u8","m3u8_url":"q8v12ayoq6/891886082.m3u8","seq_no":3443}, response=0
[2021-06-18 14:42:07.640][Trace][1][0sa331x5] http hook on_hls_notify success. client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, code=200, spent=3ms, read=1B, err=Success
[2021-06-18 14:42:07.644][Trace][1][0sa331x5] http: on_hls ok, client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, request={"action":"on_hls","client_id":"0sa331x5","ip":"","vhost":"__defaultVhost__","app":"q8v12ayoq6","stream":"891886082","param":"","duration":8440.97,"cwd":"/usr/local/srs","file":"./objs/nginx/html/q8v12ayoq6/891886082-3444.ts","url":"q8v12ayoq6/891886082-3444.ts","m3u8":"./objs/nginx/html/q8v12ayoq6/891886082.m3u8","m3u8_url":"q8v12ayoq6/891886082.m3u8","seq_no":3444}, response=0
[2021-06-18 14:42:07.648][Trace][1][0sa331x5] http hook on_hls_notify success. client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, code=200, spent=3ms, read=1B, err=Success
[2021-06-18 14:42:07.653][Trace][1][0sa331x5] http: on_hls ok, client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, request={"action":"on_hls","client_id":"0sa331x5","ip":"","vhost":"__defaultVhost__","app":"q8v12ayoq6","stream":"891886082","param":"","duration":8441.00,"cwd":"/usr/local/srs","file":"./objs/nginx/html/q8v12ayoq6/891886082-3445.ts","url":"q8v12ayoq6/891886082-3445.ts","m3u8":"./objs/nginx/html/q8v12ayoq6/891886082.m3u8","m3u8_url":"q8v12ayoq6/891886082.m3u8","seq_no":3445}, response=0
[2021-06-18 14:42:07.657][Trace][1][0sa331x5] http hook on_hls_notify success. client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, code=200, spent=4ms, read=1B, err=Success
[2021-06-18 14:42:07.661][Trace][1][0sa331x5] http: on_hls ok, client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, request={"action":"on_hls","client_id":"0sa331x5","ip":"","vhost":"__defaultVhost__","app":"q8v12ayoq6","stream":"891886082","param":"","duration":8440.97,"cwd":"/usr/local/srs","file":"./objs/nginx/html/q8v12ayoq6/891886082-3446.ts","url":"q8v12ayoq6/891886082-3446.ts","m3u8":"./objs/nginx/html/q8v12ayoq6/891886082.m3u8","m3u8_url":"q8v12ayoq6/891886082.m3u8","seq_no":3446}, response=0
[2021-06-18 14:42:07.664][Trace][1][0sa331x5] http hook on_hls_notify success. client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, code=200, spent=2ms, read=1B, err=Success
[2021-06-18 14:42:07.666][Trace][1][0sa331x5] http: on_hls ok, client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, request={"action":"on_hls","client_id":"0sa331x5","ip":"","vhost":"__defaultVhost__","app":"q8v12ayoq6","stream":"891886082","param":"","duration":8440.98,"cwd":"/usr/local/srs","file":"./objs/nginx/html/q8v12ayoq6/891886082-3447.ts","url":"q8v12ayoq6/891886082-3447.ts","m3u8":"./objs/nginx/html/q8v12ayoq6/891886082.m3u8","m3u8_url":"q8v12ayoq6/891886082.m3u8","seq_no":3447}, response=0
[2021-06-18 14:42:07.668][Trace][1][0sa331x5] http hook on_hls_notify success. client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, code=200, spent=1ms, read=1B, err=Success
[2021-06-18 14:42:07.670][Trace][1][0sa331x5] http: on_hls ok, client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, request={"action":"on_hls","client_id":"0sa331x5","ip":"","vhost":"__defaultVhost__","app":"q8v12ayoq6","stream":"891886082","param":"","duration":8440.97,"cwd":"/usr/local/srs","file":"./objs/nginx/html/q8v12ayoq6/891886082-3448.ts","url":"q8v12ayoq6/891886082-3448.ts","m3u8":"./objs/nginx/html/q8v12ayoq6/891886082.m3u8","m3u8_url":"q8v12ayoq6/891886082.m3u8","seq_no":3448}, response=0
[2021-06-18 14:42:07.672][Trace][1][0sa331x5] http hook on_hls_notify success. client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, code=200, spent=1ms, read=1B, err=Success
[2021-06-18 14:42:07.674][Trace][1][0sa331x5] http: on_hls ok, client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, request={"action":"on_hls","client_id":"0sa331x5","ip":"","vhost":"__defaultVhost__","app":"q8v12ayoq6","stream":"891886082","param":"","duration":8440.96,"cwd":"/usr/local/srs","file":"./objs/nginx/html/q8v12ayoq6/891886082-3449.ts","url":"q8v12ayoq6/891886082-3449.ts","m3u8":"./objs/nginx/html/q8v12ayoq6/891886082.m3u8","m3u8_url":"q8v12ayoq6/891886082.m3u8","seq_no":3449}, response=0
[2021-06-18 14:42:07.676][Trace][1][0sa331x5] http hook on_hls_notify success. client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, code=200, spent=1ms, read=1B, err=Success
[2021-06-18 14:42:07.678][Trace][1][0sa331x5] http: on_hls ok, client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, request={"action":"on_hls","client_id":"0sa331x5","ip":"","vhost":"__defaultVhost__","app":"q8v12ayoq6","stream":"891886082","param":"","duration":8440.99,"cwd":"/usr/local/srs","file":"./objs/nginx/html/q8v12ayoq6/891886082-3450.ts","url":"q8v12ayoq6/891886082-3450.ts","m3u8":"./objs/nginx/html/q8v12ayoq6/891886082.m3u8","m3u8_url":"q8v12ayoq6/891886082.m3u8","seq_no":3450}, response=0
[2021-06-18 14:42:07.680][Trace][1][0sa331x5] http hook on_hls_notify success. client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, code=200, spent=2ms, read=1B, err=Success
[2021-06-18 14:42:07.685][Trace][1][0sa331x5] http: on_hls ok, client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, request={"action":"on_hls","client_id":"0sa331x5","ip":"","vhost":"__defaultVhost__","app":"q8v12ayoq6","stream":"891886082","param":"","duration":8440.96,"cwd":"/usr/local/srs","file":"./objs/nginx/html/q8v12ayoq6/891886082-3451.ts","url":"q8v12ayoq6/891886082-3451.ts","m3u8":"./objs/nginx/html/q8v12ayoq6/891886082.m3u8","m3u8_url":"q8v12ayoq6/891886082.m3u8","seq_no":3451}, response=0
[2021-06-18 14:42:07.690][Trace][1][0sa331x5] http hook on_hls_notify success. client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, code=200, spent=4ms, read=1B, err=Success
[2021-06-18 14:42:07.694][Trace][1][0sa331x5] http: on_hls ok, client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, request={"action":"on_hls","client_id":"0sa331x5","ip":"","vhost":"__defaultVhost__","app":"q8v12ayoq6","stream":"891886082","param":"","duration":8440.98,"cwd":"/usr/local/srs","file":"./objs/nginx/html/q8v12ayoq6/891886082-3452.ts","url":"q8v12ayoq6/891886082-3452.ts","m3u8":"./objs/nginx/html/q8v12ayoq6/891886082.m3u8","m3u8_url":"q8v12ayoq6/891886082.m3u8","seq_no":3452}, response=0
[2021-06-18 14:42:07.698][Trace][1][0sa331x5] http hook on_hls_notify success. client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, code=200, spent=4ms, read=1B, err=Success
[2021-06-18 14:42:07.702][Trace][1][0sa331x5] http: on_hls ok, client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, request={"action":"on_hls","client_id":"0sa331x5","ip":"","vhost":"__defaultVhost__","app":"q8v12ayoq6","stream":"891886082","param":"","duration":8440.97,"cwd":"/usr/local/srs","file":"./objs/nginx/html/q8v12ayoq6/891886082-3453.ts","url":"q8v12ayoq6/891886082-3453.ts","m3u8":"./objs/nginx/html/q8v12ayoq6/891886082.m3u8","m3u8_url":"q8v12ayoq6/891886082.m3u8","seq_no":3453}, response=0
[2021-06-18 14:42:07.706][Trace][1][0sa331x5] http hook on_hls_notify success. client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, code=200, spent=3ms, read=1B, err=Success
[2021-06-18 14:42:07.710][Trace][1][0sa331x5] http: on_hls ok, client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, request={"action":"on_hls","client_id":"0sa331x5","ip":"","vhost":"__defaultVhost__","app":"q8v12ayoq6","stream":"891886082","param":"","duration":8440.98,"cwd":"/usr/local/srs","file":"./objs/nginx/html/q8v12ayoq6/891886082-3454.ts","url":"q8v12ayoq6/891886082-3454.ts","m3u8":"./objs/nginx/html/q8v12ayoq6/891886082.m3u8","m3u8_url":"q8v12ayoq6/891886082.m3u8","seq_no":3454}, response=0
[2021-06-18 14:42:07.713][Trace][1][172i9v38] cleanup for quit signal fast=1, grace=0
[2021-06-18 14:42:07.713][Warn][1][172i9v38][115] main cycle terminated, system quit normally.
[2021-06-18 14:42:07.714][Trace][1][0sa331x5] http hook on_hls_notify success. client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, code=200, spent=4ms, read=1B, err=Success
[2021-06-18 14:42:07.717][Trace][1][0sa331x5] http: on_hls ok, client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, request={"action":"on_hls","client_id":"0sa331x5","ip":"","vhost":"__defaultVhost__","app":"q8v12ayoq6","stream":"891886082","param":"","duration":8440.95,"cwd":"/usr/local/srs","file":"./objs/nginx/html/q8v12ayoq6/891886082-3455.ts","url":"q8v12ayoq6/891886082-3455.ts","m3u8":"./objs/nginx/html/q8v12ayoq6/891886082.m3u8","m3u8_url":"q8v12ayoq6/891886082.m3u8","seq_no":3455}, response=0
[2021-06-18 14:42:07.720][Trace][1][0sa331x5] http hook on_hls_notify success. client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, code=200, spent=3ms, read=1B, err=Success
[2021-06-18 14:42:07.724][Trace][1][0sa331x5] http: on_hls ok, client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, request={"action":"on_hls","client_id":"0sa331x5","ip":"","vhost":"__defaultVhost__","app":"q8v12ayoq6","stream":"891886082","param":"","duration":8440.96,"cwd":"/usr/local/srs","file":"./objs/nginx/html/q8v12ayoq6/891886082-3456.ts","url":"q8v12ayoq6/891886082-3456.ts","m3u8":"./objs/nginx/html/q8v12ayoq6/891886082.m3u8","m3u8_url":"q8v12ayoq6/891886082.m3u8","seq_no":3456}, response=0
[2021-06-18 14:42:07.729][Trace][1][0sa331x5] http hook on_hls_notify success. client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, code=200, spent=4ms, read=1B, err=Success
[2021-06-18 14:42:07.733][Trace][1][0sa331x5] http: on_hls ok, client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, request={"action":"on_hls","client_id":"0sa331x5","ip":"","vhost":"__defaultVhost__","app":"q8v12ayoq6","stream":"891886082","param":"","duration":8440.98,"cwd":"/usr/local/srs","file":"./objs/nginx/html/q8v12ayoq6/891886082-3457.ts","url":"q8v12ayoq6/891886082-3457.ts","m3u8":"./objs/nginx/html/q8v12ayoq6/891886082.m3u8","m3u8_url":"q8v12ayoq6/891886082.m3u8","seq_no":3457}, response=0
[2021-06-18 14:42:07.736][Trace][1][0sa331x5] http hook on_hls_notify success. client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, code=200, spent=2ms, read=1B, err=Success
[2021-06-18 14:42:07.741][Trace][1][0sa331x5] http: on_hls ok, client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, request={"action":"on_hls","client_id":"0sa331x5","ip":"","vhost":"__defaultVhost__","app":"q8v12ayoq6","stream":"891886082","param":"","duration":8440.97,"cwd":"/usr/local/srs","file":"./objs/nginx/html/q8v12ayoq6/891886082-3458.ts","url":"q8v12ayoq6/891886082-3458.ts","m3u8":"./objs/nginx/html/q8v12ayoq6/891886082.m3u8","m3u8_url":"q8v12ayoq6/891886082.m3u8","seq_no":3458}, response=0
[2021-06-18 14:42:07.745][Trace][1][0sa331x5] http hook on_hls_notify success. client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, code=200, spent=4ms, read=1B, err=Success
[2021-06-18 14:42:07.747][Trace][1][0sa331x5] http: on_hls ok, client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, request={"action":"on_hls","client_id":"0sa331x5","ip":"","vhost":"__defaultVhost__","app":"q8v12ayoq6","stream":"891886082","param":"","duration":8440.98,"cwd":"/usr/local/srs","file":"./objs/nginx/html/q8v12ayoq6/891886082-3459.ts","url":"q8v12ayoq6/891886082-3459.ts","m3u8":"./objs/nginx/html/q8v12ayoq6/891886082.m3u8","m3u8_url":"q8v12ayoq6/891886082.m3u8","seq_no":3459}, response=0
[2021-06-18 14:42:07.749][Trace][1][0sa331x5] http hook on_hls_notify success. client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, code=200, spent=2ms, read=1B, err=Success
[2021-06-18 14:42:07.751][Trace][1][0sa331x5] http: on_hls ok, client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, request={"action":"on_hls","client_id":"0sa331x5","ip":"","vhost":"__defaultVhost__","app":"q8v12ayoq6","stream":"891886082","param":"","duration":8440.97,"cwd":"/usr/local/srs","file":"./objs/nginx/html/q8v12ayoq6/891886082-3460.ts","url":"q8v12ayoq6/891886082-3460.ts","m3u8":"./objs/nginx/html/q8v12ayoq6/891886082.m3u8","m3u8_url":"q8v12ayoq6/891886082.m3u8","seq_no":3460}, response=0
[2021-06-18 14:42:07.753][Trace][1][0sa331x5] http hook on_hls_notify success. client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, code=200, spent=1ms, read=1B, err=Success
[2021-06-18 14:42:07.755][Trace][1][0sa331x5] http: on_hls ok, client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, request={"action":"on_hls","client_id":"0sa331x5","ip":"","vhost":"__defaultVhost__","app":"q8v12ayoq6","stream":"891886082","param":"","duration":8440.96,"cwd":"/usr/local/srs","file":"./objs/nginx/html/q8v12ayoq6/891886082-3461.ts","url":"q8v12ayoq6/891886082-3461.ts","m3u8":"./objs/nginx/html/q8v12ayoq6/891886082.m3u8","m3u8_url":"q8v12ayoq6/891886082.m3u8","seq_no":3461}, response=0
[2021-06-18 14:42:07.757][Trace][1][0sa331x5] http hook on_hls_notify success. client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, code=200, spent=1ms, read=1B, err=Success
[2021-06-18 14:42:07.760][Trace][1][0sa331x5] http: on_hls ok, client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, request={"action":"on_hls","client_id":"0sa331x5","ip":"","vhost":"__defaultVhost__","app":"q8v12ayoq6","stream":"891886082","param":"","duration":8440.99,"cwd":"/usr/local/srs","file":"./objs/nginx/html/q8v12ayoq6/891886082-3462.ts","url":"q8v12ayoq6/891886082-3462.ts","m3u8":"./objs/nginx/html/q8v12ayoq6/891886082.m3u8","m3u8_url":"q8v12ayoq6/891886082.m3u8","seq_no":3462}, response=0
[2021-06-18 14:42:07.762][Trace][1][0sa331x5] http hook on_hls_notify success. client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, code=200, spent=2ms, read=1B, err=Success
[2021-06-18 14:42:07.767][Trace][1][0sa331x5] http: on_hls ok, client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, request={"action":"on_hls","client_id":"0sa331x5","ip":"","vhost":"__defaultVhost__","app":"q8v12ayoq6","stream":"891886082","param":"","duration":8440.96,"cwd":"/usr/local/srs","file":"./objs/nginx/html/q8v12ayoq6/891886082-3463.ts","url":"q8v12ayoq6/891886082-3463.ts","m3u8":"./objs/nginx/html/q8v12ayoq6/891886082.m3u8","m3u8_url":"q8v12ayoq6/891886082.m3u8","seq_no":3463}, response=0
[2021-06-18 14:42:07.771][Trace][1][0sa331x5] http hook on_hls_notify success. client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, code=200, spent=4ms, read=1B, err=Success
[2021-06-18 14:42:07.774][Trace][1][0sa331x5] http: on_hls ok, client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, request={"action":"on_hls","client_id":"0sa331x5","ip":"","vhost":"__defaultVhost__","app":"q8v12ayoq6","stream":"891886082","param":"","duration":8440.98,"cwd":"/usr/local/srs","file":"./objs/nginx/html/q8v12ayoq6/891886082-3464.ts","url":"q8v12ayoq6/891886082-3464.ts","m3u8":"./objs/nginx/html/q8v12ayoq6/891886082.m3u8","m3u8_url":"q8v12ayoq6/891886082.m3u8","seq_no":3464}, response=0
[2021-06-18 14:42:07.778][Trace][1][0sa331x5] http hook on_hls_notify success. client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, code=200, spent=3ms, read=1B, err=Success
[2021-06-18 14:42:07.782][Trace][1][0sa331x5] http: on_hls ok, client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, request={"action":"on_hls","client_id":"0sa331x5","ip":"","vhost":"__defaultVhost__","app":"q8v12ayoq6","stream":"891886082","param":"","duration":8440.97,"cwd":"/usr/local/srs","file":"./objs/nginx/html/q8v12ayoq6/891886082-3465.ts","url":"q8v12ayoq6/891886082-3465.ts","m3u8":"./objs/nginx/html/q8v12ayoq6/891886082.m3u8","m3u8_url":"q8v12ayoq6/891886082.m3u8","seq_no":3465}, response=0
[2021-06-18 14:42:07.786][Trace][1][0sa331x5] http hook on_hls_notify success. client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, code=200, spent=3ms, read=1B, err=Success
[2021-06-18 14:42:07.790][Trace][1][0sa331x5] http: on_hls ok, client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, request={"action":"on_hls","client_id":"0sa331x5","ip":"","vhost":"__defaultVhost__","app":"q8v12ayoq6","stream":"891886082","param":"","duration":8440.98,"cwd":"/usr/local/srs","file":"./objs/nginx/html/q8v12ayoq6/891886082-3466.ts","url":"q8v12ayoq6/891886082-3466.ts","m3u8":"./objs/nginx/html/q8v12ayoq6/891886082.m3u8","m3u8_url":"q8v12ayoq6/891886082.m3u8","seq_no":3466}, response=0
[2021-06-18 14:42:07.794][Trace][1][0sa331x5] http hook on_hls_notify success. client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, code=200, spent=4ms, read=1B, err=Success
[2021-06-18 14:42:07.798][Trace][1][0sa331x5] http: on_hls ok, client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, request={"action":"on_hls","client_id":"0sa331x5","ip":"","vhost":"__defaultVhost__","app":"q8v12ayoq6","stream":"891886082","param":"","duration":8440.97,"cwd":"/usr/local/srs","file":"./objs/nginx/html/q8v12ayoq6/891886082-3467.ts","url":"q8v12ayoq6/891886082-3467.ts","m3u8":"./objs/nginx/html/q8v12ayoq6/891886082.m3u8","m3u8_url":"q8v12ayoq6/891886082.m3u8","seq_no":3467}, response=0
[2021-06-18 14:42:07.802][Trace][1][0sa331x5] http hook on_hls_notify success. client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, code=200, spent=4ms, read=1B, err=Success
[2021-06-18 14:42:07.805][Trace][1][0sa331x5] http: on_hls ok, client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, request={"action":"on_hls","client_id":"0sa331x5","ip":"","vhost":"__defaultVhost__","app":"q8v12ayoq6","stream":"891886082","param":"","duration":8440.96,"cwd":"/usr/local/srs","file":"./objs/nginx/html/q8v12ayoq6/891886082-3468.ts","url":"q8v12ayoq6/891886082-3468.ts","m3u8":"./objs/nginx/html/q8v12ayoq6/891886082.m3u8","m3u8_url":"q8v12ayoq6/891886082.m3u8","seq_no":3468}, response=0
[2021-06-18 14:42:07.807][Trace][1][0sa331x5] http hook on_hls_notify success. client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, code=200, spent=1ms, read=1B, err=Success
[2021-06-18 14:42:07.810][Trace][1][0sa331x5] http: on_hls ok, client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, request={"action":"on_hls","client_id":"0sa331x5","ip":"","vhost":"__defaultVhost__","app":"q8v12ayoq6","stream":"891886082","param":"","duration":8440.98,"cwd":"/usr/local/srs","file":"./objs/nginx/html/q8v12ayoq6/891886082-3469.ts","url":"q8v12ayoq6/891886082-3469.ts","m3u8":"./objs/nginx/html/q8v12ayoq6/891886082.m3u8","m3u8_url":"q8v12ayoq6/891886082.m3u8","seq_no":3469}, response=0
[2021-06-18 14:42:07.812][Trace][1][0sa331x5] http hook on_hls_notify success. client_id=0sa331x5, url=http://192.168.3.17:9000/callback/srs/hls, code=200, spent=2ms, read=1B, err=Success

  1. SRS configuration is as follows:

Please make sure to maintain the markdown structure.

# main config for srs.
# @see full.conf for detail config.

listen              1935;
max_connections     1000;
srs_log_tank        console;
daemon              off;
http_api {
    enabled         on;
    listen          1985;
    https {
        enabled on;
        listen 443;
        key ./conf/server.key;
        cert ./conf/server.pem;
    }
	raw_api {
	    # whether enable the HTTP RAW API.
	    # default: off
	    enabled             on;
	    # whether enable rpc reload.
	    # default: off
	    allow_reload        on;
	    # whether enable rpc query.
	    # default: off
	    allow_query         on;
	    # whether enable rpc update.
	    # default: off
	    allow_update        on;
	}
}
http_server {
    enabled         on;
    listen          8080;
    dir             ./objs/nginx/html;
    https {
        enabled on;
        listen 444;
        key ./conf/server.key;
        cert ./conf/server.pem;
    }
}

stats {
    network         0;
    disk            sda sdb xvda xvdb;
}
rtc_server {
    enabled         on;
    # Listen at udp://8000
    listen          8000;
    #
    # The $CANDIDATE means fetch from env, if not configed, use * as default.
    #
    # The * means retrieving server IP automatically, from all network interfaces,
    # @see https://github.com/ossrs/srs/issues/307#issuecomment-599028124
    candidate       $CANDIDATE;

  
}

vhost __defaultVhost__ {
	hls {
	    # whether the hls is enabled.
	    # if off, do not write hls(ts and m3u8) when publish.
	    # default: off
	    enabled         on;
	    # the hls fragment in seconds, the duration of a piece of ts.
	    # default: 10
	    hls_fragment    10;
	    # the hls m3u8 target duration ratio,
	    #   EXT-X-TARGETDURATION = hls_td_ratio * hls_fragment // init
	    #   EXT-X-TARGETDURATION = max(ts_duration, EXT-X-TARGETDURATION) // for each ts
	    # @see https://github.com/ossrs/srs/issues/304#issuecomment-74000081
	    # default: 1.5
	    hls_td_ratio    1.5;
	    # the audio overflow ratio.
	    # for pure audio, the duration to reap the segment.
	    # for example, the hls_fragment is 10s, hls_aof_ratio is 2.0,
	    # the segment will reap to 20s for pure audio.
	    # default: 2.0
	    hls_aof_ratio   2.0;
	    # the hls window in seconds, the number of ts in m3u8.
	    # default: 60
	    hls_window      60;
	    # the error strategy. can be:
	    #       ignore, disable the hls.
	    #       disconnect, require encoder republish.
	    #       continue, ignore failed try to continue output hls.
	    # @see https://github.com/ossrs/srs/issues/264
	    # default: continue
	    hls_on_error    continue;
	    # the hls output path.
	    # the m3u8 file is configured by hls_path/hls_m3u8_file, the default is:
	    #       ./objs/nginx/html/[app]/[stream].m3u8
	    # the ts file is configured by hls_path/hls_ts_file, the default is:
	    #       ./objs/nginx/html/[app]/[stream]-[seq].ts
	    # @remark the hls_path is compatible with srs v1 config.
	    # default: ./objs/nginx/html
	    hls_path        ./objs/nginx/html;
	    # the hls m3u8 file name.
	    # we supports some variables to generate the filename.
	    #       [vhost], the vhost of stream.
	    #       [app], the app of stream.
	    #       [stream], the stream name of stream.
	    # default: [app]/[stream].m3u8
	    hls_m3u8_file   [app]/[stream].m3u8;
	    # the hls ts file name.
	    # we supports some variables to generate the filename.
	    #       [vhost], the vhost of stream.
	    #       [app], the app of stream.
	    #       [stream], the stream name of stream.
	    #       [2006], replace this const to current year.
	    #       [01], replace this const to current month.
	    #       [02], replace this const to current date.
	    #       [15], replace this const to current hour.
	    #       [04], replace this const to current minute.
	    #       [05], replace this const to current second.
	    #       [999], replace this const to current millisecond.
	    #       [timestamp],replace this const to current UNIX timestamp in ms.
	    #       [seq], the sequence number of ts.
	    #       [duration], replace this const to current ts duration.
	    # @see https://github.com/ossrs/srs/wiki/v2_CN_DVR#custom-path
	    # @see https://github.com/ossrs/srs/wiki/v2_CN_DeliveryHLS#hls-config
	    # default: [app]/[stream]-[seq].ts
	    hls_ts_file     [app]/[stream]-[seq].ts;
	    # whether use floor for the hls_ts_file path generation.
	    # if on, use floor(timestamp/hls_fragment) as the variable [timestamp],
	    #       and use enhanced algorithm to calc deviation for segment.
	    # @remark when floor on, recommend the hls_segment>=2*gop.
	    # default: off
	    hls_ts_floor    off;
	    # the hls entry prefix, which is base url of ts url.
	    # for example, the prefix is:
	    #         http://your-server/
	    # then, the ts path in m3u8 will be like:
	    #         http://your-server/live/livestream-0.ts
	    #         http://your-server/live/livestream-1.ts
	    #         ...
	    # optional, default to empty string.
	    #hls_entry_prefix http://your-server;
	    # the default audio codec of hls.
	    # when codec changed, write the PAT/PMT table, but maybe ok util next ts.
	    # so user can set the default codec for mp3.
	    # the available audio codec:
	    #       aac, mp3, an
	    # default: aac
	    hls_acodec      aac;
	    # the default video codec of hls.
	    # when codec changed, write the PAT/PMT table, but maybe ok util next ts.
	    # so user can set the default codec for pure audio(without video) to vn.
	    # the available video codec:
	    #       h264, vn
	    # default: h264
	    hls_vcodec      h264;
	    # whether cleanup the old expired ts files.
	    # default: on
	    hls_cleanup     on;
	    # If there is no incoming packets, dispose HLS in this timeout in seconds,
	    # which removes all HLS files including m3u8 and ts files.
	    # @remark 0 to disable dispose for publisher.
	    # @remark apply for publisher timeout only, while "etc/init.d/srs stop" always dispose hls.
	    # default: 0
	    hls_dispose     0;
	    # the max size to notify hls,
	    # to read max bytes from ts of specified cdn network,
	    # @remark only used when on_hls_notify is config.
	    # default: 64
	    hls_nb_notify   64;
	    # whether wait keyframe to reap segment,
	    # if off, reap segment when duration exceed the fragment,
	    # if on, reap segment when duration exceed and got keyframe.
	    # default: on
	    hls_wait_keyframe       on;
	
	    # whether using AES encryption.
	    # default: off
	    #hls_keys        on; 
	    # the number of clear ts which one key can encrypt.
	    # default: 5
	    #hls_fragments_per_key 5;
	    # the hls key file name.
	    # we supports some variables to generate the filename.
	    #       [vhost], the vhost of stream.
	    #       [app], the app of stream.
	    #       [stream], the stream name of stream.
	    #       [seq], the sequence number of key corresponding to the ts.
	    #hls_key_file     [app]/[stream]-[seq].key;
	    # the key output path.
	    # the key file is configed by hls_path/hls_key_file, the default is:
	    # ./objs/nginx/html/[app]/[stream]-[seq].key
	    #hls_key_file_path    ./objs/nginx/html;
	    # the key root URL, use this can support https.
	    # @remark It's optional.
	    #hls_key_url       https://localhost:8080;
	
	    # Special control controls.
	    ###########################################
	    # Whether calculate the DTS of audio frame directly.
	    # If on, guess the specific DTS by AAC samples, please read https://github.com/ossrs/srs/issues/547#issuecomment-294350544
	    # If off, directly turn the FLV timestamp to DTS, which might cause corrupt audio stream.
	    # @remark Recommend to set to off, unless your audio stream sample-rate and timestamp is not correct.
	    # Default: on
	    #hls_dts_directly on;
	
	    # on_hls, never config in here, should config in http_hooks.
	    # for the hls http callback, @see http_hooks.on_hls of vhost hooks.callback.srs.com
	    # @read https://github.com/ossrs/srs/wiki/v2_CN_DeliveryHLS#http-callback
	    # @read https://github.com/ossrs/srs/wiki/v2_EN_DeliveryHLS#http-callback
	
	    # on_hls_notify, never config in here, should config in http_hooks.
	    # we support the variables to generate the notify url:
	    #       [app], replace with the app.
	    #       [stream], replace with the stream.
	    #       [param], replace with the param.
	    #       [ts_url], replace with the ts url.
	    # for the hls http callback, @see http_hooks.on_hls_notify of vhost hooks.callback.srs.com
	    # @read https://github.com/ossrs/srs/wiki/v2_CN_DeliveryHLS#on-hls-notify
	    # @read https://github.com/ossrs/srs/wiki/v2_EN_DeliveryHLS#on-hls-notify
	}
	
    rtc {
       
        enabled     on;
        aac         transcode;
        stun_timeout    30;
        stun_strict_check on;
        dtls_role  passive;
        dtls_version auto;
        drop_for_pt 0;
        rtc_to_rtmp on;
        pli_for_rtmp 6;
    }
    
	
	
    http_remux {
        enabled     on;
        mount       [vhost]/[app]/[stream].flv;
    }
    # For NACK.
    nack {
        # Whether support NACK.
        # default: on
        enabled on;
        # Whether directly use the packet, avoid copy.
        # default: off
        no_copy off;
    }
    # For TWCC.
    twcc {
        # Whether support TWCC.
        # default: on
        enabled on;
    }
    tcp_nodelay     on
    min_latency     off;

    play {
        gop_cache       on;
        queue_length    10;
        mw_latency      100;
		mw_msgs         1;
    }

	
    publish {
        mr off;
    }

    http_hooks {
        # whether the http hooks enable.
        # default off.
        enabled         on;
        # when client connect to vhost/app, call the hook,
        # the request in the POST data string is a object encode by json:
        #       {
        #           "action": "on_connect",
        #           "client_id": 1985,
        #           "ip": "192.168.1.10", "vhost": "video.test.com", "app": "live",
        #           "tcUrl": "rtmp://video.test.com/live?key=d2fa801d08e3f90ed1e1670e6e52651a",
        #           "pageUrl": "http://www.test.com/live.html"
        #       }
        # if valid, the hook must return HTTP code 200(Status OK) and response
        # an int value specifies the error code(0 corresponding to success):
        #       0
        # support multiple api hooks, format:
        #       on_connect http://xxx/api0 http://xxx/api1 http://xxx/apiN
        # @remark For SRS4, the HTTPS url is supported, for example:
        #       on_connect https://xxx/api0 https://xxx/api1 https://xxx/apiN
        on_connect      http://192.168.0.119:9000/callback/srs/clients;
        # when client close/disconnect to vhost/app/stream, call the hook,
        # the request in the POST data string is a object encode by json:
        #       {
        #           "action": "on_close",
        #           "client_id": 1985,
        #           "ip": "192.168.1.10", "vhost": "video.test.com", "app": "live",
        #           "send_bytes": 10240, "recv_bytes": 10240
        #       }
        # if valid, the hook must return HTTP code 200(Status OK) and response
        # an int value specifies the error code(0 corresponding to success):
        #       0
        # support multiple api hooks, format:
        #       on_close http://xxx/api0 http://xxx/api1 http://xxx/apiN
        # @remark For SRS4, the HTTPS url is supported, for example:
        #       on_close https://xxx/api0 https://xxx/api1 https://xxx/apiN
        on_close        http://192.168.0.119:9000/callback/srs/clients;
        # when client(encoder) publish to vhost/app/stream, call the hook,
        # the request in the POST data string is a object encode by json:
        #       {
        #           "action": "on_publish",
        #           "client_id": 1985,
        #           "ip": "192.168.1.10", "vhost": "video.test.com", "app": "live",
        #           "stream": "livestream", "param":"?token=xxx&salt=yyy"
        #       }
        # if valid, the hook must return HTTP code 200(Status OK) and response
        # an int value specifies the error code(0 corresponding to success):
        #       0
        # support multiple api hooks, format:
        #       on_publish http://xxx/api0 http://xxx/api1 http://xxx/apiN
        # @remark For SRS4, the HTTPS url is supported, for example:
        #       on_publish https://xxx/api0 https://xxx/api1 https://xxx/apiN
        on_publish      http://192.168.0.119:9000/callback/srs/streams;
        # when client(encoder) stop publish to vhost/app/stream, call the hook,
        # the request in the POST data string is a object encode by json:
        #       {
        #           "action": "on_unpublish",
        #           "client_id": 1985,
        #           "ip": "192.168.1.10", "vhost": "video.test.com", "app": "live",
        #           "stream": "livestream", "param":"?token=xxx&salt=yyy"
        #       }
        # if valid, the hook must return HTTP code 200(Status OK) and response
        # an int value specifies the error code(0 corresponding to success):
        #       0
        # support multiple api hooks, format:
        #       on_unpublish http://xxx/api0 http://xxx/api1 http://xxx/apiN
        # @remark For SRS4, the HTTPS url is supported, for example:
        #       on_unpublish https://xxx/api0 https://xxx/api1 https://xxx/apiN
        on_unpublish    http://192.168.0.119:9000/callback/srs/streams;
        # when client start to play vhost/app/stream, call the hook,
        # the request in the POST data string is a object encode by json:
        #       {
        #           "action": "on_play",
        #           "client_id": 1985,
        #           "ip": "192.168.1.10", "vhost": "video.test.com", "app": "live",
        #           "stream": "livestream", "param":"?token=xxx&salt=yyy",
        #           "pageUrl": "http://www.test.com/live.html"
        #       }
        # if valid, the hook must return HTTP code 200(Status OK) and response
        # an int value specifies the error code(0 corresponding to success):
        #       0
        # support multiple api hooks, format:
        #       on_play http://xxx/api0 http://xxx/api1 http://xxx/apiN
        # @remark For SRS4, the HTTPS url is supported, for example:
        #       on_play https://xxx/api0 https://xxx/api1 https://xxx/apiN
        on_play         http://192.168.0.119:9000/callback/srs/sessions;
        # when client stop to play vhost/app/stream, call the hook,
        # the request in the POST data string is a object encode by json:
        #       {
        #           "action": "on_stop",
        #           "client_id": 1985,
        #           "ip": "192.168.1.10", "vhost": "video.test.com", "app": "live",
        #           "stream": "livestream", "param":"?token=xxx&salt=yyy"
        #       }
        # if valid, the hook must return HTTP code 200(Status OK) and response
        # an int value specifies the error code(0 corresponding to success):
        #       0
        # support multiple api hooks, format:
        #       on_stop http://xxx/api0 http://xxx/api1 http://xxx/apiN
        # @remark For SRS4, the HTTPS url is supported, for example:
        #       on_stop https://xxx/api0 https://xxx/api1 https://xxx/apiN
        on_stop         http://192.168.0.119:9000/callback/srs/sessions;
        # when srs reap a dvr file, call the hook,
        # the request in the POST data string is a object encode by json:
        #       {
        #           "action": "on_dvr",
        #           "client_id": 1985,
        #           "ip": "192.168.1.10", "vhost": "video.test.com", "app": "live",
        #           "stream": "livestream", "param":"?token=xxx&salt=yyy",
        #           "cwd": "/usr/local/srs",
        #           "file": "./objs/nginx/html/live/livestream.1420254068776.flv"
        #       }
        # if valid, the hook must return HTTP code 200(Status OK) and response
        # an int value specifies the error code(0 corresponding to success):
        #       0
        on_dvr          http://192.168.0.119:9000/callback/srs/dvrs;
        # when srs reap a ts file of hls, call the hook,
        # the request in the POST data string is a object encode by json:
        #       {
        #           "action": "on_hls",
        #           "client_id": 1985,
        #           "ip": "192.168.1.10", "vhost": "video.test.com", "app": "live",
        #           "stream": "livestream", "param":"?token=xxx&salt=yyy",
        #           "duration": 9.36, // in seconds
        #           "cwd": "/usr/local/srs",
        #           "file": "./objs/nginx/html/live/livestream/2015-04-23/01/476584165.ts",
        #           "url": "live/livestream/2015-04-23/01/476584165.ts",
        #           "m3u8": "./objs/nginx/html/live/livestream/live.m3u8",
        #           "m3u8_url": "live/livestream/live.m3u8",
        #           "seq_no": 100
        #       }
        # if valid, the hook must return HTTP code 200(Status OK) and response
        # an int value specifies the error code(0 corresponding to success):
        #       0
        on_hls          http://192.168.0.119:9000/callback/srs/hls;
        # when srs reap a ts file of hls, call this hook,
        # used to push file to cdn network, by get the ts file from cdn network.
        # so we use HTTP GET and use the variable following:
        #       [app], replace with the app.
        #       [stream], replace with the stream.
        #       [param], replace with the param.
        #       [ts_url], replace with the ts url.
        # ignore any return data of server.
        # @remark random select a url to report, not report all.
        on_hls_notify   http://192.168.0.119:9000/callback/srs/hls;
    }
}

Replay

Please make sure to maintain the markdown structure.

How to replay bug?

Please make sure to maintain the markdown structure.

Steps to replay the bug:

  1. Start the WebRTC streaming.
  2. Observe the generated ts files under objs/nginx/html/[app]/.

Please make sure to maintain the markdown structure.

Expected behavior:

Please make sure to maintain the markdown structure.

Able to generate HLS TS files properly.

Please make sure to maintain the markdown structure.

TRANS_BY_GPT3

@formatcc
Copy link

formatcc commented Jun 21, 2021

Is it resolved? I also encountered the same problem.

TRANS_BY_GPT3

@xiaozhihong
Copy link
Collaborator

xiaozhihong commented Jun 23, 2021

This problem is caused by the fact that the timestamp of the audio and video streams in WebRTC do not share the same timeline. Although both the audio and video streams are incrementing, they are independently incremented.

For example, the audio starts at 20000 and increments, while the video starts at 13000 and increments. This leads to issues in calculating the duration of the SRS slices.

Fixing

TRANS_BY_GPT3

@duiniuluantanqin duiniuluantanqin added the Bug It might be a bug. label Jun 25, 2021
@xiaozhihong xiaozhihong linked a pull request Jul 13, 2021 that will close this issue
@winlinvip winlinvip added this to the 4.0 milestone Sep 4, 2021
@winlinvip winlinvip changed the title webrtc推流,转rtmp,同时配置有hls,会导致每秒生成十数个ts文件 webrtc推流,转rtmp,同时配置有hls,会导致每秒生成十数个ts文件' translates to: 'When using webrtc to push the stream and convert it to rtmp, while also configuring hls, it will result in generating dozens of ts files per second. Jul 28, 2023
@winlinvip winlinvip added the TransByAI Translated by AI/GPT. label Jul 28, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bug It might be a bug. TransByAI Translated by AI/GPT.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants