Здравствуйте, vALP, Вы писали:
ALP>PushSourceDesktop -> MPEG Encoder -> Multiplexer -> NetRenderer.
ALP>Проблемы: ALP>1. Такой граф успешно доставляет информацию, смотрю в VLC плеере, все хорошо первые несколько секунд, потом начинается запаздывание показа. В конечном итоге присланное показывается спустя секунд 20 при времени жизни кадра в видео рендерере 1/5 сек. ALP>2. Если нагрузить серверный камп, то на клиенте показывается только первый кадр, остальное отбрасывается (считается как drop frames) ALP>3. Если из графа убрать мультиплексер, то теряются все кадры. Наблюдаю квадрат Малевича другими словами.
ALP>Полагаю, что проблема с TimeStamps, однако source фильтр делает засечки так, как это указывалось в сэмпле D9 SDK:
смотрел сорцы PushSourceDesktop фрэйм там берутся используя битБЛТ а это ну далеко не самый быстрый метод... как следствие когда пуш фильтр приходит очередной раз в fillbuffer там находится еще старый фрейм, а не новый который не успелся взяться... а пушсорс туда заходит ну очень часто... можете ради интереса не стримить, а записать результат в файл и увидите что за 10 секунд у вас запишется на порядок длинее файл...
как решать проблему:
1. mirror driver он позволит вам с достаточной скоростью брать снапшоты дэсктопа
2. не уверн, но можно пробовать после обработки буфера в fillbuffer обнулять его