Gibts eine Doku für WinGrabEngine ???

Digital Recording
MacGyver
Interessierter
Interessierter
Beiträge: 31
Registriert: Donnerstag 12. September 2002, 09:29

Gibts eine Doku für WinGrabEngine ???

Beitrag von MacGyver »

Hallo,

ich bin mit den ganzen Tools zum Grabben von der DBox nicht zufrieden und möchte gerne mein eigenes Tool schreiben.
Kann mir jemand sagen ob es eine API-Doku und/oder andere Beschreibungen für die wingrabengine ???
Wenn ja, bitte URL posten.
TGLynx
Einsteiger
Einsteiger
Beiträge: 114
Registriert: Freitag 26. Juli 2002, 11:45

Beitrag von TGLynx »

Sersen!
Welches Feature vermisst Du denn bei vorhandenen Tools (insbesondere NGrab)?? Vielleicht kann man Dir helfen :)

Grüsse
The German Lynx
Elminster
Senior Member
Beiträge: 147
Registriert: Freitag 3. August 2001, 00:00

Re: Gibts eine Doku für WinGrabEngine ???

Beitrag von Elminster »

MacGyver hat geschrieben:Hallo,
Kann mir jemand sagen ob es eine API-Doku und/oder andere Beschreibungen für die wingrabengine ???
Wenn ja, bitte URL posten.
Es gibt ein paar script files die die Ansteuerung zeigen. Die WinGrabEngine ist eine COM DLL. Die TypeLib und die selbsterklärenden Namen der Methoden / Parameter sollte ausreichen.
paoli
Interessierter
Interessierter
Beiträge: 27
Registriert: Mittwoch 5. Juni 2002, 12:33

Beitrag von paoli »

:lol: es gibt schon ein bischen zu meckern an der grab-/mux-engine :
der speicherüberlauf, von dem einige berichten, ist mir noch nicht passiert.
was mich stört :
das konzept, bei fehlern gleich ganze sequenzen wegzulassen (oft kann man da hinterher was reparieren und bei manchen anwendungen stört ein kurzes artefakt weniger als eine fehlende sekunde).
fehler im audio-stream wären von der engine leicht in echtzeit zu reparieren (siehe dvbrecorder von r2d2, der als großes vorbild dienen kann), da ist ein resynch mit dem verbundenen datenverlust völlig überflüssig.
ich hab selten mal seltsame aufhänger (? wenn ein pts-reset kommt ?).
hab da auch einige vermutungen zu internen abläufen, wo man mehr in richtung fehlereleminierung tun könnte (buffer- und task-optimierung).

ist natürlich sowieso viel geiler, wenn mann mit seinem eigenem stream-prog streamt und jegliche idee gleich einbauen kann; deshalb hab ich auch gerade eine eigen-entwicklung im compiler (leider aber viel zu wenig zeit). wenn es leute gibt, die sowas auch vorhaben, könnt ihr euch ja zwecks erfahrungsaustausch / arbeitsteilung ja mal bei mir melden (cpp via visual studio, kann bislang grabben (direkt und streamingserver), synchronisieren, framekontrolle, sitze noch am muxer). ist aber mehr spielerei als das vorhaben, ein alternatives prog zur verfügung stellen zu wollen.
falls jemand dokumentationen bezüglich schnittstelle zu box hat, wär ich da auch sehr interessiert.

:P da ich auf die frage oben (war zwar nicht an mich) mal meine kritik an den scheinbar alle auf die selble engine aufsetzenden grab-programmen geäußert hab, will ich aber auch betonen, daß mit den neuesten images das streamen eine wahre freude geworden ist, die fehlerquote geht ja gegen null, alles ganz genial.
bei 'komando störtebecker' letzten sonntag ist bei mir erstmals sogar der dbox2-grab fehlerfrei gewesen, als im dbox1-grab ein fehler drin war.
MacGyver
Interessierter
Interessierter
Beiträge: 31
Registriert: Donnerstag 12. September 2002, 09:29

Beitrag von MacGyver »

Mir fehlt eine flexiblere Namensgebung sowie eine bessere Fehlerbehandlung bei nGrab. Bei mir ist es z.B. so, dass die Dbox nach einigen Streamings beim EPG Title nur noch kryptische Zeichen übergibt.
Wenn man jetzt einen Dateinamen mit den kryptischen EPG Informationen erstellt, geht dass nicht, da im EPG Title teilweise Steuerzeichen enthalten sind, die für Dateinamen nicht zulässig sind.
Das beschriebene Problem tritt übrigens nur beim aktuellen Snapshot auf, nicht beim Release der cdk.cramfs auf.

Außerdem möchte ich eine Anwendung die unter Microsoft .NET läuft. Ich denke da an einen Windows-Service der über eine INI-Datei konfigurierbar ist und unsichtbar im Hintergrund läuft. Ich finde dass es bei einem Streamingserver mit automatischer Dateinamenserstellung keine Vordergund (TrayIcon) Anwendung braucht. Ich meine dass ein unsichtbarer Windows Service reicht.
MacGyver
Interessierter
Interessierter
Beiträge: 31
Registriert: Donnerstag 12. September 2002, 09:29

Beitrag von MacGyver »

@Elminster:
Die Funktionen sind in der Tat dank des Objekt-Browsers der Microsoft IDEs größtenteils selbsterklärend. Doch es wäre sicherlich hilfreich wenn man eine Übersicht über die verfügbaren Objekte der WinGrabEngine und deren Zusammenspiel hätte. Es gibt dort ja die WinGrabLibrary, WinGrabControl, WinGrabReader. Was tun diese, wie setzt man sie sinnvoll ein?
Außerdem würde ich gerne wissen wozu die beiden Parameter aStripVideoPes und aStripAudioPes in der Funktion StartDirectGrab benutzt werden und wie die Sache mit dem Callback funktioniert.

Also, ein paar Beispielcodes oder eine Beschreibung der WinGrabEngine wären wirklich toll.

PS: Ich habe gesehen dass einige Internetseiten auf deinen Homeip-Server verweisen. Dort sollen auch Skripte liegen. Nur leider bekomme ich nie eine Verbindung per FTP. Deshalb schreibe ich hier auch.
C2k
Einsteiger
Einsteiger
Beiträge: 137
Registriert: Dienstag 27. November 2001, 00:00

Beitrag von C2k »

@MacGyver

bei den Scripten handelt es sich um diese beiden hier:

WinGrabDirect.vbs

Code: Alles auswählen

dim WinGrabLibrary
set WinGrabLibrary = CreateObject("WinGrabEngine.WinGrabLibrary")

dim WinGrabGrabControl
set WinGrabGrabControl = WinGrabLibrary.StartDirectGrab("192.168.0.4", 1791, 1792, "test.m2v", "test.m2a", False, False)

Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Popup "Aufnahme beenden"
und WinGrabMux.vbs

Code: Alles auswählen

dim WinGrabLibrary
set WinGrabLibrary = CreateObject("WinGrabEngine.WinGrabLibrary")

dim WinGrabGrabControl
set WinGrabGrabControl = WinGrabLibrary.StartMuxGrab("192.168.0.4", 1535, 1536, "test.m2p", 10)

Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Popup "Aufnahme beenden"
Ich hoffe, ich habe nichts außer der IP und eventuell den PID's in den Scripten verändert.

MfG
C2k
MacGyver
Interessierter
Interessierter
Beiträge: 31
Registriert: Donnerstag 12. September 2002, 09:29

Beitrag von MacGyver »

Das hilft mir leider nicht weiter. Die Funktionalität der hier gezeigten Skripte habe ich bereits selbst hingepfuscht.
Mich interessiert vor allem die Funktionsweise vom Callback und die Implementierung desselben und die bedeutung der beiden Parameter false, false aus dem ersten Skript von C2k. Was bedeuten die und was verändert sich wenn ich beide oder eins oder das andere ( :D ) auf true setze
Elminster
Senior Member
Beiträge: 147
Registriert: Freitag 3. August 2001, 00:00

Beitrag von Elminster »

MacGyver hat geschrieben:Das hilft mir leider nicht weiter. Die Funktionalität der hier gezeigten Skripte habe ich bereits selbst hingepfuscht.
Mich interessiert vor allem die Funktionsweise vom Callback und die Implementierung desselben und die bedeutung der beiden Parameter false, false aus dem ersten Skript von C2k. Was bedeuten die und was verändert sich wenn ich beide oder eins oder das andere ( :D ) auf true setze
sämtliche parameter finden sich auch in der GUI von WinGrab wieder. Ausser in sehr speziellen fällen solltest du für die strippesheader immer false übergeben. Das ist nur für pure audio aufnahmen gedacht, so das der fertige stream direkt eine .mp2 datei ohne zusätzliche header ist (knackst sonst bei wiedergabe mit winamp)

Der callback ist, wie der name schon sagt, ein callback :lol:
soll heißen: Du must selber dieses interface implementieren und eine instanz des interfaces beim startmux aufruf übergeben. Die WinGrabEngine wird dann nach bedarf die methoden des von dir implementierten interfaces aufrufen. Vorsicht: der Callback erfolgt evtl. im context eines anderen threads.

Zu den verschiedenen interfaces:
WinGrabLibrary ist das erste interface das du erzeugen solltest.
Die funktionen dieses interfaces erlauben dir einen neuen Vorgang (grab, mux, ...) zu starten. Als ergebnis bekommst du ein WinGrabControl interface zurück.

So lange du eine Referenz auf dieses interface hast (s. AddRef u. Release) und nicht Stop aufgerufen hast läuft der vorgang. Mittels dieses interfaces kannst du ausserdem einen WinGrabReader erzeugen. Dies gibt dir direkten gebufferten Zugriff auf den outputstream des muxers (du kannst also z.b. als outputfilename einen leerstring angeben und mittels des WinGrabReader interfaces den outputstream direkt in einen directshow filtergraph zur anzeige schicken ohne das der stream auf die platte geschrieben wird)
MacGyver hat geschrieben:PS: Ich habe gesehen dass einige Internetseiten auf deinen Homeip-Server verweisen. Dort sollen auch Skripte liegen. Nur leider bekomme ich nie eine Verbindung per FTP. Deshalb schreibe ich hier auch.
Mein problem ist:
Ich bin jetzt für 4 Jahre in Australien (Brisbane falls es irgendjemand interresiert). zZt hab ich hier eine Modemverbindung mit berauschenden 56kbit (max, wenn die sonne richtig steht und nicht zuviel wind geht :D )
und einem monatlichen limit von 300/MB bevor ich 20cent/MB zahle. ergo ist mein ftp natürlich nicht online. Ich hoffe jedoch das sich dies in nächster zeit ändert...