Streamstatusevent и статусы

Ivan

Member
Есть несколько вопросов по статусам:
1. Можно ли отключить оповещение WEB сервера о статусах, которые мы не обрабатываем?
2. Постоянно приходи статус NOT_ENOUGH_BANDWIDTH - у вас в описании его не нашёл.
3. Статус FAILED
- Что смотреть в логах что-бы понять в чём причина?
- У нас проблема в том, что трансляции периодически вырубаются сами собой, причём чаще происходит это у тех, у кого плохой пинг.
 

Max

Administrator
Staff member
Постоянно приходи статус NOT_ENOUGH_BANDWIDTH - у вас в описании его не нашёл
В последних версиях сервера этот статус приходит в тех случаях, когда сервер определяет потери на канале зрителя более 5%.
Если он остается в этой зоне, то постоянно будет слать такие статусы, чтобы зрителю можно было показать индикатор "плохая сеть".
Задается настройкой:
webrtc_cc2_bitrate_overuse_event_threshold=0.05
Если ее поднять, например до 1 (100% потерь), то статус не должен отправляться.
 

Max

Administrator
Staff member
Можно ли отключить оповещение WEB сервера о статусах, которые мы не обрабатываем?
Нет, отдельные статусы отключить нельзя. Только полностью убрать нотификацию StreamStatusEvent.
Статус FAILED
Отдается зрителю, когда публикующий остановил или другим способом прервал публикацию потока.
Пример FAILED с "info" : "Publish session closed"
Code:
{
  "nodeId" : "H4gfHeULtX6ddGGUWwZxhUNyqZHUFH8j@192.168.1.59",
  "appKey" : "defaultApp",
  "sessionId" : "/192.168.88.254:59746/192.168.88.59:8443",
  "mediaSessionId" : "fc937440-409b-11e7-9b96-81684bccbcc9",
  "name" : "e76a",
  "published" : false,
  "hasVideo" : true,
  "hasAudio" : true,
  "status" : "FAILED",
  "info" : "Publish session closed",
  "record" : false,
  "width" : 0,
  "height" : 0,
  "bitrate" : 0,
  "quality" : 0,
  "mediaProvider" : "WebRTC"
}
Т.е. FAILED статус не всегда является ошибкой.
 

Max

Administrator
Staff member
Что смотреть в логах что-бы понять в чём причина?
Нужно в логе WCS_HOME/logs/server_logs/flashphoner.log найти публикуемый поток по mediaSessionId
И посмотреть, чем этот поток закончился - дисконнектом или нормальным завершением.
Если поток завершился дисконнектом, то посмотреть по какой причине.

Если дадите конкретные логи (они пишутся по часам) и mediaSessionId стримов, которые падают, мы сможем точно сказать в чем проблема.
Еще полезные логи пишутся в SDR: /usr/local/FlashphonerWebCallServer/logs/cdr/sdr.log

У нас проблема в том, что трансляции периодически вырубаются сами собой, причём чаще происходит это у тех, у кого плохой пинг.
Если плохой пинг, то коннекты транслирующих могут сваливаться по keep alive, когда их полосу полностью забивает видео трафик.
В этом случае можно определять заранее тех, у кого плохой пинг и выставлять им более низкое разрешение трансляции и ограничивать битрейт, чтобы они не переполняли свой канал.

Какая версия сервера и настройка кодеков?
codecs=opus,alaw,ulaw,g729,speex16,g722,mpeg4-generic,telephone-event,h264,vp8,flv,mpv

В последних версиях была улучшена подстройка под канал, позволяющая избежать перегрузки и дисконнектов.
 

Ivan

Member
А можно ли как-то настроить timeout или какой-то процент чтобы FlashPhoner не сразу FAILED слал, а с каким-то допуском потери?
 

Max

Administrator
Staff member
FAILED приходит Зрителю, если Публикующий перестал публиковать поток по каким-либо причинам. И приходит сразу.
Поэтому этот вопрос не понятен:
Code:
не сразу FAILED слал, а с каким-то допуском потери?
 

Ivan

Member
Ограничил до 0 интернет во время трансляции 1 раз:
У того кто смотрел, поток завис, но не отрубился (т.е. не было запроса StreamStatusEvent status=FAILED).
включил инетернет - поток висит.
перезагрузил страницу поток пошёл.
Ограничил до 0 2-ой раз.
Всё тоже самое, но после перезагрузки страницы к потоку не подключается.

Подключаюсь к потоку из Админ панели:

Поток проигрывается, но видео нет.

Кусок логов, которые пишутся при нажатии на PLAY: имя потока b06680a664cc191f1bbc279c8c0b5a5d
Code:
07:51:24,651 INFO  eoSessionGroup-PROXY - VideoProcessor-ea0a17e0-4201-11e7-998b-e3a64e7ce6e9 Request K-Frame from far end
07:51:24,711 WARN  eoSessionGroup-PROXY - RTP-pool-23-thread-4095 Failed to find packet for re-send, sn 39607
07:51:24,807 WARN  eoSessionGroup-PROXY - RTP-pool-23-thread-4095 Failed to find packet for re-send, sn 39607
07:51:24,905 WARN  eoSessionGroup-PROXY - RTP-pool-23-thread-4095 Failed to find packet for re-send, sn 39607
07:51:25,010 WARN  eoSessionGroup-PROXY - RTP-pool-23-thread-4095 Failed to find packet for re-send, sn 39607
07:51:25,130 WARN  eoSessionGroup-PROXY - RTP-pool-23-thread-4095 Failed to find packet for re-send, sn 39607
07:51:25,245 WARN  eoSessionGroup-PROXY - RTP-pool-23-thread-4095 Failed to find packet for re-send, sn 39607
07:51:26,824 INFO                     G - RTMP-pool-3-thread-4 sending bytes read ack after: 398472539
07:51:27,654 INFO  eoSessionGroup-PROXY - VideoProcessor-ea0a17e0-4201-11e7-998b-e3a64e7ce6e9 Request K-Frame from far end
07:51:30,663 INFO  eoSessionGroup-PROXY - VideoProcessor-ea0a17e0-4201-11e7-998b-e3a64e7ce6e9 Request K-Frame from far end
07:51:33,639 INFO  eoSessionGroup-PROXY - VideoProcessor-ea0a17e0-4201-11e7-998b-e3a64e7ce6e9 Request K-Frame from far end
07:51:33,785 INFO                     G - RTMP-pool-3-thread-4 sending bytes read ack after: 400980458
07:51:36,646 INFO  eoSessionGroup-PROXY - VideoProcessor-ea0a17e0-4201-11e7-998b-e3a64e7ce6e9 Request K-Frame from far end
07:51:36,929 INFO                     G - RTMP-pool-3-thread-27 command - closeStream
07:51:36,929 INFO                     G - RTMP-pool-3-thread-27 closing stream id: 1
07:51:36,929 INFO          MediaHandler - RTMP-pool-3-thread-27 stopStream - Stream{mediaSessionId='b06680a664cc191f1bbc279c8c0b5a5d8aa3089c-07b3-4a38-9b73-9c4612766de0'name='b06680a664cc191f1bbc279c8c0b5a5d', status='PLAYING', sdp='null', remoteMediaElementId='null', hasVideo='true', hasAudio='true'}Context{custom={}, nodeId='null', appKey='flashStreamingApp', sessionId='8aa3089c-07b3-4a38-9b73-9c4612766de0'}
07:51:36,929 INFO  4e-abc9-441b6e5e1d7f - RTMP-pool-3-thread-27 STOP DISTRIBUTOR
07:51:36,929 INFO          MediaSession - RTMP-pool-3-thread-27 Stop MediaSession id: b06680a664cc191f1bbc279c8c0b5a5d8aa3089c-07b3-4a38-9b73-9c4612766de0
07:51:36,929 INFO    AbstractRtpSession - RTMP-pool-3-thread-27 RtpSession with id b06680a664cc191f1bbc279c8c0b5a5d8aa3089c-07b3-4a38-9b73-9c4612766de0 terminated.
07:51:36,929 INFO    AbstractRtpSession - RTMP-pool-3-thread-27 RtpSession with id b06680a664cc191f1bbc279c8c0b5a5d8aa3089c-07b3-4a38-9b73-9c4612766de0 terminated.
07:51:36,929 INFO               Streams - RTMP-pool-3-thread-27 unpublish name: b06680a664cc191f1bbc279c8c0b5a5d8aa3089c-07b3-4a38-9b73-9c4612766de0
07:51:36,930 INFO               Streams - RTMP-pool-3-thread-27 destroyPublication name b06680a664cc191f1bbc279c8c0b5a5d8aa3089c-07b3-4a38-9b73-9c4612766de0
07:51:36,930 INFO                     C - RTMP-pool-3-thread-27 unpublish name: b06680a664cc191f1bbc279c8c0b5a5d8aa3089c-07b3-4a38-9b73-9c4612766de0
07:51:36,930 INFO  ManagerApiConnection - RTMP-pool-3-thread-27 Config for method StreamStatusEvent not found, using defaults
07:51:38,834 INFO                     G - RTMP-pool-3-thread-27 command - createStream
07:51:38,834 INFO                     G - RTMP-pool-3-thread-27 create stream id: 2
07:51:38,836 INFO                     G - RTMP-pool-3-thread-27 command - deleteStream
07:51:38,836 INFO                     G - RTMP-pool-3-thread-27 deleting stream id: 1
07:51:38,874 INFO                     G - RTMP-pool-3-thread-27 command - play
07:51:38,874 INFO  ManagerApiConnection - RTMP-pool-3-thread-27 Config for method playStream not found, using defaults
07:51:38,895 INFO                     G - RTMP-pool-3-thread-27 client requested live stream: b06680a664cc191f1bbc279c8c0b5a5d, stream not found
07:51:38,895 INFO                Codecs - RTMP-pool-3-thread-27 codecs: opus,alaw,ulaw,g729,speex16,g722,mpeg4-generic,vp8,h264,mpv
07:51:38,895 INFO                Codecs - RTMP-pool-3-thread-27 load codec: opus priority: 9900
07:51:38,895 INFO                Codecs - RTMP-pool-3-thread-27 load codec: alaw priority: 9800
07:51:38,895 INFO                Codecs - RTMP-pool-3-thread-27 load codec: ulaw priority: 9700
07:51:38,895 INFO                Codecs - RTMP-pool-3-thread-27 load codec: g729 priority: 9600
07:51:38,895 INFO                Codecs - RTMP-pool-3-thread-27 load codec: speex16 priority: 9500
07:51:38,895 INFO                Codecs - RTMP-pool-3-thread-27 load codec: g722 priority: 9400
07:51:38,895 INFO                Codecs - RTMP-pool-3-thread-27 AAC codec loaded, pt 102 sr 8000
07:51:38,895 INFO                Codecs - RTMP-pool-3-thread-27 AAC codec loaded, pt 103 sr 11025
07:51:38,895 INFO                Codecs - RTMP-pool-3-thread-27 AAC codec loaded, pt 104 sr 12000
07:51:38,895 INFO                Codecs - RTMP-pool-3-thread-27 AAC codec loaded, pt 105 sr 16000
07:51:38,895 INFO                Codecs - RTMP-pool-3-thread-27 AAC codec loaded, pt 106 sr 22050
07:51:38,895 INFO                Codecs - RTMP-pool-3-thread-27 AAC codec loaded, pt 107 sr 24000
07:51:38,895 INFO                Codecs - RTMP-pool-3-thread-27 AAC codec loaded, pt 108 sr 32000
07:51:38,895 INFO                Codecs - RTMP-pool-3-thread-27 AAC codec loaded, pt 109 sr 44100
07:51:38,896 INFO                Codecs - RTMP-pool-3-thread-27 AAC codec loaded, pt 110 sr 48000
07:51:38,896 INFO                Codecs - RTMP-pool-3-thread-27 load codec: vp8 priority: 9200
07:51:38,896 INFO                Codecs - RTMP-pool-3-thread-27 load codec: mpv priority: 9000
07:51:38,896 INFO                Codecs - RTMP-pool-3-thread-27 codecs: [opus [], PCMA [], PCMU [], G729 [A annexb:no], speex [], G722 [], mpeg4-generic [A profile-level-id:1, A mode:HBR], mpeg4-generic [A profile-level-id:1, A mode:HBR], mpeg4-generic [A profile-level-id:1, A mode:HBR], mpeg4-generic [A profile-level-id:1, A mode:HBR], mpeg4-generic [A profile-level-id:1, A mode:HBR], mpeg4-generic [A profile-level-id:1, A mode:HBR], mpeg4-generic [A profile-level-id:1, A mode:HBR], mpeg4-generic [A profile-level-id:1, A mode:HBR], mpeg4-generic [A profile-level-id:1, A mode:HBR], VP8 [], H264 [A packetization-mode:1, A profile-level-id:42e01f], H264 [A packetization-mode:0, A profile-level-id:42e01f], MPV []]
07:51:38,896 INFO          MediaSession - RTMP-pool-3-thread-27 Setting requested video resolution
07:51:38,896 INFO          MediaSession - RTMP-pool-3-thread-27 Setting requested video quality 0
07:51:38,897 WARN          MediaSession - RTMP-pool-3-thread-27 useAVGenerator Session description is unavailable!
07:51:38,897 INFO        RtpVideoConfig - RTMP-pool-3-thread-27 PlayerVideoResolution C 0x0, StreamerVideoResolution C 0x0
07:51:38,897 INFO      RtpVideoStreamer - RTMP-pool-3-thread-27 Init Streamer - ########################
F
codec: H264 [A packetization-mode:1, A profile-level-id:42e01f]
player C 0x0
streamer C 0x0
mpi: 1
pictureSrcFormat: null
--
bitrate: 0
quality: 0

########################
07:51:38,897 INFO  cketStreamTranscoder - RTMP-pool-3-thread-27 Init PacketProviders with - ########################
F
codec: H264 [A packetization-mode:1, A profile-level-id:42e01f]
player C 0x0
streamer C 0x0
mpi: 1
pictureSrcFormat: null
profile: H264Profile{profile=66, constrained=-32, level=31}
packetizationMode: 1
resample: false
bitrate: 0
quality: 0
 

Ivan

Member
Code:
########################
07:51:38,897 WARN          MediaSession - RTMP-pool-3-thread-27 useAVGenerator Session description is unavailable!
07:51:38,897 INFO          VideoSession - RTMP-pool-3-thread-27 CLEAR and SEND CACHE (size=0)
07:51:38,897 INFO       AudioSdpFactory - RTMP-pool-3-thread-27 proxySession: Session{secured=false, terminated=false, localPort=41518, rtcpMux=false, sdpState=recvonly}
07:51:38,898 INFO    AbstractRtpSession - RTMP-pool-3-thread-27 Create Rtp Session - /93.95.103.104:35634 - /93.95.103.104:35635
07:51:38,899 INFO        RtpVideoConfig - RTMP-pool-3-thread-27 PlayerVideoResolution C 0x0, StreamerVideoResolution C 0x0
07:51:38,899 INFO    AbstractRtpSession - RTMP-pool-3-thread-27 Create Rtp Session - /93.95.103.104:32896 - /93.95.103.104:32897
07:51:38,899 INFO          MediaSession - RTMP-pool-3-thread-27 Start rtp activity detecting for audio session b06680a664cc191f1bbc279c8c0b5a5d8aa3089c-07b3-4a38-9b73-9c4612766de0
07:51:38,899 INFO        RtpAudioPlayer - RTMP-pool-3-thread-27 Rtp activity detecting started, port 35634
07:51:38,899 INFO        VideoProcessor - RTMP-pool-3-thread-27 Trying to get sps pps and copy them to streamer config
07:51:38,899 INFO           Publication - RTMP-pool-3-thread-27 New publication b06680a664cc191f1bbc279c8c0b5a5d8aa3089c-07b3-4a38-9b73-9c4612766de0
07:51:38,899 INFO                     B - RTMP-pool-3-thread-27 Created ServerStream [name: 'b06680a664cc191f1bbc279c8c0b5a5d8aa3089c-07b3-4a38-9b73-9c4612766de0 publisher: null subscribers: {}]
07:51:38,899 INFO                     G - RTMP-pool-3-thread-27 Listener stream created
07:51:38,899 INFO                     G - RTMP-pool-3-thread-27 client requested live stream: b06680a664cc191f1bbc279c8c0b5a5d, added to stream: [name: 'b06680a664cc191f1bbc279c8c0b5a5d8aa3089c-07b3-4a38-9b73-9c4612766de0 publisher: com.flashphoner.server.I.A.B@975583c subscribers: {2=com.flashphoner.server.I.C.D.F@3ff23310}]
07:51:38,899 INFO  ManagerApiConnection - RTMP-pool-3-thread-27 Config for method StreamStatusEvent not found, using defaults
07:51:39,180 INFO                     G - RTMP-pool-3-thread-4 sending bytes read ack after: 403480592
07:51:39,702 INFO  eoSessionGroup-PROXY - VideoProcessor-ea0a17e0-4201-11e7-998b-e3a64e7ce6e9 Request K-Frame from far end
07:51:42,679 INFO  eoSessionGroup-PROXY - VideoProcessor-ea0a17e0-4201-11e7-998b-e3a64e7ce6e9 Request K-Frame from far end
07:51:45,652 INFO  eoSessionGroup-PROXY - VideoProcessor-ea0a17e0-4201-11e7-998b-e3a64e7ce6e9 Request K-Frame from far end
07:51:46,982 WARN  RtpActivityTimerTask - Flashphoner-RtpActivityTimer-32082 RTP ACTIVITY EVENT DETECTED!
07:51:46,982 INFO  SessionEventListener - Flashphoner-RtpActivityTimer-32082 onNoRtpActivity
07:51:48,222 INFO                     G - RTMP-pool-3-thread-4 sending bytes read ack after: 405980849
07:51:48,660 INFO  eoSessionGroup-PROXY - VideoProcessor-ea0a17e0-4201-11e7-998b-e3a64e7ce6e9 Request K-Frame from far end
07:51:49,303 INFO                     G - RTMP-pool-3-thread-27 command - closeStream
07:51:49,303 INFO                     G - RTMP-pool-3-thread-27 closing stream id: 2
07:51:49,303 INFO          MediaHandler - RTMP-pool-3-thread-27 stopStream - Stream{mediaSessionId='b06680a664cc191f1bbc279c8c0b5a5d8aa3089c-07b3-4a38-9b73-9c4612766de0'name='b06680a664cc191f1bbc279c8c0b5a5d', status='PLAYING', sdp='null', remoteMediaElementId='null', hasVideo='true', hasAudio='true'}Context{custom={}, nodeId='null', appKey='flashStreamingApp', sessionId='8aa3089c-07b3-4a38-9b73-9c4612766de0'}
07:51:49,303 INFO  4e-abc9-441b6e5e1d7f - RTMP-pool-3-thread-27 STOP DISTRIBUTOR
07:51:49,303 INFO          MediaSession - RTMP-pool-3-thread-27 Stop MediaSession id: b06680a664cc191f1bbc279c8c0b5a5d8aa3089c-07b3-4a38-9b73-9c4612766de0
07:51:49,303 INFO    AbstractRtpSession - RTMP-pool-3-thread-27 RtpSession with id b06680a664cc191f1bbc279c8c0b5a5d8aa3089c-07b3-4a38-9b73-9c4612766de0 terminated.
07:51:49,303 INFO    AbstractRtpSession - RTMP-pool-3-thread-27 RtpSession with id b06680a664cc191f1bbc279c8c0b5a5d8aa3089c-07b3-4a38-9b73-9c4612766de0 terminated.
07:51:49,303 INFO               Streams - RTMP-pool-3-thread-27 unpublish name: b06680a664cc191f1bbc279c8c0b5a5d8aa3089c-07b3-4a38-9b73-9c4612766de0
07:51:49,303 INFO               Streams - RTMP-pool-3-thread-27 destroyPublication name b06680a664cc191f1bbc279c8c0b5a5d8aa3089c-07b3-4a38-9b73-9c4612766de0
07:51:49,303 INFO                     C - RTMP-pool-3-thread-27 unpublish name: b06680a664cc191f1bbc279c8c0b5a5d8aa3089c-07b3-4a38-9b73-9c4612766de0
07:51:49,303 INFO  ManagerApiConnection - RTMP-pool-3-thread-27 Config for method StreamStatusEvent not found, using defaults
07:51:49,912 INFO                     G - RTMP-pool-3-thread-27 command - createStream
07:51:49,912 INFO                     G - RTMP-pool-3-thread-27 create stream id: 3
07:51:49,915 INFO                     G - RTMP-pool-3-thread-27 command - deleteStream
07:51:49,915 INFO                     G - RTMP-pool-3-thread-27 deleting stream id: 2
07:51:49,944 INFO                     G - RTMP-pool-3-thread-27 command - play
07:51:49,944 INFO  ManagerApiConnection - RTMP-pool-3-thread-27 Config for method playStream not found, using defaults
07:51:49,965 INFO                     G - RTMP-pool-3-thread-27 client requested live stream: b06680a664cc191f1bbc279c8c0b5a5d, stream not found
07:51:49,965 INFO                Codecs - RTMP-pool-3-thread-27 codecs: opus,alaw,ulaw,g729,speex16,g722,mpeg4-generic,vp8,h264,mpv
07:51:49,965 INFO                Codecs - RTMP-pool-3-thread-27 load codec: opus priority: 9900
07:51:49,965 INFO                Codecs - RTMP-pool-3-thread-27 load codec: alaw priority: 9800
07:51:49,965 INFO                Codecs - RTMP-pool-3-thread-27 load codec: ulaw priority: 9700
07:51:49,965 INFO                Codecs - RTMP-pool-3-thread-27 load codec: g729 priority: 9600
07:51:49,966 INFO                Codecs - RTMP-pool-3-thread-27 load codec: speex16 priority: 9500
07:51:49,966 INFO                Codecs - RTMP-pool-3-thread-27 load codec: g722 priority: 9400
07:51:49,966 INFO                Codecs - RTMP-pool-3-thread-27 AAC codec loaded, pt 102 sr 8000
07:51:49,966 INFO                Codecs - RTMP-pool-3-thread-27 AAC codec loaded, pt 103 sr 11025
07:51:49,966 INFO                Codecs - RTMP-pool-3-thread-27 AAC codec loaded, pt 104 sr 12000
07:51:49,966 INFO                Codecs - RTMP-pool-3-thread-27 AAC codec loaded, pt 105 sr 16000
07:51:49,966 INFO                Codecs - RTMP-pool-3-thread-27 AAC codec loaded, pt 106 sr 22050
07:51:49,966 INFO                Codecs - RTMP-pool-3-thread-27 AAC codec loaded, pt 107 sr 24000
07:51:49,966 INFO                Codecs - RTMP-pool-3-thread-27 AAC codec loaded, pt 108 sr 32000
07:51:49,966 INFO                Codecs - RTMP-pool-3-thread-27 AAC codec loaded, pt 109 sr 44100
07:51:49,966 INFO                Codecs - RTMP-pool-3-thread-27 AAC codec loaded, pt 110 sr 48000
07:51:49,966 INFO                Codecs - RTMP-pool-3-thread-27 load codec: vp8 priority: 9200
07:51:49,966 INFO                Codecs - RTMP-pool-3-thread-27 load codec: mpv priority: 9000
07:51:49,966 INFO                Codecs - RTMP-pool-3-thread-27 codecs: [opus [], PCMA [], PCMU [], G729 [A annexb:no], speex [], G722 [], mpeg4-generic [A profile-level-id:1, A mode:HBR], mpeg4-generic [A profile-level-id:1, A mode:HBR], mpeg4-generic [A profile-level-id:1, A mode:HBR], mpeg4-generic [A profile-level-id:1, A mode:HBR], mpeg4-generic [A profile-level-id:1, A mode:HBR], mpeg4-generic [A profile-level-id:1, A mode:HBR], mpeg4-generic [A profile-level-id:1, A mode:HBR], mpeg4-generic [A profile-level-id:1, A mode:HBR], mpeg4-generic [A profile-level-id:1, A mode:HBR], VP8 [], H264 [A packetization-mode:1, A profile-level-id:42e01f], H264 [A packetization-mode:0, A profile-level-id:42e01f], MPV []]
07:51:49,966 INFO          MediaSession - RTMP-pool-3-thread-27 Setting requested video resolution
07:51:49,966 INFO          MediaSession - RTMP-pool-3-thread-27 Setting requested video quality 0
07:51:49,967 WARN          MediaSession - RTMP-pool-3-thread-27 useAVGenerator Session description is unavailable!
07:51:49,967 INFO        RtpVideoConfig - RTMP-pool-3-thread-27 PlayerVideoResolution C 0x0, StreamerVideoResolution C 0x0
07:51:49,967 INFO      RtpVideoStreamer - RTMP-pool-3-thread-27 Init Streamer - ########################
F
codec: H264 [A packetization-mode:1, A profile-level-id:42e01f]
player C 0x0
streamer C 0x0
mpi: 1
pictureSrcFormat: null
--
bitrate: 0
quality: 0
 

Ivan

Member
Code:
########################
07:51:49,967 INFO  cketStreamTranscoder - RTMP-pool-3-thread-27 Init PacketProviders with - ########################
F
codec: H264 [A packetization-mode:1, A profile-level-id:42e01f]
player C 0x0
streamer C 0x0
mpi: 1
pictureSrcFormat: null
profile: H264Profile{profile=66, constrained=-32, level=31}
packetizationMode: 1
resample: false
bitrate: 0
quality: 0

########################
07:51:49,967 WARN          MediaSession - RTMP-pool-3-thread-27 useAVGenerator Session description is unavailable!
07:51:49,967 INFO          VideoSession - RTMP-pool-3-thread-27 CLEAR and SEND CACHE (size=0)
07:51:49,967 INFO       AudioSdpFactory - RTMP-pool-3-thread-27 proxySession: Session{secured=false, terminated=false, localPort=41518, rtcpMux=false, sdpState=recvonly}
07:51:49,968 INFO    AbstractRtpSession - RTMP-pool-3-thread-27 Create Rtp Session - /93.95.103.104:34630 - /93.95.103.104:34631
07:51:49,969 INFO        RtpVideoConfig - RTMP-pool-3-thread-27 PlayerVideoResolution C 0x0, StreamerVideoResolution C 0x0
07:51:49,969 INFO    AbstractRtpSession - RTMP-pool-3-thread-27 Create Rtp Session - /93.95.103.104:34218 - /93.95.103.104:34219
07:51:49,969 INFO          MediaSession - RTMP-pool-3-thread-27 Start rtp activity detecting for audio session b06680a664cc191f1bbc279c8c0b5a5d8aa3089c-07b3-4a38-9b73-9c4612766de0
07:51:49,969 INFO        RtpAudioPlayer - RTMP-pool-3-thread-27 Rtp activity detecting started, port 34630
07:51:49,969 INFO        VideoProcessor - RTMP-pool-3-thread-27 Trying to get sps pps and copy them to streamer config
07:51:49,969 INFO           Publication - RTMP-pool-3-thread-27 New publication b06680a664cc191f1bbc279c8c0b5a5d8aa3089c-07b3-4a38-9b73-9c4612766de0
07:51:49,969 INFO                     B - RTMP-pool-3-thread-27 Created ServerStream [name: 'b06680a664cc191f1bbc279c8c0b5a5d8aa3089c-07b3-4a38-9b73-9c4612766de0 publisher: null subscribers: {}]
07:51:49,969 INFO                     G - RTMP-pool-3-thread-27 Listener stream created
07:51:49,969 INFO                     G - RTMP-pool-3-thread-27 client requested live stream: b06680a664cc191f1bbc279c8c0b5a5d, added to stream: [name: 'b06680a664cc191f1bbc279c8c0b5a5d8aa3089c-07b3-4a38-9b73-9c4612766de0 publisher: com.flashphoner.server.I.A.B@2767ad38 subscribers: {3=com.flashphoner.server.I.C.D.F@7a0f64e2}]
07:51:49,969 INFO  ManagerApiConnection - RTMP-pool-3-thread-27 Config for method StreamStatusEvent not found, using defaults
07:51:51,667 INFO  eoSessionGroup-PROXY - VideoProcessor-ea0a17e0-4201-11e7-998b-e3a64e7ce6e9 Request K-Frame from far end
07:51:54,649 INFO  eoSessionGroup-PROXY - VideoProcessor-ea0a17e0-4201-11e7-998b-e3a64e7ce6e9 Request K-Frame from far end
07:51:57,683 INFO  eoSessionGroup-PROXY - VideoProcessor-ea0a17e0-4201-11e7-998b-e3a64e7ce6e9 Request K-Frame from far end
07:51:57,828 INFO                     G - RTMP-pool-3-thread-4 sending bytes read ack after: 408483554
07:52:00,751 INFO  eoSessionGroup-PROXY - VideoProcessor-ea0a17e0-4201-11e7-998b-e3a64e7ce6e9 Request K-Frame from far end
07:52:03,665 INFO  eoSessionGroup-PROXY - VideoProcessor-ea0a17e0-4201-11e7-998b-e3a64e7ce6e9 Request K-Frame from far end
07:52:04,465 INFO                     G - RTMP-pool-3-thread-4 sending bytes read ack after: 410990867
07:52:06,646 INFO  eoSessionGroup-PROXY - VideoProcessor-ea0a17e0-4201-11e7-998b-e3a64e7ce6e9 Request K-Frame from far end
07:52:09,684 INFO  eoSessionGroup-PROXY - VideoProcessor-ea0a17e0-4201-11e7-998b-e3a64e7ce6e9 Request K-Frame from far end
07:52:10,103 INFO                     G - RTMP-pool-3-thread-4 sending bytes read ack after: 413500226
07:52:11,121 INFO                     G - RTMP-pool-3-thread-27 channel closed: [id: 0x3dc92b73, /213.79.124.178:53569 :> /93.95.103.104:1935] CLOSED
07:52:11,122 INFO          MediaHandler - RTMP-pool-3-thread-27 stopStream - Stream{mediaSessionId='b06680a664cc191f1bbc279c8c0b5a5d8aa3089c-07b3-4a38-9b73-9c4612766de0'name='b06680a664cc191f1bbc279c8c0b5a5d', status='PLAYING', sdp='null', remoteMediaElementId='null', hasVideo='true', hasAudio='true'}Context{custom={}, nodeId='null', appKey='flashStreamingApp', sessionId='8aa3089c-07b3-4a38-9b73-9c4612766de0'}
07:52:11,122 INFO  4e-abc9-441b6e5e1d7f - RTMP-pool-3-thread-27 STOP DISTRIBUTOR
07:52:11,122 INFO          MediaSession - RTMP-pool-3-thread-27 Stop MediaSession id: b06680a664cc191f1bbc279c8c0b5a5d8aa3089c-07b3-4a38-9b73-9c4612766de0
07:52:11,122 INFO    AbstractRtpSession - RTMP-pool-3-thread-27 RtpSession with id b06680a664cc191f1bbc279c8c0b5a5d8aa3089c-07b3-4a38-9b73-9c4612766de0 terminated.
07:52:11,122 INFO    AbstractRtpSession - RTMP-pool-3-thread-27 RtpSession with id b06680a664cc191f1bbc279c8c0b5a5d8aa3089c-07b3-4a38-9b73-9c4612766de0 terminated.
07:52:11,122 INFO               Streams - RTMP-pool-3-thread-27 unpublish name: b06680a664cc191f1bbc279c8c0b5a5d8aa3089c-07b3-4a38-9b73-9c4612766de0
07:52:11,122 INFO               Streams - RTMP-pool-3-thread-27 destroyPublication name b06680a664cc191f1bbc279c8c0b5a5d8aa3089c-07b3-4a38-9b73-9c4612766de0
07:52:11,122 INFO                     C - RTMP-pool-3-thread-27 unpublish name: b06680a664cc191f1bbc279c8c0b5a5d8aa3089c-07b3-4a38-9b73-9c4612766de0
07:52:11,122 INFO  ManagerApiConnection - RTMP-pool-3-thread-27 Config for method StreamStatusEvent not found, using defaults
07:52:11,144 INFO  lashStreamingHandler - RTMP-pool-3-thread-27 Disconnect client: com.flashphoner.server.client.MediaWCSClient@cbd49a9
07:52:11,144 INFO  ManagerApiConnection - RTMP-pool-3-thread-27 Config for method ConnectionStatusEvent not found, using defaults
07:52:11,163 INFO          RTMP-Session - RTMP-pool-3-thread-27 kill session 1036594035
07:52:12,661 INFO  eoSessionGroup-PROXY - VideoProcessor-ea0a17e0-4201-11e7-998b-e3a64e7ce6e9 Request K-Frame from far end
07:52:13,896 WARN  RtpActivityTimerTask - Flashphoner-RtpActivityTimer-41518 RTP ACTIVITY EVENT DETECTED!
07:52:13,896 INFO  SessionEventListener - Flashphoner-RtpActivityTimer-41518 onNoRtpActivity
07:52:14,299 INFO  ManagerApiConnection - WSS-pool-9-thread-35 Config for method connect not found, using defaults
07:52:14,323 INFO           WCS4Handler - WSS-pool-9-thread-35 onConnect client: WSClient{channel=[id: 0x11c8e147, /213.79.124.178:57488 => /93.95.103.104:8443], handler=com.flashphoner.server.client.handler.DelegateHandler@d995aeb, closed=false, pageUrl='null', countUnansweredPing=0}
07:52:14,323 INFO  ManagerApiConnection - WSS-pool-9-thread-35 Config for method ConnectionStatusEvent not found, using defaults
 

Ivan

Member
ТАКЖЕ очень много вот таких ошибок постоянно валится: - за 1 секунду примерно 200 штук
Code:
08:06:52,019 WARN  eoSessionGroup-PROXY - RTP-pool-23-thread-4110 Failed to find packet for re-send, sn 782
08:06:52,019 WARN  eoSessionGroup-PROXY - RTP-pool-23-thread-4110 Failed to find packet for re-send, sn 783
08:06:52,019 WARN  eoSessionGroup-PROXY - RTP-pool-23-thread-4110 Failed to find packet for re-send, sn 784
08:06:52,031 WARN  eoSessionGroup-PROXY - RTP-pool-23-thread-4110 Failed to find packet for re-send, sn 787
08:06:52,031 WARN  eoSessionGroup-PROXY - RTP-pool-23-thread-4110 Failed to find packet for re-send, sn 788
08:06:52,031 WARN  eoSessionGroup-PROXY - RTP-pool-23-thread-4110 Failed to find packet for re-send, sn 789
08:06:52,031 WARN  eoSessionGroup-PROXY - RTP-pool-23-thread-4110 Failed to find packet for re-send, sn 790
 

Max

Administrator
Staff member
Ограничил до 0 интернет во время трансляции 1 раз:
У того кто смотрел, поток завис, но не отрубился (т.е. не было запроса StreamStatusEvent status=FAILED).
включил инетернет - поток висит.
перезагрузил страницу поток пошёл.
Ограничил до 0 2-ой раз.
Всё тоже самое, но после перезагрузки страницы к потоку не подключается.
Уточню
1. Поток публикуется по rtmp
2. Зритель играет по WebRTC
3. У зрителя отключаем интернет (например, закрываем wi-fi соединение).
4. Поток завис. FAILED не пришел.
5. У зрителя включаем интернет.
6. Перезагружаем страницу. Поток играет.
7. У зрителя отключаем интернет второй раз.
8. Поток завис. FAILED не пришел.
9. Перезагружаем страницу. Поток не играет.

То, что не приходит StreamStatusEvent.FAILED - это нормально.
Он не сможет прийти, т.к. с сервером нет коннекта.
Должно прийти SESSION_STATUS.DISCONNECTED, тогда, когда браузерный Websocket оборвет TCP коннект по таймауту.

То, что после второго отключения поток не воспроизводится, это ненормально.
Попробуем воспроизвести у себя.
 

Max

Administrator
Staff member
ТАКЖЕ очень много вот таких ошибок постоянно валится: - за 1 секунду примерно 200 штук
Это не ошибки. На сервере есть некоторый буфер, в котором кратковременно хранятся видеопакеты.
Chrome браузер зрителя периодически запрашивает потерянные пакеты.
Если таких пакетов в буфере нет, то выводится такое сообщение:
Code:
08:06:52,019 WARN eoSessionGroup-PROXY - RTP-pool-23-thread-4110 Failed to find packet for re-send, sn 784
200 в секунду - довольно высокий рейт. Попробуем разобраться. Возможно, уберем их в TRACE, чтобы не мешали логгированию.
 

Ivan

Member
То, что не приходит StreamStatusEvent.FAILED - это нормально.
Он не сможет прийти, т.к. с сервером нет коннекта.
Почему?
Коннекта нет клиента с сервером а коннект FlashPhoner и webServer в порядке.

Я провёл этот эксперимент, пытаясь понять в каких случаях могут быть произвольные отключения.
В случае произвольного отключения мне на WEB сервер приходит streamStatusEvent.FAILED и я закрываю трансляцию.

Нужно в логе WCS_HOME/logs/server_logs/flashphoner.log найти публикуемый поток по mediaSessionId
И посмотреть, чем этот поток закончился - дисконнектом или нормальным завершением.
Если поток завершился дисконнектом, то посмотреть по какой причине.
Как понять нормально закончился поток или нет?
"status" : "FAILED",
"info" : "Publish session closed",
в этом случае это нормальное завершение потока?
 

Max

Administrator
Staff member
Почему?
Коннекта нет клиента с сервером а коннект FlashPhoner и webServer в порядке.
StreamStatusEvent.FAILED уходит 1) На клиента 2) На REST - веб сервер
Нормально, что не приходит на клиента.
На REST тоже должен прийти статус, после таймаута.
Если клиент потерял соединение с сервером, сервер выжидает таймауты:
1) Для коннекта: 50 секунд по-умолчанию. ConnectionStatusEvent.DISCONNECTED.
2) Для стрима: 60 секунд по-умолчанию. StreamStatusEvent.UNPUBLISHED или StreamStatusEvent.FAILED.
 

Ivan

Member
В моей описаной схеме я отключал интернет на клиенте у публикующего.
И ожидаю, что на веб сервер придёт StreamStatusEvent.FAILED (через 60 секунд), но этого не происходит. (ждали долго, настройки по-умолчанию)
 

Ivan

Member
Ну и после этого происходит то, что на скриншоте: Если из панели запустить поток, то как будто он есть PLAYING но ничего не проигрывается.
 

Max

Administrator
Staff member
Ок. Мы перепроверим работу дисконнектов с потоками.
Тогда точно смогу уточнить, что и когда передается.

в этом случае это нормальное завершение потока?
Не понятно. Нужно искать в логах что его вызвало.
Поток может прерваться в одном из следующих случаев:
1. Клиент потерял TCP соединение с сервером.
2. Клиент потерял UDP соединение с сервером (перестали ходить пакеты).
3. Клиент закрыл браузер (нормальный дисконнект).
4. Клиент нажал Disconnect (нормальный дисконнект).
session.disconnect()
4. Клиент нажал Stop
stream.unpublish()

У нас сейчас есть лог стримов:
logs/cdr/sdr.log
Возможно добавим в него точные причины завершений потоков, чтобы можно было проанализировать как завершаются стримы.
 

Max

Administrator
Staff member
В последних сборках добавили вывод причин завершения потоков и коннектов.
Т.е. теперь по логам sdr.log и conndr.log можно узнать какие потоки и коннекты завершились нормально, а какие в результате ошибок.

Streams
Code:
logs/cdr/sdr.log
  • Failed by ICE error
  • Failed by ICE timeout
  • Failed by ICE keep alive
  • Failed by DTLS fingerprint error
  • Failed by DTLS error
  • Failed by HLS writer error
  • Failed by RTMP writer error
  • Failed by RTP activity
  • Stopped by session disconnect
  • Stopped by rest /terminate
  • Stopped by publisher stop
  • Stopped by user
  • Failed by error
Connections
Code:
logs/cdr/conndr.log
  • Normal disconnect
  • Disconnected by keep alive
  • Disconnected by rest /terminate
  • Disconnected by error
  • Disconnected by error on REST method /connect
  • Disconnected by server shutdown
 

Ivan

Member
Отлично!
А что означает вот такая строчка? (FAILED;Stopped by session disconnect)
2017-06-13 09:30:58;WebRTC;940f1414cd04b3244c614dc1edc1e9fa;8a882ed0-503c-11e7-948e-61511d75f653;00:00:00;FAILED;Stopped by session disconnect;PUBLISH;0;
 

Max

Administrator
Staff member
Это значит, что причиной остановки WebRTC потока был разрыв Websocket - соединения браузера пользователя с сервером.
В conndr.log в это же время чуть раньше будет DISCONNECTED с какой-то причиной.
Т.е. там можно посмотреть точно, по какой причине произошел разрыв.

В самой последней сборке 2278 мы добавили идентификатор коннекта.
Например:
sdr.log
Code:
2017-06-13 15:44:52;WebRTC;52d9;c25c5fa0-5057-11e7-9448-e94b331c1845;00:00:02;FAILED;Stopped by session disconnect;PUBLISH;0;/192.168.88.254:54621/192.168.88.59:8443;
Здесь явно указан sessionId, по которому можно найти connect в conndr.log
Code:
/192.168.88.254:54621/192.168.88.59:8443
conndr.log
Code:
2017-06-13 15:44:49;/192.168.88.254:54621/192.168.88.59:8443;DISCONNECTED;Normal disconnect;5;
Из этих двух логов видно, что на 49-й секунде Websocket соединение с сервером было разорвано (пользователь закрыл браузер - Normal disconnect).
На 52-й секунде публикуемый поток этого пользователя был остановлен с причиной "Stopped by session disconnect", т.е. из-за того, что было разорвано соединение.
 
Top