Frage von Anselm Rapp:Hallo,
ich habe schon diverse Demo-Versionen von Webcam-Software ausprobiert.
Einigen fehlten wichtige Features, insbesondere zwei andere finde ich
gut, aber sie lasten im Gegensatz zu den anderen die CPU laut
Windows-Taskmanager ganz erheblich aus: eine schwankt zwischen 55 % und
95 % (;!), die andere immerhin so bis zu 35 %. Ich kapiere nicht, warum
manche die CPU fast gar nicht und manche so beträchtlich beanspruchen,
wenn ich doch nur alle fünf Minuten eine Aufnahme per FTP sende. Bei
jeder Software ist das Bild auf dem SW-Monitor "live", d. h. die
Kamera(;-verbindung) wird bei jeder Software aufrechterhalten.
Ich wäre dankbar, wenn mich jemand schlau machen könnte.
Gruß, Anselm
--
Antworten bitte in der Newsgroup.
==> *Die* Empfehlung fuer Webmaster: www.rettet-das-internet.de <==
Antwort von Heiko Nocon:
Anselm Rapp wrote:
>Ich kapiere nicht, warum
>manche die CPU fast gar nicht und manche so beträchtlich beanspruchen,
>wenn ich doch nur alle fünf Minuten eine Aufnahme per FTP sende.
Das Senden eines einzelnen Bildes aller 5 Minuten ist dafür natürlich
nicht verantwortlich.
>Bei
>jeder Software ist das Bild auf dem SW-Monitor "live", d. h. die
>Kamera(;-verbindung) wird bei jeder Software aufrechterhalten.
Die Art dieser Vorschau ist der springende Punkt, teilweise aber auch
die Art, wie die Einzelbilder zum Senden abgegriffen werden. Man
(;Programmierer) kann verschiedene Techniken bzw. OS-Schnittstellen
benutzen, um einen Videostream von einem Capturegerät zu holen, Bilder
abzugreifen und den Stream zur Anzeige zu bringen.
Die dümmste Lösung ist, sämtliche Einzelbilder vom Capturegerät in den
RAM (;und den Kontext der Anwendung) zu holen, sie dort mit der CPU zu
skalieren und das Ergebnis aus dem RAM (;und dem Kontext der Anwendung)
wieder an die Grafikkarte zu schicken, nur um ab und an eins der
Einzelbilder vor der Skalierung abgreifen zu können, um es irgendwohin
anders zu schicken. So ungefähr dürften die CPU-intensivsten Lösungen
vorgehen, die du getestet hast.
Die beste Lösung hingegen ist, den Vorschau-Stream komplett im
Kernel-Kontext zu lassen, wo er per DMA direkt vom Capturegerät zur
Graka geschaufelt werden kann und die Skalierung und das "Einstanzen" an
einer Stelle des Bidschirms der GPU der Grafikkarte zu überlassen. Für
das Abgreifen von Einzelbildern würde man einen zweiten Stream im
Kernel-Kontext schaffen, der ausschließlich die gewünschten Einzelbilder
(;also z.B. aller 5 Minuten eins) in den RAM (;und den Kontext der
Anwendung) transferiert wo es dann weiterverarbeitet werden kann. So
ungefähr werden die am wenigstens CPU-intensiven Anwendungen vorgehen,
die du getestet hast.
Zwischen diesen beiden Extremen sind etliche Abstufungen möglich.
Antwort von Anselm Rapp:
Heiko Nocon schrieb:
>> Ich kapiere nicht, warum
>> manche die CPU fast gar nicht und manche so beträchtlich beanspruchen,
>> wenn ich doch nur alle fünf Minuten eine Aufnahme per FTP sende.
>
> Die dümmste Lösung ist, sämtliche Einzelbilder vom Capturegerät in den
> RAM (;und den Kontext der Anwendung) zu holen, sie dort mit der CPU zu
> skalieren und das Ergebnis aus dem RAM (;und dem Kontext der Anwendung)
> wieder an die Grafikkarte zu schicken, nur um ab und an eins der
> Einzelbilder vor der Skalierung abgreifen zu können, um es irgendwohin
> anders zu schicken. So ungefähr dürften die CPU-intensivsten Lösungen
> vorgehen, die du getestet hast.
So wird es wohl sein. Blöde, dass das Drumherum am besten programmiert ist.
> Die beste Lösung hingegen ist, den Vorschau-Stream komplett im
> Kernel-Kontext zu lassen, wo er per DMA direkt vom Capturegerät zur
> Graka geschaufelt werden kann und die Skalierung und das "Einstanzen" an
> einer Stelle des Bidschirms der GPU der Grafikkarte zu überlassen. Für
> das Abgreifen von Einzelbildern würde man einen zweiten Stream im
> Kernel-Kontext schaffen, der ausschließlich die gewünschten Einzelbilder
> (;also z.B. aller 5 Minuten eins) in den RAM (;und den Kontext der
> Anwendung) transferiert wo es dann weiterverarbeitet werden kann. So
> ungefähr werden die am wenigstens CPU-intensiven Anwendungen vorgehen,
> die du getestet hast.
>
> Zwischen diesen beiden Extremen sind etliche Abstufungen möglich.
Da fällt die Entscheidung schwer. Aber danke für die Aufklärung.
Gruß, Anselm
--
Antworten bitte in der Newsgroup.
==> *Die* Empfehlung fuer Webmaster: www.rettet-das-internet.de <==
Antwort von Andreas Erber:
Anselm Rapp wrote:
>
> Ich wäre dankbar, wenn mich jemand schlau machen könnte.
Das warum weißt du nun ja schon, das wie umgeht man das kann man so machen:
Man nimmt eine normale Pal Cam(;corder) / Dicigam, die Pal ausgibt, gehst mit
Composite/Svideo/RGB auf den Eingang einer Grafikarte oder TV Karte die
einen solchen Eingang bereitstellt und benutzt irgendeine Webcamsoftware die
mit den Windows Capture Treibern Kompatibel ist. Dann hast du 0 CPU
Auslastung bei der Vorschau und nur ein bisserl eine wenn das Bild
hochgeladen wird.
LG Andy
Antwort von Anselm Rapp:
Andreas Erber schrieb:
>> Ich wäre dankbar, wenn mich jemand schlau machen könnte.
>
> Das warum weißt du nun ja schon, das wie umgeht man das kann man so machen:
>
> Man nimmt eine normale Pal Cam(;corder) / Dicigam, die Pal ausgibt, gehst mit
> Composite/Svideo/RGB auf den Eingang einer Grafikarte oder TV Karte die
> einen solchen Eingang bereitstellt und benutzt irgendeine Webcamsoftware die
> mit den Windows Capture Treibern Kompatibel ist. Dann hast du 0 CPU
> Auslastung bei der Vorschau und nur ein bisserl eine wenn das Bild
> hochgeladen wird.
Das wäre natürlich technisch *die* Lösung. Allerdings habe ich meine
Webcam zu einem Spottpreis bekommen, sonst hätte ich gar keine. Der
Ausblick aus meinem Fenster ist so spannend auch wieder nicht, aber
wenigstens wissen meine etwas entfernt wohnenden Kinder, wie das Wetter
bei uns ist. :-)
Hier
www.pcwelt.de/forum/windows-nt-2000/98906-prozess-prioritaet-festlegen.html
hat jemand beschrieben, wie man Prozessen eine Priorität zuweisen kann,
womit mir schon geholfen wäre. Aber wie das Programm in einer Datei, die
"z. B." prior.cmd heißt, seine Priorität auslesen soll, ist mir
schleierhaft. Ich habe XP Home, aber das dürfte nicht der Grund sein,
warum es (;auch) bei mir nicht funktioniert.
Danke jedenfalls,
Anselm
--
Antworten bitte in der Newsgroup.
==> *Die* Empfehlung fuer Webmaster: www.rettet-das-internet.de <==
Antwort von Andreas Erber:
Anselm Rapp wrote:
>
> Das wäre natürlich technisch *die* Lösung. Allerdings habe ich meine
> Webcam zu einem Spottpreis bekommen, sonst hätte ich gar keine. Der
> Ausblick aus meinem Fenster ist so spannend auch wieder nicht, aber
> wenigstens wissen meine etwas entfernt wohnenden Kinder, wie das
> Wetter bei uns ist. :-)
Ahja alte TV Karten und Camcorder mit defektem Kasettenlaufwerk etc, gibts
vielleicht auch Spottbillig bei Ebay, keine Ahnung ;-)
Besser als der Bild von so einer Webcam wird das Bild damit allerdings
bestimmt!
LG Andy
Antwort von Günter Hackel:
Andreas Erber schrieb:
> Ahja alte TV Karten und Camcorder mit defektem Kasettenlaufwerk etc, gibts
> vielleicht auch Spottbillig bei Ebay, keine Ahnung ;-)
> Besser als der Bild von so einer Webcam wird das Bild damit allerdings
> bestimmt!
Du kennst Webcams nur aus dem letzten Jahrtausend und Camcorder auch nur
theoretisch.
gh