Re: потери кадров PushSource через сеть
От: dabeat_bf Украина http://alexmogurenko.com
Дата: 05.04.08 20:22
Оценка: -1
Здравствуйте, 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 обнулять его
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.