![]()  | 
	
 
  | 
| 
		 
			 
			#1  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Здравствуйте! Опишу ситуацию: 
		
	
		
		
		
		
		
	
		
		
	
	
	Есть 10 ip-камер получаю изображение отдельных кадров каждые 40мс по таймеру через idHTTP, потом пришедшие JPG'и отправляю в TImage'ы, то есть получается у меня: Timage - 10шт (Strech=true) Ttimer - 10шт(для каждой камеры) TidHTTP - 10шт(создаются и удаляются динамически в таймере) На форме свойство DoubleBuffered:=true Ну и размер приходящих изображений 640х480 Вообщем вся эта канетель тормозит со страшной силой, я понимаю что столько таймеров и хттп не нужно, это вопрос решаемый, а вот как заставить Перерисовываться Image'ы так что бы картинка шла реально как видео ума не приложу... Уже копал в сторону DXDraw, но что-то не допонял как можно его применить в моей ситуации... Очень нужен совет, помогите пожалуйста!  | 
| 
		 
			 
			#2  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 ну как минимум можно обновлять все image в одном таймере... 
		
	
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#3  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Лучше все-таки копай в сторону DXDraw. Так будет намного быстрее именно с выводом изображений. 
		
	
		
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#4  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 friz, я говорю, про таймеры я знаю)))) 
		
	
		
		
		
		
		
	
		
		
	
	
	YVitaliy, да то что работать будет быстрее понятно, я просто никак не воткну как DX конкретно в моем случае можно применить, очень много про реализацию игр, а у меня скорее слайдшоу только очень быстрое, и что-то не могу пока придумать как DX применить... Двиньте на путь истинный...  | 
| 
		 
			 
			#5  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Я тут задумался может, если использовать не idHTTP, а TCPClient может получится принимать видео поток более продуктивно (не по кадру, а в MJPG), только не пойму как мне отправить ответ... для примера: 
		
	
		
		
		
		
		
	
		
		
	
	
	Код: 
	IdHTTP1.Request.BasicAuthentication := True; IdHTTP1.Request.Username := 'uName'; IdHTTP1.Request.Password := '********'; Да и еще вопрос по DXPaintBox, используя его методом: Код: 
	DXPaintBox.Canvas.StretchDraw(Rect(0,0,DXPaintBox.Width,DXPaintBox.Height),JpgImage);  | 
| 
		 
			 
			#6  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 По поводу TCP - просто надо вручную написать и отправить заголовок для логина. Его формат можно найти в интернете или мб как-нибудь вытащить из idHTTP. 
		
	
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#7  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 что-то я не совсем понял: в таймерах делаешь запросы к камерам, но ведь Get у TIdHTTP синхронный (блокируемый). пока выполняется 1 - остальные стоят... 
		
	
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#8  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Про синхрон я не знал... может это тоже является причиной тормозов, так и не могу пока найти оптимального решения( 
		
	
		
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#9  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Если камер всего 10, то просто создай на каждую по потоку и через Synchronize обновляй соотв. картинку. 
		
	
		
		
		
		
		
	
		
		
	
	
	 |