LabVIEWForum.de
Video aufnehmen,gleichhzeitig speichern und gleichzeitig ansehen - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Video aufnehmen,gleichhzeitig speichern und gleichzeitig ansehen (/Thread-Video-aufnehmen-gleichhzeitig-speichern-und-gleichzeitig-ansehen)



Video aufnehmen,gleichhzeitig speichern und gleichzeitig ansehen - behrangc - 29.08.2020 01:20

Guten Tag liebes Forum,

ich bin aktuell dabei zwei "VIs" zusammenzuführen um folgendes zu erreichen: Webcam-Videoaufnahme(Livestream), Kontinuierliches Speichern des Videos/Streams + Gleichzeitiger Aufruf/Abruf des Videos/Streams, um im Media Player auf dem Frontpanel vorwärts- und rückwärtsspulen zu können.

Die Installation der notwendigen Module + NI Vision habe ich durchgeführt. Jetzt ist es so, dass ich seit mehreren Stunden versuche beide Teile im VI "zusammenzuführen". Der linke Teil startet den Stream und speichert ihn, der rechte Teil ermöglicht den Abruf eines schon auf dem Computer gespeicherten Video und ermöglicht das Anschauen des Videos über den Windows Media Player im Frontpanel.

Prinzipiell glaube ich, dass alles in einer While-Schleife "eingebaut" werden muss, damit die Videoaufnahme kontinuierlich gespeichert wird und kontinuierlich abgespielt werden kann. Grundsätzlich bin ich aber ratlos, und habe auch schon alles mögliche versucht und jetzt erstmal alles was ich "probiert" habe wieder entfernt, um nicht für Verwirrung zu sorgen.

Ich habe das aktuelle VI angehängt, damit man sich auch ein Bild davon machen kann neben meinen Erklärungen. Das VI ist mit der LabVIEW-Version 2020 erstellt worden. Deshalb hänge ich auch mal ein Screenshot vom VI an.

Vielleicht kann mir jemand helfen, der schon viel erfahrener mit Videoaufnahmen in LabVIEW ist :-)

Lieben Dank und Grüße


RE: Video aufnehmen,gleichhzeitig speichern und gleichzeitig ansehen - behrangc - 05.09.2020 13:46

Hallo zusammen,

schade, dass bisher noch keiner auf meinen Thread reagiert hat. Mittlerweile bin ich einen "Schritt" weiter. Ich habe mich entschieden die Webcam-Aufnahme über einen Python-Code auszuführen und die entstandene AVI im Datei-Explorer über LabVIEW abzuspielen. in LabVIEW möchte ich dann die Möglichkeit haben über einen Slider vor- und zurückspulen zu können. Ich möchte damit alle möglichen Bilder noch mal ansehen können.

Nun besteht die Schwierigkeit immer noch darin, dass der Media Player nicht auf die AVI zugreift, während die Webcam ein Video über den Python Code aufnimmt. Wenn ich die AVI im File Explorer mit dem VLC Media Player öffne, kann ich mir den Stream anschauen und die Videodauer nimmt kontinuierlich zu. Auch das Vor- und zurückspulen funktioniert einwandfrei.

In LabVIEW jedoch führt der Windows Media Player im Frontpanel diese Datei überhaupt nicht aus. Erst muss ich den Python Code beenden, womit die Videodatei auch endgültig abgespeichert wird. Dann ist es möglich mit dem VI in LabVIEW diese Videoaufnahme abzuspielen.

Nun stellt sich mir die Frage, ob das was ich vorhabe überhaupt möglich ist. Bin ich auf der richtigen Spur? Muss ich einen anderen Media Player verwenden? Liegt es an Leserechten? Gibt es ein besseres VI, mit dem ich „LIVE“ auf eine AVI-Datei zugreifen kann, die noch nicht fertig abgespeichert ist?

Im Anhang habe ich die VIs, mit denen ich es bisher versucht habe angehängt. Zwei VIs habe ich noch als Screenshot angehängt. Bei all diesen VIs habe ich das oben beschriebene Problem..

Ich hoffe, dass ich diesmal mehr Glück habe und mir hier erfahrenere LabVIEW-Spezialisten zumindest auf den richtigen Weg führen können. Ich freue mich wirklich über jedes Feedback, da ich nicht mehr weiter weiß...

Liebe Grüße


RE: Video aufnehmen,gleichhzeitig speichern und gleichzeitig ansehen - Martin.Henz - 06.09.2020 08:32

(05.09.2020 13:46 )behrangc schrieb:  schade, dass bisher noch keiner auf meinen Thread reagiert hat.

Evtl. liegt es einfach daran, dass hier noch niemand versucht hat, so etwas in er Art zu tun.

Wenn Python es zulässt, dass während der Aufnahme auf das Video zugegriffen wird, also der VLC player das Video ablielen kann, dann stellen sich mir ein paar Fragen:

1. Kann der Media-Player (Stand allone), denn das Video überhaupt absielen während die Aufnahme läuft?
2. Hast du schon einmal versucht, das Video mit LabVIEW abzuspielen (erst einmal nach der Aufnahme und später während der Aufnahme)
3. Was hindert sich daran einfach den VLC player zu nehmen, wenn der doch funktioniert?
(https://lavag.org/topic/17046-multi-panel-interface/)


RE: Video aufnehmen,gleichhzeitig speichern und gleichzeitig ansehen - behrangc - 06.09.2020 10:24

Hallo Martin,

Vielen Dank für Dein Feedback!

1.Nein, mit dem Media Player (Stand alone) funktioniert das abspielen nicht während die Aufnahme läuft.

2.Ja mit verschiedenen VIs. Während der Aufnahme hat es nicht funktioniert. Wenn ich jedoch den Python-Code (die Webcam-Aufnahme) beende, dann wird das Video endgültig abgespeichert. Dann lässt sich dieses Video auch über LabVIEW (den Media-Player) abspielen, aber halt nicht während der Aufnahme.

3.Ich habe bisher kein VI gefunden, welches bei mir funktioniert hat. Zugegeben ich habe in dieser Hinsicht versucht, so etwas in der Art zu tun. Die VIs für den VLC Media Player zeigten mir immer an, dass mir Plugins fehlen. Obwohl ich den VLC Media Player "komplett" installiert habe. Was muss ich hierbei beachten? Hast Du vielleicht da einen Tipp bei der Vorgehensweise?

Vielen Dank nochmals für Deine Hilfe!

Liebe Grüße


RE: Video aufnehmen,gleichhzeitig speichern und gleichzeitig ansehen - Martin.Henz - 06.09.2020 12:36

Nochmal zum zweiten Punkt:
Also ich meinte da nicht den Media-Player, sondern die VIs aus der Palette Vision Utilities, Files, AVI und dort dann die entsprechenden VIs (open, read frame, close). Das ist aber zwar etwas problematisch, weil diese Vis bezüglich des Video Codec doch sehr limitiert sind, aber wenn du das AVI File mit einem passenden Codec erstellen kannst, dann gibt es damit vielleicht eine Change.

Zum dritten Punkt:
Also mehr als "herumgespielt" habe ich damit nie und da mir die Zeit für Spielereien einfach zu schade ist, liegt das auch schon ziemlich lange zurück: Es gibt so ganz grundsätzlich die Möglichkeit ein beliebiges Fenster als Child-Fenster in ein anderes Programm einzubinden. Das kann man auch mit Labview machen. Das verlinkte Beispiel zeigt wie es im Prinzip funktioniert. Es hat jedoch ziemlich viel Overhead dabei, was es kompliziert macht und es zeigt nicht, wie es mit einem anderen Programm (EXE file) ganz genau geht. Das Prinzip ist aber identisch und sollte damit auch mit VLC funktionieren.

Im LAVA Forum oder im NI Forum taucht das Thema immer wieder mal mit verschiedenen Titeln auf. Da musst du mal suchen.
Zum Beispiel unter
https://forums.ni.com/t5/LabVIEW/How-to-run-an-exe-as-a-window-inside-a-VI/td-p/3112435?profile.language=en

Dort gibts auch noch ein einfacheres Beispiel mit Notepad.exe wo sich das Prinzip besser ableiten lässt. Da bekommst du dann Notepad im LabVIEW Fenster. Das ist ein wenig mit heißer Nadel gestrickt, aber dabei geht es ja auch nur ums Prinzip.
https://forums.ni.com/t5/LabVIEW/How-to-run-an-exe-as-a-window-inside-a-VI/m-p/3113729?profile.language=en#M893102