The development of virtPresenter Software has stopped! We are concentrating our resources on Opencast Matterhorn Projekt here you can finde many experiences we made by deveolpint virtPresenter.


 

Protokoll des Videorekorder Services

Um zukünftige Erweiterungen zu erleichtern, wurde das Protokoll zur Kommunikation mit dem Videoserver etwas formalisierter gefaßt. Diese Übersicht beschreibt die Protokollversion 0. Der Client sollte nach dem Verbindungsaufbau prüfen, daß der Server die geforderte Protokollversion unterstützt.

Die Kommunikation beginnt durch Aufbau einer TCP Verbindung zum Port 2222 und besteht aus der Übermittlung von Befehlszeilen durch den Client und dem Senden von Antwortzeilen durch den Server. Eine solche Zeile besteht nur aus ASCII-Zeichen und wird mit CRLF abgeschlossen. Die möglichen Befehlszeilen sind weiter unten aufgelistet, die Antwortzeilen besitzen immer die Form:

  <status> <text>

Die Statuscodes haben dabei allgemein die Bedeutung:

  • 2xx request executed without error
  • 4xx possibly temporary error occured
  • 5xx permanent error occured

Direkt nach dem Aufbau der Verbindung schickt der Server eine Statusmeldung der Form:

  220 <protokollversion> <infotext>

Anschließend können die folgenden Befehle an den Server gegeben werden:

 auth <passwort>

Meldet den Benutzer mit dem angegebenen Paßwort am Server an. Das Paßwort darf keine Leerzeichen oder sonstigen Zwischenraum enthalten. Erst nach diesem Anmeldevorgang können die anderen Befehle (mit Ausnahme von quit) gegeben werden.

Zulässige Antworten des Servers:

  200 ok
  500 syntax error
  501 password incorrect

 record <dateiname> <dauer>

Beginnt die Aufnahme in die Datei <dateiname>.mpg, falls möglich (eine vorhandene Datei wird dabei überschrieben). Der Dateiname darf keine Leerzeichen oder sonstigen Zwischenraum enthalten. Als Resultat wird eine Abschätzung der verbleibenden Zeit (in Sekunden) geliefert, die bei der eingestellten Bitrate noch auf das Aufnahmemedium passen würde. Falls bereits eine Aufnahme läuft, wird ein 403 Fehler gemeldet. Die Aufnahme endet automatisch nach der angegebenen Zeit (in Sekunden), anschließend wird noch eine Benachrichtigung über die Aufnahme an den Schnittrechner übermittelt. Es ist kein Fehler, wenn die Aufnahmedauer die noch verfügbare Zeit überschreitet.

Zulässige Antworten des Servers:

  201 <anzahl> seconds
  401 <fehlertext>
  403 recording
  404 interrupted
  500 syntax error
  501 not logged in

 start <dateiname> [<maximaldauer>]

Beginnt die Aufnahme in die Datei <dateiname>.mpg, falls möglich (eine vorhandene Datei wird dabei überschrieben). Der Dateiname darf keine Leerzeichen oder sonstigen Zwischenraum enthalten. Als Resultat wird eine Abschätzung der verbleibenden Zeit (in Sekunden) geliefert, die bei der eingestellten Bitrate noch auf das Aufnahmemedium passen würde. Falls bereits eine Aufnahme läuft, wird ein 403 Fehler gemeldet. Wird eine maximale Aufnahmedauer (in Sekunden) angegeben, so endet die Aufnahme automatisch spätenstens nach der vorgegebenen Zeit, der Aufnahmevorgang wechselt dann in den Zustand interrupted. Es ist kein Fehler, wenn die maximale Aufnahmedauer die noch verfügbare Zeit überschreitet. Ein Wert von 0 bedeutet hierbei "keine maximale Aufnahmedauer".

Zulässige Antworten des Servers:

  201 <anzahl> seconds
  401 <fehlertext>
  403 recording
  404 interrupted
  500 syntax error
  501 not logged in

 vgarec <dateiname> [<maximaldauer>]

Beginnt die Aufnahme des Bildschirmbildes eines angeschlossenen Rechners über ein Caputuredevice in die Datei <dateiname>-vga.avi, falls möglich (eine vorhandene Datei wird dabei überschrieben). Der Dateiname darf keine Leerzeichen oder sonstigen Zwischenraum enthalten. Als Resultat wird eine Abschätzung der verbleibenden Zeit (in Sekunden) geliefert, die bei der eingestellten Bitrate noch auf das Aufnahmemedium passen würde. Die Zeit ist geschätzt für den Fall das auch parallel eine Videoaufzeichnung läuft. Falls bereits eine Aufnahme läuft, wird ein 403 Fehler gemeldet. Wird eine maximale Aufnahmedauer (in Sekunden) angegeben, so endet die Aufnahme automatisch spätenstens nach der vorgegebenen Zeit, der Aufnahmevorgang wechselt dann in den Zustand interrupted. Es ist kein Fehler, wenn die maximale Aufnahmedauer die noch verfügbare Zeit überschreitet. Ein Wert von 0 bedeutet hierbei "keine maximale Aufnahmedauer".

Zulässige Antworten des Servers:

  201 <anzahl> seconds
  401 <fehlertext>
  403 recording
  404 interrupted
  500 syntax error
  501 not logged in


 vncrec <dateiname> <VNC-Server URL> <VNC-Server Passwort> [<maximaldauer>]

Beginnt die Aufnahme des Bildschirmbildes des angegebenen VNC-Servers im Flash-Format über ein pyvnc2swf in die Datei <dateiname>-vnc.swf, falls möglich (eine vorhandene Datei wird dabei überschrieben). Der Dateiname darf keine Leerzeichen oder sonstigen Zwischenraum enthalten. Als Resultat wird eine Abschätzung der verbleibenden Zeit (in Sekunden) geliefert, die bei der eingestellten Bitrate noch auf das Aufnahmemedium passen würde. Die Zeit ist geschätzt für den Fall das auch parallel eine Videoaufzeichnung läuft. Falls bereits eine Aufnahme läuft, wird ein 403 Fehler gemeldet. Wird eine maximale Aufnahmedauer (in Sekunden) angegeben, so endet die Aufnahme automatisch spätenstens nach der vorgegebenen Zeit, der Aufnahmevorgang wechselt dann in den Zustand interrupted. Es ist kein Fehler, wenn die maximale Aufnahmedauer die noch verfügbare Zeit überschreitet. Ein Wert von 0 bedeutet hierbei "keine maximale Aufnahmedauer".

Zulässige Antworten des Servers:

  201 <anzahl> seconds
  401 <fehlertext>
  403 recording
  404 interrupted
  500 syntax error
  501 not logged in


 stop

Beendet eine laufende Aufnahme. Ein stop Kommando ohne laufende Aufnahme hat keinen Effekt (und ist kein Fehler).

Zulässige Antworten des Servers:

  200 ok
  401 <fehlertext>
  501 not logged in


 timer <Laufzeit in Sekunden>

Beendet alle laufenden Aufzeichnungen zur selben Zeit, ob nun VNC, VGA oder Video. Hat den Vorteil das im Gegensatz zum einzelnen Timer beim start, vncrec oder vgarec die ganzen Aufzeichnungen den selben Endpunkt haben.

Zulässige Antworten des Servers:

  200 ok
  401 <fehlertext>
  501 not logged in

 status

Liefert den aktuellen Status (Aufnahme/keine Aufnahme) zurück.

Zulässige Antworten des Servers:

  202 idle
  203 recording video
  204 interrupted
  205 recording vnc and video
  206 recording vnc
  207 recording vnc and video
  208 recording vnc and vga
  209 recording vga, vnc and video
  210 recording vnc
  501 not logged in

 avail

Liefert eine Abschätzung der verbleibenden Zeit (in Sekunden), die bei der eingestellten Bitrate noch auf das Aufnahmemedium passen würde. Dieser Befehl kann auch ohne laufende Aufnahme gegeben werden.

Zulässige Antworten des Servers:

  201 <anzahl> seconds
  401 <fehlertext>
  501 not logged in


 videoduration <dateiname>

Liefert die Länge des Videos einer Videodatei auf dem Server. Der Dateiname muss die Endung enthalten

Zulässige Antworten des Servers:

  201 <Zeit in 00:00:00.0>
  401 file not found
  500 syntax error
  501 not logged in

 quit

Beendet die Verbindung zum Server.

Zulässige Antworten des Servers:

  221 close

Nicht erkannte Befehle werden mit einem 500 Fehler beantwortet. Der Abbruch der Verbindung zum Server kann durch ein quit Kommando oder das Schließen der TCP Verbindung erfolgen.