3 webcams

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8675
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Re: 3 webcams

Beitrag von NicTheQuick »

Also ich hab noch nicht so ganz verstanden, was an AVIs alt ist? Das ist immer noch mein Lieblingscontainerformat. Wenn man das als Komprimierung DivX oder Xvid nimmt, hat man am Ende eine bessere Qualität als mit MPEG. Letztes Jahre hatte ich im Rahmen eines Uni-Projektes einen kleinen 2D-Renderer in Java geschrieben, der nicht für Echtzeit gedacht war, sondern nur Videos produzieren sollte. Dies ging ganz einfach mit einer kleinen Schnittstelle zu FFMPEG. Öffnet man FFMPEG mit den richtigen Parametern, kann man einfach nacheinander JPEG-Dateien 'reinstreamen und hinten kommt ein fertig komprimiertes Video heraus. Sehr praktisch und super schnell sogar bei Full-HD, wie wir es gebraucht hatten.
Mit PB kannst du ja auch ein Programm starten und dann Daten reinstreamen. Von daher sollte es da kein Problem geben. Du musst lediglich deine Bilder als JPEG speichern, und zwar am besten nur temporär im Speicher ohne auf die Platte zu schreiben. Dann diese Bilder einfach nacheinander in FFMPEG streamen. Falls du Lust hast das so zu machen, kann ich dir auch nochmal die Parameter raussuchen, die ich verwendet hatte, weil da manchmal wirklich die Übersicht verliert. :wink:
Bild
Benutzeravatar
deify
Beiträge: 141
Registriert: 29.03.2010 22:01
Computerausstattung: Win7 64bit
AMD Phenom II X4 940
NVIDIA GeForce GTS 250
4GB RAM
Kontaktdaten:

Re: 3 webcams

Beitrag von deify »

Ich selber habe eigentlich auch bis jetzt keine Probleme mit .avi gehabt. Bei uns in der Schule bin ich in einer VideoAG tätig und wir benutzten eigentlich ausschließlich .avi zum arbeiten. Rentiert sich einfach nicht auf andere Formate umzusteigen, da für unsere minidv-Bänder avi vollkommen ausreicht.
Um zu deinem FFMPEG zurück zukommen! Das klingt doch auch ganz vernünftig. Die Bilder werden ja eh schon mit einem tga-Header versehen, vllt ist es ja auch möglich einen jpg-Header davorzusetzen. Allerdings weiß ich nicht in wiefern es schwieriger ist, oder ob das jpg-Format anders aufgebaut ist! Ich werde mal schauen was sich da ergibt.
Doch leider bleibt da immernoch ein Problem bei der Aufnahme selbst. Ich verwende ja für 2 Kameras die escapi.dll, doch da so nur maximal 2 cams laufen, brauche ich ja noch eine weitere Variante, sprich avicap oder sonst etwas. Jetzt muss ich natürlich diese beiden dlls auch noch auf einen Nenner bringen, um sie zusammen als jpg zu formatieren, und schließlich an FFMPEG zu senden!
Falls es so klappt, wäre ich dir natürlich sehr dankbar für die Parameter (:
Hoffe ihr habt ne idee dazu (:

mfg deify
Windows 7 | 64bit | PureBasic 4.51 (x64/x86)
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8675
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Re: 3 webcams

Beitrag von NicTheQuick »

Also JPEG ist ja grundlegend anders aufgebaut als TGA. Von daher reicht es nicht einfach einen anderen Header davor zu setzen. Aber es soll auch möglich sein andere Formate in FFMPEG reinzustreamen als nur JPEG. Leider habe ich das bisher nur noch nicht geschafft. Na ich werde den Thread hier jedenfalls mal weiter verfolgen und wenn du weiter gekommen bist, spring ich wieder rein und helf' dir mit FFMPEG.
Bild
D.J.Peters
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: 3 webcams

Beitrag von D.J.Peters »

Hallo Ihr Beiden,
mit "AVI Kram" meinte ich nicht das Kontainer-Fileformat an sich (das kann ja nichts für den "Schlamassel")
sondern die AVI Cap und AVI File Libs die sind mit den bekannten Einschränkungen seit WIN 3.1 dabei.

Auf Grund einiger Kommerziellen Eigentwicklungen kenne ich diese Libs ziemlich gut.

Für Kundenmessen habe ich damit ein Blue-Box System programmiert
Messebesucher konnten sich vor belieben animierten Hintergrundbildern Filmen lasen.
Ein anderes gößeres Projekt war ein Video-Überwachnungssystem mit bis zu 16 Kameras.

Im Hobbysektor entstand AVI Screen/Window Writer für FreeBASIC und Basic4GL
und die Video Capturelib für WEB-Cams und TV-Karten andere Geräte mit Video-Input.

Ich denke die kurzen Kegler-Bewegungsstudien sind damit realisierbar
aber drei Streams mit 25 Bilder pro Sekunde als Vorschaubilder
und das zusätzliche Encoden und Speichern der drei Streams mit weiteren
25 Bildern pro Sekunde könnte doch ein Problem sein.

Das sieht mit einer Hardwarelösung mit z.B. 4 Videoeingängen schon ganz anders aus
weil diese PCI Karten das Encodieren der Videostreams direkt in Harware machen
ohne die CPU zu belasten. Daher reicht die PC Perfomenz um die Vorschaubilder anzuzeigen
und den schon fertigen Videostream zu Speichern.

Das man ohne so einer Hardwarelösung dann noch zwei verschiedene Libs nehmen muss
um überhaupt drei Videoquellen "Recorden" zu können macht die Sache auch nicht gerade performanter.

Grüsse Joshy
PS. meine vielen Fehler der Rechtschreibung auf dem Forum könnt Ihr gerne ignorieren.
Benutzeravatar
deify
Beiträge: 141
Registriert: 29.03.2010 22:01
Computerausstattung: Win7 64bit
AMD Phenom II X4 940
NVIDIA GeForce GTS 250
4GB RAM
Kontaktdaten:

Re: 3 webcams

Beitrag von deify »

Daran, dass ich leider mit den 3 webcams arbeiten muss, kann ich nichts ändern (:
Ich könne allerdings trotzdem noch probieren Logitech anzuschreiben und um eine Änderung bzw. Lösung für das Treiberproblem zu finden. Dann wäre das Problem mit den verschiedenen Libraries auch gegessen (:

Was die Performance mit dem videostream angeht, wäre es auch kein Problem, wenn während der Aufnahme nur eine Quelle, bzw. keine Quelle angezeigt wird. Es geht ja auch darum, dass der Kegler seine Fehler im nachhinein begutachten kann (:

mfg deify
Windows 7 | 64bit | PureBasic 4.51 (x64/x86)
Benutzeravatar
deify
Beiträge: 141
Registriert: 29.03.2010 22:01
Computerausstattung: Win7 64bit
AMD Phenom II X4 940
NVIDIA GeForce GTS 250
4GB RAM
Kontaktdaten:

Re: 3 webcams

Beitrag von deify »

Hi Leute!
Also leider musste ich das Projekt bis jetzt auf Eis legen.... hatte relativ viel zu tun. Doch jetzt da mein Abitur endlich geschafft ist mache ich mich natürlich wieder tatkräftig an die Arbeit!

Ich habe heute die Codes wieder ausgegraben und mich auch shconmal mit dem Logitechsupport auseinandergesetzt...
Logitech meinte, dass sie die Windows-treiber benutzen... frage mich blos warum sie einem dann ihre zusatzsoftware andrehen müssen.... Auf jeden Fall unterstützen sie keine Treiberänderungen oder Treiber von Drittanbietern...

Demnach habe ich nochmal versucht softwareseitig alle 3 Cams zum laufen zu bringen... mit der escapi.dll und Capture_Framework (avicap32.dll) liefen dann sogar alle 3.... leider etwas unterschiedlich von der Bildqualität und den Aufnahmemöglichkeiten.

Jetzt hätte ich lieber etwas das ähnlicher ist wie die escapi.dll also am ende auf ein Imagegadget gespielt werden muss! Welceh dll bietet sich da an?

Hoffe ihr könnt mir helfen (:

mfg deify
Windows 7 | 64bit | PureBasic 4.51 (x64/x86)
Benutzeravatar
Falko
Admin
Beiträge: 3531
Registriert: 29.08.2004 11:27
Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.0
Kontaktdaten:

Re: 3 webcams

Beitrag von Falko »

Da dieser interessante Thread eingeschlafen ist, aber die escapi.dll, nun Version 3 sehr interessante Ansätze bietet,
Kameras direkt im Programm auszuwählen, was bei der AViCAP32 unter Windows 10 nicht so schön ist,
möchte ich hier noch einmal diesen hervorheben.

Ich habe schon einige Sachen damit in den letzten Tagen ausprobiert.
Kamera nach Device auswählen und anzeigen in einem windows nach dem Beispiel von freak.
Funktioniert ganz gut. Zwei Kameras in jeweils eigenen windows eins und zwei habe ich auch ausprobiert.
Dazu habe ich die Funktionen mit zwei Variablen belegt und jeweils auf ein eigenes Windows zugewiesen.
funktioniert auch ganz gut. Aber irgendwie noch nicht das Richtige.

Vielleicht ist aktuell noch jemand dabei und hat einige Ideen, wie man mehr als eine Kamera abwechselnd bei Auswahl
in einem Fenster wechselt, oder gleichzeitig in einem Windows anzeigen kann. Ich hoffe, das noch mehr
Interessen hier anschließen.

LG, Falko
Bild
Win10 Pro 64-Bit, PB_5.4,GFA-WinDOS, Powerbasic9.05-Windows, NSBasic/CE, NSBasic/Desktop, NSBasic4APP, EmergenceBasic
Antworten