Hallo zusammen,
die Ansteuerung des AVR NET IO ist so weit erledigt, nur noch einige Kleinigkeiten. Bin im Moment an einer USB Cam dran und spreche diese mit der avicap32.dll an. Das Bild ist da! ich habe nun das Problem das ich keine Beschreibung zu dieser dll finde. Das heißt, was bedeuten die vielen Konstanten? oder wo bekommt man eine Beschreibung her? Hintergrund meiner Frage ist, ob man auch die Belichtungszeit einer Webcam über diese DLL verlängern kann?
Ich möchte gern noch ein wenig mit der dll "spielen" um zu sehen was so alles geht.
Kann mir jemand helfen?
Viele Grüße,
Torsten
Ip Cam/USB Cam anzeigen und auf Festplatte speichern
Re: Ip Cam/USB Cam anzeigen und auf Festplatte speichern
Hi,
deine verwendete Methode, Video For Windows (VFW), ist eigentlich schon veraltet und bietet solche Möglichkeiten nicht direkt durch Befehle an. Es gibt Möglichkeiten durch anzeigen bestimmter Dialoge solche Einstellungen per Hand vor zu nehmen, jedoch gibt es leider nicht die Möglichkeit per Code Einstellungen automatisch zu ändern.
Die alternative hierbei wäre DirectShow, welches einem wesentlich mehr Einfluss gibt, jedoch auch sehr viel schwieriger zu implementieren ist, da man diese Art von OOP nicht aus PureBasic gewöhnt ist. Es gibt ein Interface ICameraControl in DirectShow, welches dir alle benötigten Einstellungen zur Verfügung stellt.
mfg,
DarkPlayer
deine verwendete Methode, Video For Windows (VFW), ist eigentlich schon veraltet und bietet solche Möglichkeiten nicht direkt durch Befehle an. Es gibt Möglichkeiten durch anzeigen bestimmter Dialoge solche Einstellungen per Hand vor zu nehmen, jedoch gibt es leider nicht die Möglichkeit per Code Einstellungen automatisch zu ändern.
Die alternative hierbei wäre DirectShow, welches einem wesentlich mehr Einfluss gibt, jedoch auch sehr viel schwieriger zu implementieren ist, da man diese Art von OOP nicht aus PureBasic gewöhnt ist. Es gibt ein Interface ICameraControl in DirectShow, welches dir alle benötigten Einstellungen zur Verfügung stellt.
mfg,
DarkPlayer
Mein Blog: http://fds-team.de/cms/
-
- Beiträge: 87
- Registriert: 28.11.2010 13:07
- Computerausstattung: P4 2x3.2GKz.1GB WIXP 32Bit NVIDEA GT240 1GB DDR3, AMD XP 1.8GHz Linux 32Bit NVIDEA GT240 TIi3200
- Wohnort: Germany
- Kontaktdaten:
Re: Ip Cam/USB Cam anzeigen und auf Festplatte speichern
Hallo Torsten,
wenn Du vermutest Das Du Teile des Code's für USB Cam's später für Dein IP Cam Projekt weiter verwenden kannst
dann muß ich Dich leider entäuschen.
USB Cam's (und USB Sticks mit Videio Eingang und TV Karten) welche über einen WDM Treiber verfügen können alle über VFW (Video For Windows) angesprochen werden.
Der Rest (ohne WDM Treiber) wird über Filter Pins des DirectShow COM Interfaces programmiert.
IP Cam's könnten im Prinzip über ein einheitliches Protkoll angesprochen werden aber in der Praxis gibt es viele Firmeneigene Standards
so das Du wie hier schon geschrieben auf eine API (meist in einer DLL) des Herstellers angewiesen bist.
Mit der älteren VFW Programmierung bin ich vertraut und habe auch schon einige Decoder's veröffentlicht.
Die Decoder kommen immer dann zum Zuge wenn die Cam bzw. dessen optischer Halbleiterchip die Videosequenzen nicht im RGB Farbraum liefern bzw. transportieren.
Tests hatten gezeigt das einfache selbstgeschriebene Decoder bis zu 250% schneller sind als die instalierten Windows Codec's.
(Das Ergebnis ist eine viel geringere CPU Auslastung interresant für Applikationen mit mehreren Streams zur gleichen Zeit)
Solltest Du mal einen Decoder für Deine angepeilte USB oder IP Cam brauchen
hier die Liste welche ich implementiert habe und ggf. mit aushelfen könnte.
YV12, I420, IYUV, YUV2, YUV, UYVY
Wenn Du dich in die Thematik eingearbeit haben solltest
hier mal eine Seite wo fast alle (oder mittlerweile alle) gebräuchlichten Codecs Formate gelistet werden.
http://www.fourcc.org/
Grüsse Joshy
edit:
Zum Thema veraltet.
Ich habe 6 USB Cams von vier verschiedenen Herstellern
und einen USB Stick und eine HDTV PCI Sat-Karte beide mit Video Eingang.
Alle Geräte kann ich über VFW programmieren
aber nur die häfte der Geräte haben einen Treiber für DirectShow.
Die Vergangenheit hat auch gezeigt Das Cam's mit WDM Treiber immer viel
schneller auch unter Linux zum laufen gebracht werden konnten als die die
"nur" mit DirectShow Treiben daher kommen.
wenn Du vermutest Das Du Teile des Code's für USB Cam's später für Dein IP Cam Projekt weiter verwenden kannst
dann muß ich Dich leider entäuschen.
USB Cam's (und USB Sticks mit Videio Eingang und TV Karten) welche über einen WDM Treiber verfügen können alle über VFW (Video For Windows) angesprochen werden.
Der Rest (ohne WDM Treiber) wird über Filter Pins des DirectShow COM Interfaces programmiert.
IP Cam's könnten im Prinzip über ein einheitliches Protkoll angesprochen werden aber in der Praxis gibt es viele Firmeneigene Standards
so das Du wie hier schon geschrieben auf eine API (meist in einer DLL) des Herstellers angewiesen bist.
Mit der älteren VFW Programmierung bin ich vertraut und habe auch schon einige Decoder's veröffentlicht.
Die Decoder kommen immer dann zum Zuge wenn die Cam bzw. dessen optischer Halbleiterchip die Videosequenzen nicht im RGB Farbraum liefern bzw. transportieren.
Tests hatten gezeigt das einfache selbstgeschriebene Decoder bis zu 250% schneller sind als die instalierten Windows Codec's.
(Das Ergebnis ist eine viel geringere CPU Auslastung interresant für Applikationen mit mehreren Streams zur gleichen Zeit)
Solltest Du mal einen Decoder für Deine angepeilte USB oder IP Cam brauchen
hier die Liste welche ich implementiert habe und ggf. mit aushelfen könnte.
YV12, I420, IYUV, YUV2, YUV, UYVY
Wenn Du dich in die Thematik eingearbeit haben solltest
hier mal eine Seite wo fast alle (oder mittlerweile alle) gebräuchlichten Codecs Formate gelistet werden.
http://www.fourcc.org/
Grüsse Joshy
edit:
Zum Thema veraltet.
Ich habe 6 USB Cams von vier verschiedenen Herstellern
und einen USB Stick und eine HDTV PCI Sat-Karte beide mit Video Eingang.
Alle Geräte kann ich über VFW programmieren
aber nur die häfte der Geräte haben einen Treiber für DirectShow.
Die Vergangenheit hat auch gezeigt Das Cam's mit WDM Treiber immer viel
schneller auch unter Linux zum laufen gebracht werden konnten als die die
"nur" mit DirectShow Treiben daher kommen.
PS. meine vielen Fehler der Rechtschreibung auf dem Forum könnt Ihr gerne ignorieren.
-
- Beiträge: 87
- Registriert: 28.11.2010 13:07
- Computerausstattung: P4 2x3.2GKz.1GB WIXP 32Bit NVIDEA GT240 1GB DDR3, AMD XP 1.8GHz Linux 32Bit NVIDEA GT240 TIi3200
- Wohnort: Germany
- Kontaktdaten:
Re: Ip Cam/USB Cam anzeigen und auf Festplatte speichern
Einen heißen Tip für Dich habe ich noch.
Wenn Du keine Lust hast Dich in die DirectShow COM Programierung mit PB einzuarbeiten
es gibt ein echt genial einfaches DLL Interface welches Du mit jeder Programmiersprache nutzen kannst.
http://sol.gfxile.net/escapi/index.html
Grüsse Joshy
Wenn Du keine Lust hast Dich in die DirectShow COM Programierung mit PB einzuarbeiten
es gibt ein echt genial einfaches DLL Interface welches Du mit jeder Programmiersprache nutzen kannst.
http://sol.gfxile.net/escapi/index.html
Grüsse Joshy
PS. meine vielen Fehler der Rechtschreibung auf dem Forum könnt Ihr gerne ignorieren.
Re: Ip Cam/USB Cam anzeigen und auf Festplatte speichern
Das VFW veraltet ist steht ja indirekt schon in der MSDN:
Ich konnte bis jetzt hin auch jedes Gerät per DirectShow ansprechen, wobei jedoch erwähnt werden muss, das die Programmierung bei TV Karten sich stark unterscheidet, da hier wesentlich mehr Filter benötigt werden.
Dark
Desweiteren wird bei DirectShow (im gegensatz zu VFW) das WDM Driver model genutzt, siehe hierzu (WDM Video Capture Filter): http://msdn.microsoft.com/en-us/library ... 85%29.aspxhttp://msdn.microsoft.com/en-us/library/dd757708%28VS.85%29.aspx hat geschrieben: Video for Windows
Microsoft® Video for Windows® (VFW) provides functions that enable an application to process video data. VFW was introduced in 16-bit Windows. Many of its features have been superseded by features in DirectX. For more information, see the DirectX documentation.
Ich konnte bis jetzt hin auch jedes Gerät per DirectShow ansprechen, wobei jedoch erwähnt werden muss, das die Programmierung bei TV Karten sich stark unterscheidet, da hier wesentlich mehr Filter benötigt werden.
mfg,http://www.microsoft.com/whdc/archive/wdmvid.mspx hat geschrieben: Analog Peripherals and Video Capture
Analog video peripherals such as PCI video capture and TV/FM tuners are supported through WDM. Previously, developers were required to write proprietary software to control video peripherals. With WDM, Microsoft defined generic interfaces through DirectShow for analog TV/FM tuners and A/V multiplexers. Analog video peripheral support is fully documented in the DirectShow SDK.
Dark
Mein Blog: http://fds-team.de/cms/
Re: Ip Cam/USB Cam anzeigen und auf Festplatte speichern
Hallo zusammen,
Danke euch für eure antworten. Da habe ich noch ein wenig zu tun um micht dort einzuarbeiten. Aber es hilft mir ein wenig weiter.
bis dann,
Torsten
PS.: mit IP Cam wird es glaube ich einfacher!
Danke euch für eure antworten. Da habe ich noch ein wenig zu tun um micht dort einzuarbeiten. Aber es hilft mir ein wenig weiter.
bis dann,
Torsten
PS.: mit IP Cam wird es glaube ich einfacher!