|
DMXS - DMX512 Streamingformat
Format-Version: v0.3beta vom 25.01.2011
Um DMX-Daten direkt ohne eine aufwändige Software abrufen zu können, ist ein neues Stream-Format in Planung: DMXS. Das DMX512-Streamingformat soll ähnlich der MP3-Datei in der Lage sein, DMX-Daten komfortabel in einen Datenstrom zu packen und z.B. mit einem DMXS-Player einfach abspielbar sein. Man kann z.B. parallel eine Audiodatei laden und somit mit einem schlanken Player eine Lichtshow abfahren, ohne eine komplexe Lichtsoftware zu verwenden, da der DMX-Datenstrom zuvor mit so einer Software oder einem externen Lichtpult bereits erzeugt wurde.
Die grobe Datenstruktur sieht einen 32-Bit Header, eine optionale 16-Bit-CRC-Fehlerkorrektur, einen 64-Bit-Timecode und ein Datenpaket aus den DMX512-Daten selbst vor. Dabei werden der Header, der Timecode und die optionalen CRC-Daten jedes mal vor die DMX-Daten vorangestellt, sodass man jederzeit auch ohne den Dateianfang zu haben in der Datei herumscrollen kann (ähnlich der MP3).

DMXS-Header im Einzelnen:
| Position |
Aufgabe / Beschreibung |
Länge in Bit |
| A |
Frame-Sync (alle Bits auf 1) |
11 |
| B |
Framerate 0=50Hz/20ms 1=10Hz/100ms 2=5Hz/200ms 3=bad
|
2 |
| C |
Frame-Typ 0=Variable Kanalanzahl (nur Kanalwertänderungen) 1=Konstante Kanalanzahl (komplettes Universe) |
1 |
| D |
Protection 0=Aus 1=16-Bit CRC-Checksumme nach Header
|
1 |
| E |
Timecode 0=Aus 1=Ein |
1 |
| F |
Kanalanzahl im DMX512-Paket |
16 |
|
nachfolgende Daten gehören nicht mehr direkt zum Header:
|
|
| (G) |
CRC-Daten, sofern CRC-Bit gesetzt |
16 |
| (H) |
Timecode-Daten, sofern Timecode-Bit gesetzt |
64 |
Da das DMXS-Format eine variable Kanalzahl unterstützt, werden in diesem Modus dementsprechend lediglich die Kanalwertänderungen abgespeichert. Ändert sich also z.B. kein Kanalwert, werden auch keine Daten außer dem DMXS-Header gespeichert. Somit könnte man ohne den Stream-Anfang nichts mehr mit dem DMXS-Datenstrom anfangen. Aus diesem Grund werden in regelmäßigen Abstände sogenannte Key-Frames (Frametyp=1) eingefügt, die das gesamte Universe beinhalten. Dieses Prinzip findet in ähnlichem Maße bei der MPEG2-Komprimierung Anwendung und erlaubt eine sichere und zugleich ressourcensparende Speichermethode für einen Datenstrom. Dies erlaubt sogar das einfache Trennen und Zusammenfügen von DMXS-Dateien, wie bei einer Audiodatei.
Das Keyframe-Intervall wird beim Encodieren des Streams verstellbar sein, sodass man auch hier Optimierungen entsprechend der DMX-Daten vornehmen kann (z.B. bei extrem langsamen Fades entsprechend ein weites Keyframe-Intervall). In der Regel sollte ein Keyframe-Intervall alle 25 Frames ausreichen. Dies entspricht einer Zeit von 0,5s zwischen zwei Keyframes.
ID-Tag am Anfang des Datenstroms:
| Position |
Aufgabe / Beschreibung |
Länge in Byte |
| A |
ID-Tag identifikation (Muss "TAG" beinhalten, sofern vorhanden) |
3 |
| B |
Titel |
30 |
| C |
Projektname |
30 |
| D |
Beschreibung |
30 |
| E |
Jahr |
4 |
| F |
Kommentar |
30 |
| G |
Zukünftige Verwendung |
1 |
Die grafische Darstellung des DMXS-Headers sieht wie folgt aus:

Informationen über Datenmenge und Speicherbedarf:
Abschätzung der Datenrate/s als PDF
Entwicklungsplanung in Bezug auf DMXS:
Das DMXS-Format ist mittlerweile soweit entwickelt, dass ein stabiler Encoder und Decoder programmiert wurde. Es wird nun ein Programmierer gesucht, der die vorhandene Arbeit aufnimmt und ein Plugin für den PC_DIMMER Programmiert, welches umfangreiche Schnittfunktionen und evtl. sogar Abspielfunktionen übernimmt. Ein Programmteil zum Aufzeichnen von DMX-Streams wäre schnell eingebaut.
|