Показать сообщение отдельно
Старый 10.02.2016, 14:37
thegobot вне форума Посмотреть профиль Отправить личное сообщение для thegobot Найти все сообщения от thegobot
  № 1  
Ответить с цитированием
thegobot

Регистрация: Feb 2016
Сообщений: 1
По умолчанию RTMP, внезапно падает FPS

Здрасти! Сделал rtmp плеер, который подключается к Nginx rtmp и производит трансляцию.

Все как обычно(КОД ПРИМЕРНЫЙ):

Код AS3:
video = new Video();
addChild(video);
new connection(this);
conn = new NetConnection()
conn.connect("rtmp://example/app/stream");
stream = new NetStream(conn);
video.attachNetStream(stream);
stream.play("stream");
FPS потока меряю через stream.currentFPS, и он иногда ПАДАЕТ с 30 до 5-9 кадров в сек. По моим наблюдениям падать начинает в таком случае:
1) Запустил плеер
2) Пошел проигрываться поток
3) Вещание приостановилось(NetStream.Play.UnpublishNotify)
4) Вещание запустилось(NetStream.Play.PublishNotify)
5) Упал FPS

Если плеер перезагрузить то FPS восстанавливается сразу до положенных 25-30 FPS. Методом тыка, после события NetStream.Buffer.Flush я делаю stream.seek(0); После этого FPS восстанавливается. Поток раздает на сервере:
Код:
ffmpeg -re -i /path/to/vidos.mp4 -vcodec copy -acodec copy -f flv rtmp://example/app/stream
Т.е. затык в том, что после NetStream.Play.UnpublishNotify и NetStream.Play.PublishNotify падает FPS
Где копать? На стороне публикации потока, на стороне сервера(nginx), в плеере?