Das Bild musst du natürlich erst von der Webcam bekommen. Dazu gibt es hier im Forum auch eine schöne Demoanwendung, wie das über
DirectX funktioniert. Wenn du allerdings mit deinem Code einen Stream wie z.b. bei Skype erwartest, muss ich dich enttäuschen.
Deine Kompression ist sehr langsam und wird trotzdem nicht ausreichen, um ein flüssiges Video zu erzeugen. Je nach Verbindungsgeschwindigkeit kannst du mit ca. 1 Frame pro Sekunde rechnen. Hab das vor einiger Zeit auch mal ausprobiert gehabt.
Normale Differenzbildverfahren kannst du hier auch nicht ohne weiteres verwenden, da jede Webcam ein normales Bildrauschen erzeugt. Dadurch werden klassische Differenzbildverfahren ohne Toleranz praktisch nutzlos.
Optimalerweise solltest du auf erprobte Verfahren, wie z.b. MPEG Kompression setzen. Ich selbst habe leider keine passende Implementation dafür in Delphi gefunden.