Как отследить момент начала проигрывания видео?

AVRozk

New Member
Добрый день.
После подключения к стриму WCSSession.createStream, приходит событие со статусом fpwcsStreamStatusPlaying, после картинка стрима уходит на WebRTCView, но при этом в разных интервалах времени (от 0.5 до условных 2 секунд) отсутствует изображение стрима на View, вместо него в WebRTCView висит черный бэкграунд.

Нам надо чтобы пока нет видео отображался бэкграунд стрима - картинка (у каждого стрима своя)

Можно как-то более точно поймать событие, что стрим начал проигрываться или заменить бэграунд WebRTCView на кастомный? Проставление цвета WebRTCView или RTCEAGLVideoView ничего не дает. На долю секунды появляется заданный цвет и тут же сменяется черным.
 

Max

Administrator
Staff member
Добрый день.
Стрим начинает проигрываться сразу, как только будет получен ключевой фрейм (I-Frame). Чтобы поток начинал быстрее отображаться, необходимо обеспечить решгулярное поступление ключевых фреймов при публикации. Например, если публикуется RTMP поток, выставить в настройках кодировщика keyframe interval в 1 секунду
1683945531201.png

Если речь идет о WebRTC публикации, то в настройках сервера нужно указать следующие параметры
Code:
periodic_fir_request=true
periodic_fir_request_interval=1000
В этом случае видео будет отображаться максимум через 1 секунду, при условии отсутствия помех на канале и достаточной пропускной способности.
Можно как-то более точно поймать событие, что стрим начал проигрываться или заменить бэграунд WebRTCView на кастомный?
Нет, заменить бэкграунд невозможно: за проигрывание отвечает библиотека Google WebRTC, она не предоставляет таких параметров настройки.
 
Top