Страница 1 из 1

Frame Marker

Добавлено: Пн май 18, 2015 7:54 pm
ATN
Windows-клиент, подключенный по RDP7, всегда отображает битмапы одним куском, будь то фон рабочего стола или флеш-баннер, даже при выключенном кешировании. Почему я думаю, что дело в версии протокола? Потому что при подключении этим же клиентом к Server 2008 (не R2), фон начинает показываться блоками, а флеш-анимация становится рваной, с горизонтальными разрывами. При подключении к Server 2008 R2 же, фон рабочего стола отображается "моментально".

Это основная причина, почему мои пользователи не хотят переходить с Windows-клиента на WTware. Говорят, "там всё дёргается у тебя". Они согласны подождать лишние 50 мс, но получить картинку целиком. Есть ли возможность как-то этого добиться?

Re: RDP7

Добавлено: Пн май 18, 2015 8:47 pm
aka
Если при подключении mstsc.exe к RDP7 (это где-то написано про RDP7?) установить глубину цвета 16 бит, оно начнёт опять показывать блоками?
Untitled.png
Untitled.png (37.53 КБ) 25744 просмотра

И ещё эксперимент. Напиши в конфиге втвари:

redraw_delay = 1000

Что-нибудь изменится?

Re: RDP7

Добавлено: Пн май 18, 2015 9:17 pm
ATN
aka писал(а):Если при подключении mstsc.exe к RDP7 (это где-то написано про RDP7?) установить глубину цвета 16 бит, оно начнёт опять показывать блоками?
Нет, RDP7 всегда показывает целиком. А "обычный" RDP даже при 16-битном цвете показывает блоками/разрывами.
Типичный пример. На флеш-баннере фотографии с разной скоростью плавно движутся влево. Фреймрейт, я думаю, максимально возможный. На медленном подключении RDP7 показывает заторможенную, но плавную анимацию. "Обычный" RDP показывает вот так:
DSC08119s.JPG
DSC08119s.JPG (214.92 КБ) 25744 просмотра
aka писал(а):И ещё эксперимент. Напиши в конфиге втвари:

redraw_delay = 1000

Что-нибудь изменится?
Насколько я понимаю этот параметр, измениться ничего не должно. Машина мощная, клиент быстро отрисовывает всё, что присылает сервер. Это сервер, насколько я понимаю, посылает кусочками.
Я сейчас дома, скриншот выше сделан при подключении Windows7-клиентом к Server2008-серверу. WTware работает аналогично.

Re: RDP7

Добавлено: Вт май 19, 2015 3:24 am
aka
Что такое "RDP7" и как ты определяешь, что у тебя именно "RDP7"?

Re: RDP7

Добавлено: Вт май 19, 2015 7:36 am
Гость
Это моё предположение. Я проверил следующие варианты:
WTware-клиент и Server2008-сервер плохо.
WTware-клиент и Server2008R2-сервер плохо.
Server2008-клиент и Server2008R2-сервер плохо.
Server2008R2-клиент и Server2008-сервер плохо.
Windows7-клиент и Server2008-сервер плохо.
Windows7-клиент и Server2008R2-сервер хорошо.

При включении RemoteFX становится хорошо, вот только у RemoteFX куча своих недостатков.

Re: RDP7

Добавлено: Вт май 19, 2015 7:52 am
ATN
Гостем был я.

Re: RDP7

Добавлено: Вт май 19, 2015 3:02 pm
aka
Хорошо точно БЕЗ RemoteFX? Как ты определяешь, что RemoteFX сейчас нет?

В документации про RemoteFX я встречал описание механизма синхронизации кадров. Оно для полноэкранного видео придумано, но может кусочки тоже сможет обрабатывать целиком. У обычного RDP не встречал. Попробую ещё раз поищу.

Re: RDP7

Добавлено: Вт май 19, 2015 3:50 pm
ATN
RemoteFX трудно с чем-то перепутать, прежде всего по обилию jpeg-артефактов.
Я где-то читал, что в RDP7 появился новый кодек для битмапов. Может, благодаря ему синхронизируется.

Re: RDP7

Добавлено: Вт май 19, 2015 9:43 pm
aka
Вот: https://msdn.microsoft.com/en-us/library/ff635599.aspx
The Remote Desktop Protocol: NSCodec Codec Extension reduces the bandwidth associated with desktop remoting by efficiently compressing 24 bits per pixel (bpp) and 32 bpp images. This is achieved by using the NSCodec bitmap codec.
В конце: https://msdn.microsoft.com/en-us/library/ff635472.aspx упоминаются сервера начиная с 2008R2. Точно попадает под твоё описание. Но нигде в тексте не упоминается 16 bpp, только 24 bpp и 32 bpp. Если это оно, и при 16 битах оно работает, значит майкрософты 24-битную картинку передают через сеть и на клиенте режут лишние данные. Странно это - передавать лишние данные и резать на клиенте. RemoteFX не заводится, если клиент просит 16 бит, я потому и просил в 16 битах проверить.

Ты ничего на сервере не включал, чтоб оно перестало моргать, из коробки на 2008R2 так получилось? Какое-нибудь характерное место расскажи пожалуйста, где бы я это морание наиболее явно увидел.

Re: RDP7

Добавлено: Вт май 19, 2015 11:40 pm
ATN
Да, из коробки на 2008R2. Ещё раз проверил, в 16 битах тоже всё хорошо.
Для тестов я использую баннеры на http://pogoda.e1.ru/ Но, думаю, подойдут любые флеш-баннеры с плавной анимацией.

Немного почитал на тему. Наиболее подходящий метод для достижения нужного результата это frame markers.
http://www.google.com/patents/US20100228871
Вот тут прямо пишут про "reducing the tearing of display data" и "Tear-free remote desktop protocal (rdp) display". Именно то, что нужно.

Re: RDP7

Добавлено: Вт май 19, 2015 11:51 pm
ATN
Ещё всплывают разные слова типа orderSupportExFlags ORDERFLAGS_EX_ALTSEC_FRAME_MARKER_SUPPORT

Re: RDP7

Добавлено: Чт май 21, 2015 1:43 am
aka
Проверил, мой 2008R2 не использует NSCodec Codec, если клиент просит 16-битный цвет. Значит дело не в кодеке.

ORDERFLAGS_EX_ALTSEC_FRAME_MARKER_SUPPORT похоже на то, что нужно.

Попробуй это:

http://pxe.ru/files/testing/201505210243.zip

Надо поставить официальную 5.2.30 с сайта. И затем файлы из архива по ссылке надо положить в каталог packages вместо файлов с тем же именем. Если загружаешься по сети, то в "C:\Program Files (x86)\WTware\TFTPDROOT\5.2.30\packages\"

Если не поможет, дай лог и опиши подробнее, как мне это увидеть. Надо чтоб сервер тормозил? Или канал медленный? Или клиента медленного? На ненагруженном сервере, гигабите и шустром клиенте в гуглхроме я не вижу горизонтальных разрывов на этих банерах. На флеше размером во весь экран экран горизонтальные разрывы будут, но не на этой мелочи.

Re: RDP7

Добавлено: Чт май 21, 2015 8:53 am
ATN
Всё отлично заработало. Просто отлично.

Думаю, скорость сервера и сети является тут определяющей. Для тестирования можно сетевую карту сервера на 10мбит переводить.
А чтобы не было разрывов на больших областях, можно redraw_delay увеличить. Хотя, значение этого параметра по умолчанию кажется мне оптимальным.