-
-
Notifications
You must be signed in to change notification settings - Fork 5.6k
Description
Description'
Please ensure that you maintain the markdown structure.
It seems that SRS caches the audio meta information of a specific channel. After pushing a data stream containing both audio and video to a channel, if a data stream containing only video is pushed later, VLC player will play the video abnormally without black screen, and VLC media information will display an additional audio codec information.'
Please ensure that you maintain the markdown structure.
- SRS version:
3.0.121
- The log of SRS is as follows:
Please ensure that you maintain the markdown structure.
[2020-03-06 16:33:40.357][Trace][23607][469] RTMP client ip=118.114.22.175, fd=10
[2020-03-06 16:33:40.548][Trace][23607][469] simple handshake success.
[2020-03-06 16:33:40.550][Trace][23607][469] connect app, tcUrl=rtmp://120.92.213.203:11935/live, pageUrl=, swfUrl=, schema=rtmp, vhost=120.92.213.203, port=11935, app=l
ive, args=null
[2020-03-06 16:33:40.550][Trace][23607][469] protocol in.buffer=0, in.ack=0, out.ack=0, in.chunk=128, out.chunk=128
[2020-03-06 16:33:40.653][Trace][23607][469] client identified, type=fmle-publish, vhost=120.92.213.203, app=live, stream=LIVEPL16DD80CE047_2, param=, duration=0ms
[2020-03-06 16:33:40.653][Trace][23607][469] connected stream, tcUrl=rtmp://120.92.213.203:11935/live, pageUrl=, swfUrl=, schema=rtmp, vhost=__defaultVhost__, port=11935
, app=live, stream=LIVEPL16DD80CE047_2, param=, args=null
[2020-03-06 16:33:40.653][Trace][23607][469] source url=/live/LIVEPL16DD80CE047_2, ip=118.114.22.175, cache=0, is_edge=0, source_id=-1[-1]
[2020-03-06 16:33:40.959][Trace][23607][469] ignore disabled exec for vhost=__defaultVhost__
[2020-03-06 16:33:40.959][Trace][23607][469] set fd=10 TCP_NODELAY 0=>1
[2020-03-06 16:33:40.959][Trace][23607][469] start publish mr=0/350, p1stpt=20000, pnt=5000, tcp_nodelay=1
[2020-03-06 16:33:41.011][Trace][23607][469] got metadata, width=1920, height=1080, vcodec=7
[2020-03-06 16:33:41.012][Trace][23607][469] 36B video sh, codec(7, profile=Baseline, level=Other, 1920x1088, 0kbps, 0.0fps, 0.0s)
[2020-03-06 16:33:52.891][Trace][23607][470] RTMP client ip=118.114.22.175, fd=11
[2020-03-06 16:33:52.941][Trace][23607][470] complex handshake success
[2020-03-06 16:33:52.986][Trace][23607][470] connect app, tcUrl=rtmp://120.92.213.203:11935/live, pageUrl=, swfUrl=, schema=rtmp, vhost=120.92.213.203, port=11935, app=l
ive, args=null
[2020-03-06 16:33:52.986][Trace][23607][470] protocol in.buffer=0, in.ack=0, out.ack=0, in.chunk=128, out.chunk=128
[2020-03-06 16:33:53.258][Trace][23607][470] ignore AMF0/AMF3 command message.
[2020-03-06 16:33:53.668][Trace][23607][470] ignore AMF0/AMF3 command message.
[2020-03-06 16:33:53.668][Trace][23607][470] client identified, type=Play, vhost=120.92.213.203, app=live, stream=LIVEPL16DD80CE047_2, param=, duration=-1ms
[2020-03-06 16:33:53.668][Trace][23607][470] connected stream, tcUrl=rtmp://120.92.213.203:11935/live, pageUrl=, swfUrl=, schema=rtmp, vhost=__defaultVhost__, port=11935, app=live, stream=LIVEPL16DD80CE047_2, param=, args=null
[2020-03-06 16:33:53.668][Trace][23607][470] source url=/live/LIVEPL16DD80CE047_2, ip=118.114.22.175, cache=0, is_edge=0, source_id=469[469]
[2020-03-06 16:33:53.669][Trace][23607][470] set fd=11 TCP_NODELAY 0=>1
[2020-03-06 16:33:53.669][Trace][23607][470] dispatch cached gop success. count=0, duration=0
[2020-03-06 16:33:53.669][Trace][23607][470] create consumer, active=1, queue_size=0.00, jitter=10000000
[2020-03-06 16:33:53.669][Trace][23607][470] set fd=11, SO_SNDBUF=46080=>50000, buffer=100ms
[2020-03-06 16:33:53.669][Trace][23607][470] start play smi=0ms, mw_sleep=100, mw_enabled=1, realtime=1, tcp_nodelay=1
[2020-03-06 16:34:04.028][Trace][23607][470] -> PLA time=10000023, msgs=2, okbps=374,0,0, ikbps=2,0,0, mw=100
[2020-03-06 16:34:05.959][Trace][23607][469] <- CPB time=20000027, okbps=1,0,0, ikbps=409,0,0, mr=0/350, p1stpt=20000, pnt=5000
[2020-03-06 16:34:13.699][Trace][23607][470] -> PLA time=20000086, msgs=2, okbps=399,0,0, ikbps=1,0,0, mw=100
[2020-03-06 16:34:15.959][Trace][23607][469] <- CPB time=30000114, okbps=0,1,0, ikbps=417,408,0, mr=0/350, p1stpt=20000, pnt=5000
[2020-03-06 16:34:24.620][Trace][23607][470] -> PLA time=31000089, msgs=1, okbps=409,407,0, ikbps=0,0,0, mw=100
[2020-03-06 16:34:30.959][Trace][23607][469] <- CPB time=45000199, okbps=0,1,0, ikbps=421,408,0, mr=0/350, p1stpt=20000, pnt=5000
[2020-03-06 16:34:34.885][Trace][23607][470] -> PLA time=41000178, msgs=2, okbps=416,407,0, ikbps=0,0,0, mw=100
[2020-03-06 16:34:44.951][Trace][23607][470] -> PLA time=51000357, msgs=2, okbps=420,407,0, ikbps=0,0,0, mw=100
[2020-03-06 16:34:45.959][Trace][23607][469] <- CPB time=60000378, okbps=0,0,0, ikbps=422,441,0, mr=0/350, p1stpt=20000, pnt=5000
[2020-03-06 16:34:54.756][Trace][23607][470] -> PLA time=61000388, msgs=2, okbps=419,429,0, ikbps=0,0,0, mw=100
[2020-03-06 16:34:55.959][Trace][23607][469] <- CPB time=70000384, okbps=0,0,0, ikbps=424,441,0, mr=0/350, p1stpt=20000, pnt=5000
[2020-03-06 16:35:04.846][Trace][23607][470] -> PLA time=71000574, msgs=2, okbps=425,429,0, ikbps=0,0,0, mw=100
[2020-03-06 16:35:05.959][Trace][23607][469] <- CPB time=80000559, okbps=0,0,0, ikbps=426,441,0, mr=0/350, p1stpt=20000, pnt=5000
[2020-03-06 16:35:14.831][Trace][23607][470] -> PLA time=81000598, msgs=2, okbps=422,429,0, ikbps=0,0,0, mw=100
[2020-03-06 16:35:15.959][Trace][23607][469] <- CPB time=90000600, okbps=0,0,0, ikbps=426,426,0, mr=0/350, p1stpt=20000, pnt=5000
[2020-03-06 16:35:24.765][Trace][23607][470] -> PLA time=91000729, msgs=2, okbps=422,429,0, ikbps=0,0,0, mw=100
[2020-03-06 16:35:25.959][Trace][23607][469] <- CPB time=100000706, okbps=0,0,0, ikbps=428,426,0, mr=0/350, p1stpt=20000, pnt=5000
[2020-03-06 16:35:35.959][Trace][23607][469] <- CPB time=110000734, okbps=0,0,0, ikbps=427,426,0, mr=0/350, p1stpt=20000, pnt=5000
[2020-03-06 16:35:38.592][Trace][23607][469] shrinking, size=0, removed=120, max=10000ms
[2020-03-06 16:35:45.959][Trace][23607][469] <- CPB time=120000762, okbps=0,0,0, ikbps=427,427,0, mr=0/350, p1stpt=20000, pnt=5000
[2020-03-06 16:35:48.864][Trace][23607][469] shrinking, size=0, removed=121, max=10000ms
[2020-03-06 16:35:55.959][Trace][23607][469] <- CPB time=130000872, okbps=0,0,0, ikbps=428,427,0, mr=0/350, p1stpt=20000, pnt=5000
[2020-03-06 16:35:58.597][Error][23607][470][4] serve error code=1011 : service cycle : rtmp: stream service : rtmp: send 2 messages : send messages : writev : writev timeout 30000 ms
thread [23607][470]: do_cycle() [src/app/srs_app_rtmp_conn.cpp:210][errno=4]
thread [23607][470]: service_cycle() [src/app/srs_app_rtmp_conn.cpp:400][errno=4]
thread [23607][470]: do_playing() [src/app/srs_app_rtmp_conn.cpp:786][errno=62]
thread [23607][470]: send_and_free_messages() [src/protocol/srs_rtmp_stack.cpp:834][errno=62]
thread [23607][470]: srs_write_large_iovs() [src/protocol/srs_protocol_utility.cpp:341][errno=62]
thread [23607][470]: writev() [src/service/srs_service_st.cpp:585][errno=62](Interrupted system call)
[2020-03-06 16:36:05.959][Trace][23607][469] <- CPB time=140000940, okbps=0,0,0, ikbps=428,427,0, mr=0/350, p1stpt=20000, pnt=5000
[2020-03-06 16:36:15.959][Trace][23607][469] <- CPB time=150001137, okbps=0,0,0, ikbps=429,431,0, mr=0/350, p1stpt=20000, pnt=5000
[2020-03-06 16:36:25.959][Trace][23607][469] <- CPB time=160001205, okbps=0,0,0, ikbps=428,431,0, mr=0/350, p1stpt=20000, pnt=5000
[2020-03-06 16:36:35.959][Trace][23607][469] <- CPB time=170001261, okbps=0,0,0, ikbps=428,431,0, mr=0/350, p1stpt=20000, pnt=5000
[2020-03-06 16:36:45.959][Trace][23607][469] <- CPB time=180001383, okbps=0,0,0, ikbps=429,430,0, mr=0/350, p1stpt=20000, pnt=5000
[2020-03-06 16:36:55.959][Trace][23607][469] <- CPB time=190001417, okbps=0,0,0, ikbps=428,430,0, mr=0/350, p1stpt=20000, pnt=5000
[2020-03-06 16:37:05.959][Trace][23607][469] <- CPB time=200001499, okbps=0,0,0, ikbps=430,430,0, mr=0/350, p1stpt=20000, pnt=5000
- The configuration of SRS is as follows:
Please ensure that you maintain the markdown structure.
listen 1935;
max_connections 1000;
daemon off;
srs_log_tank console;
grace_start_wait 700;
grace_final_wait 800;
http_server {
enabled on;
listen 18080;
dir ./objs/nginx/html;
}
stats {
network 0;
disk vda vdb;
}
http_api {
enabled on;
listen 1985;
crossdomain on;
}
vhost __defaultVhost__ {
min_latency on;
tcp_nodelay on;
publish {
mr off;
}
play {
gop_cache off;
queue_length 10;
mw_latency 100;
}
}
Replay
Please ensure that you maintain the markdown structure.
How to replay bug?
The pure video data file used for replay can be found at: link (password: cnvp).
Please ensure that you maintain the markdown structure.
1. Pushing pure video stream data to channel A using ffmpeg, the rtmp playback is normal, and VLC's meta information also shows that only the video type stream is present.
Please ensure that you maintain the markdown structure.
2. ffmpeg -re -i 1583334009334.flv -vcodec copy -f flv -y rtmp://localhost:1935/live/LIVEPL16DD80CE047_2
1. Whether using ffmpeg or pushing data containing both audio and video to ChannelA, the rtmp playback is normal, and VLC's meta information will display two streams, one for audio and one for video.
Please ensure that you maintain the markdown structure.
2. ffmpeg -re -i 1583334009334.flv -vcodec copy -acodec copy -f flv -y rtmp://localhost:1935/live/LIVEPL16DD80CE047_2
1. Repeating the operation in step 1, pushing a stream of pure video data to Channel A results in abnormal rtmp playback (VLC cannot play, it remains black after a long buffering time). In VLC's meta information, besides displaying the video's meta information, an additional audio stream meta information will also be displayed.
2. Using ffmpeg to push the stream of pure video to a new channel B, rtmp playback is normal again.
3. Suspected that VLC or ffprobe may cache meta information, but even after closing and reopening VLC, the issue remains as described above.
4. Only after restarting the SRS service, the additional display of audio meta information will no longer occur.
Please ensure that you maintain the markdown structure.
Expected behavior
Expected behavior:
When pushing pure video data after previously pushing data containing audio and video, VLC and other web clients should be able to support playback without returning additional audio meta information.
TRANS_BY_GPT3