Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Из-за чего возникают периодические зависания картинки при p2p видео? (http://www.flasher.ru/forum/showthread.php?t=209229)

mcm 22.10.2014 09:20

Из-за чего возникают периодические зависания картинки при p2p видео?
 
Есть видеочат, видео передаётся по p2p (rtmfp) через FMS (multicast) с использованием GroupSpecifier.
Настройки камеры, микрофона, netStream, netConnection выставлены по-умолчанию. Поток тестируется между двумя клиентами, у одного из которых 100 мегабитный канал и у второго 3 мегабита. Вещателем выступал первый клиент и второй был смотрителем, и потом наоборот.

Если у Camera bandwidth = 16 000, а quality = 0, то картинка ужасная, но нет зависаний картинки.
Если у Camera bandwidth = 0, а quality > 60 или bandwidth > 180 000, а quality = 0, то картинка нормальная, но появляются периодические зависания.
Под зависанием понимаем замирание кадра на секунду и потом продолжение видео. Зависания случаются часто в двух случаях:
1. Когда вещатель начинает активно двигаться в кадре.
2. Когда вещатель открывает новые сайты в браузере.

Не понятно чисто технически что из себя представляют зависания? Если это не хватка канала у вещателя и смотрителя, то это странно, ведь 3 мегабита должно хватить по идее. А если дело не в канале, то какова тогда природа зависаний?

gyfak 23.10.2014 17:44

Если поймете в чем проблема, отпишитесь пожалуйста.

mcm 11.11.2014 11:29

Специально для gyfak и тех, кто найдёт эту тему через поисковик.

Проблему с зависаниями удалось решить путём увеличения значения параметра NetStream.bufferTime на стороне принимающего до 0,8 если все настройки камеры выставлены на значения по-умолчанию. Если картинка нужна получше качеством, то и bufferTime нужно повышать. Правда, всему есть цена - увеличение этого параметра увеличивает задержку от реальности.

djyamato 13.11.2014 06:14

Цитата:

Сообщение от mcm (Сообщение 1174828)
Специально для gyfak и тех, кто найдёт эту тему через поисковик.

Проблему с зависаниями удалось решить путём увеличения значения параметра NetStream.bufferTime на стороне принимающего до 0,8 если все настройки камеры выставлены на значения по-умолчанию. Если картинка нужна получше качеством, то и bufferTime нужно повышать. Правда, всему есть цена - увеличение этого параметра увеличивает задержку от реальности.

Плюс, менять размер буфера в зависимости от событий
Код AS3:

case "NetStream.Buffer.Full":
                                                if (stream.bufferTime != малый буфер)
                                                {
                                                        stream.bufferTime = малый буфер;
                                                }
                                                break;
                                        case "NetStream.Buffer.Empty":
                                                if (stream.bufferTime != большой буфер)
                                                {
                                                        stream.bufferTime = большой буфер;
                                                }
                                                break;



Часовой пояс GMT +4, время: 19:02.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.