berens Posted May 22, 2006 Share Posted May 22, 2006 Hallo! Zusammenfassung: Ich brauche eine Funktion, die mir sagt, wie lange die Aufnahme bei der aktuellen Datei (-01 oder -02 etc) schon läuft wie diese Datei genau heisst. Wie kann ich das umsetzen? Details mit meinen ver(w)irrten Gedankengängen: Also ich lasse über COM etwas aufnehmen. Kein Problem soweit. Das Programm wird aufgezeichnet und soll auf einem anderen PC möglichst zeitgleich wiedergegeben werden. Generell auch kein Problem mit der Wiedergabe ansich. Aber: Wie kann ich auslesen, an welcher Stelle der Aufnahme sich aktuell das Fernsehprogramm befindet? ---- Die 3 Stichpunkt quasi einfach überlesen, sind nur Gedanken, wie ich zu dem Thema komme -Ich weiss nicht wirklich, wann die Aufnahme angefangen wurde (angenommen ich nehme irgendwann nach Beginn der Sendung auf) -Ich weiss nicht, wie weit die aktuelle Sendung ist (naja, das könnte man wohl noch über EPG rausbekommen) -Ich weiss nicht, weil Uhrzeiten DVBViewer vom PC, und welche von DVB nimmt. Wenn also (angenommen) meine Uhrzeit 2 Minuten falsch von der von DVB geht (an die ja dann die Startzeit oder so gekoppelt wäre, siehe EPG), wäre ich bei der Wiedergabe ja dann evtl. um 2 Minuten verzögert... (*verwirrt*) Also ich brauche quasi einfach ne Funktion, die mir sagt, wie viele Sekunden die Aufnahme schon läuft und eine, die mir den wirklich aktuellen Dateinamen der Aufnahme sagt, denn wenn ich nach 600 MB z.B. die Dateien trenne (gute Funktion übrigens!) wird ja an den Dateinamen ein -01 etc angehängt. Es wäre also praktisch auch zu wissen, bei welcher Sekundenzahl ich mich in der _aktuellen_ Datei (also -01 oder so) ich mich gerade befinde, sonst müsste ich von allen Einzelteilen die Zeit zusammenrechnen und dann schauen wo ich bin, bzw. die letzte Datei suchen, und dann deren Spiellänge nehmen *wieder verwirr* Also noch mehr quasi eine Funktion, die mir sagt, wie lange die Aufnahme bei der aktuellen Datei (-01 oder -02 etc) schon läuft wie diese Datei genau heisst. Vielen Dank, Mathias Quote Link to comment
admi-ral Posted May 23, 2006 Share Posted May 23, 2006 ich hab zwar nicht wirklich kapiert was Du eigentlich willst, mir fällt jedoch ein "Weg" ein: -Überwache das Verzeichnis nach Dateien, die ihre Größe ändern: diese Datei wird wohl gerade aufgenommen -öffne diese Datei -überprüfe länge dieser Datei in sekunden und springe einfach ans Ende minus 10sek Quote Link to comment
berens Posted May 23, 2006 Author Share Posted May 23, 2006 Die Idee ist richtig, und so würde ich das auch generell machen, aber: -die Datei ist gerade von DVBViewer gesperrt, weil noch drin aufgenommen wird, deshalb kann sie meistens nicht von einem anderen Programm geöffnet werden (hm, ok mit DVBViewer selbst hab ich das noch nicht probiert, aber aufnehmen und gleichzeitig ne Datei wieder geben? Ich glaub net, dass das so gut käme, denn die Aufnahme läuft ja noch im Hintergrund) -zum Abspielen der Datei verwende ich atm VLC und übergebe als Parameter (das muss ich leider so machen) eine Playlist, in der ich vormerken kann, was die Startposition ist. Ich kann dort leider im Moment kein Interface verwenden, mit dem ich die Gesamtzeit auslesen kann. -Anhand der Dateigröße könnte man die Zeit wohl schon errechnen. Sind die kb/s fest, oder ändert sich das (Variable Bitrate?) Danke. Quote Link to comment
admi-ral Posted May 23, 2006 Share Posted May 23, 2006 aber aufnehmen und gleichzeitig ne Datei wieder geben 0 Probleme mit der aktuellen DVBSource Ich würde die Spieldauer mit COM direkt aus dem aufnehmenden DVBViewer auslesen und die Datei gleich damit wiedergeben Aber beschreibe doch noch mal bitte, *was* eigentlich das Ziel deiner Mühen sein soll, denn irgendwie konnte ich das bis jetzt noch nicht erkennen. Wenn ich eine Sendung aufnehme und sie "möglichst live" gucken will (aber dennoch nicht wirklich live), dann gehe ich ins OSD unter Aufnahmen und öffne die Datei (die aufgenommen wird). Dann springe ich mit OSD-Gelb bis knapp ans Ende und gut ist. Meinst Du das? VLC hat oft das Problem, dass die Spielzeiten von aktuell geschriebenen Dateien nicht korrekt ausgelesen werden, deswegen ist das mit dem Springen da etwas schwierig, aber der DVBV hat so gut wie keine Probs damit Quote Link to comment
berens Posted May 23, 2006 Author Share Posted May 23, 2006 Also, Problemstellung: Zeige DVB-T Fernsehen in unserer eigenen Delphiapplikation an. Die TV-Karte sollte nicht zwingend im selben PC sein, wie der, auf dem die Anzeige läuft. Möglicher Lösungsansatz: Stelle auf dem TV-PC mit DVBViewer einen Unicast stream bereit und zeige diesen in der eigenen Applikation an. --> Geht leider nicht, weil VLC (das haben wir eingebettet) damit leider nicht so wirklich zurecht kommt --> Multicast können wir dem Kunden (großes Firmennetzwerk) nicht zumuten (geht aber glaube ich eh nicht mit VLC) Praktische Lösung die ich zu automatisieren Anstrebe (für Alternativen wäre ich sehr, sehr dankbar!): DVBViewer zeichnet die Sendung die dargestellt werden soll auf die Festplatte auf. (Das wird von meinem Programm veranlasst, und auch alles drumherum (Steuerung des Clients etc.) Der "Client" greift über Datei- und Druckerfreigabe auf diese Datei zu und spielt diese ab. Dank des COM-Interfaces kann ich denke ich mal auch den Dateinamen herausbekommen (unter dem das Programm atm aufgezeichnet wird) und diese Datei dann über Netzwerk abspielen lassen. Nachdem das Programm / der Film vorbei ist wird die Aufnahme gestoppt und die Datei gelöscht. Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.