Здравствуйте.
Несколько месяцев уже работаю на Дельфи с камерами. Простыми веб-камерами не было проблемы, просто использовал DSPack(
http://directshow.wonderu.com/).
С IP-камерами немного потруднее было. Сначала не мог как показать кадры из камер как видео(capture). Потом нашёл способ: многие камеры поддерживает формат
MJPEG. Например, D-Link DCS-920 может показать live видео по адресу типа
http://192.168.1.20:80/video.cgi?resolution=640x480 (только на FireFox). Потом нашёл класс, который на отдельном потоке загружает JPEG стрим и будет отравлять сообщения форму, чтобы форма показал кадр:
Код:
procedure TMainForm.HandleFrame(Sender: TObject; iFrame: TJPEGImage);
begin
Image.Picture.Bitmap.Assign(iFrame);
iFrame.Free;
end;
Вот так, Image будет обновляться примерно 20 раз в секунду.
Собственно проблема такая: "Image.Picture.Bitmap.Assign(iFrame);" декодирует JPEG и поэтому моя программа использует процессорные ресурсы примерно 60-70%. Короче, программа зависает и система тоже. При этом, если запускается скринсейвер, вообще не работает программа.
Вопрос: есть ли способ оптимально декодировать JPEG?
PS: Гугл почти не дал результатов. Только здесь нашёл похожий вопрос, но он тоже не помог:
http://www.experts-exchange.com/Prog..._20671872.html
И извините за ошибки.