Господа, подскажите, какой компонент использовать для получения MJPEG over HTTP и каким образом лучше этот поток обработать?
Для получения отдельного кадра я использовал TidHTTP (инди).
Код:
memorystream:=TMemoryStream.Create;
Jpeg:=TJpegImage.create;
IdHTTP1.Get('http://192.168.1.99/snapshot.cgi',memorystream);
jpeg.LoadFromStream(memorystream);
С этим проблем нет.
Когда отправляешь запрос:
http://192.168.1.99/videostream.cgi, в ответ приходит поток данных:
--myboundary (разделитель)
Content-Type: image/jpeg
Content-Length: (размер кадра)
<JPEG image data>
--myboundary
Content-Type: image/jpeg
Content-Length:
<JPEG image data>
и т.д...
Мне нужно вытаскивать из этого потока кадры. Если использовать TidHTTP то руки связанны, так как memorystream используется методом GET(). Удобнее всего, было бы, как в TtcpClient - на событие onReceive обрабатывать каждый пришедший кусок данных и писать их в массив кадров...