haben 1 bzw. 2 Probleme
Zunächst mal, habe eine Netzwerk-Kamera, die natürlich Bilder macht.
Dazu habe eine HTTP API, d.h. ich kann über Requests Daten von der Kamera abholen.
Will einen LiveStream von der Kamera aufbauen.
Also hab das schon geschafft, aber es flimmert.
Hab zwei möglichkeiten die Bilder von der Kamera zuholen,
- Einzelbilder nacheinander (momentan so)
Probleme:
ein Bild - ein Reqeust/Response
Anzeige flimmert
- MJPG Stream, also eigentlich auch Einzelbilder
besser: ein Stream - ein Request/Response
Problem:
für einen Request mit QHttp benötige ich ein IODevice,
in meinen Fall nehm ich QBuffer. Brauch die Bilder um
diese eventl. noch verarbeiten.
Kann aber erst auf meine QBuffer zugreifen, wenn ich
diesen schließe, oder? Is aber blöd bei einem LiveStream!
Die Anzeige der Einzelbilder mach momentan per paintEvent()
Code: Alles auswählen
void CameraControl::paintEvent(QPaintEvent *event)
{
QPainter stream(this);
QPixmap pic;
pic.loadFromData(buf->buffer());
stream.drawPixmap(0, 0, 640, 480, pic);
}Bei 2 fps flimmert nix, aber es ruckelt.
Bei 25 fps flimmert es und machmal setzt die Anzeige für 1-3 Bilder aus.
Kennt jeman ne bessere Möglichkeit Video aus Einzelbildern darzustellen?
Glaub aber, dass es einen meine vielen Request zur Kamera liegt (25 fps -> 25 Request pro Sekunde) .
Dadurch wird alles ausgebremst!
Dies könnte ich vermeiden, wenn ich das Ganze von der Kamera streame!
Aber der QBuffer ist offen, wie komme ich an die Daten?
Dann noch das nächste Problem, der LiveStream soll ja immer laufen. Dadurch wird mein Buffer rein theoretisch unendlich groß!
Will eigentlich nur 1-3 Sekunden in Vergangenheit blicken können, d.h. 25-75 Bilder sollten im Buffer bleiben.
Aber zunächst mal wie kommt man an die Daten eines offen QBuffer, hab leider nix hier im Forum gefunden und auch nix bei den Trolls.
Danke.
gruß
Goofy