MXF

=MXF (Material Exchange Format)=

Bandbasierte und dateibasierte Workflows
Eine Vielzahl von verschiedenen Formaten beeinträchtigt die Zusammenarbeit von Medienschaffenden und führt zu unnötigen Reibungsverlusten.
 * Bei __bandbasierten Workflows__ setzte sich einst das __Digibeta-Format__ als meistgenutztes Speichermedium durch.
 * Für __filebasierte Workflows__ (NLE etc.) benötigte man u.a. für den Austausch von Daten ein geeignetes Dateiformat. Eine Anlieferung von Material in beliebigen Formaten ist grundsätzlich unerwünscht, da das Material in solchen Fällen noch nachbearbeitet werden muss, bevor mit der eigentlichen Arbeit begonnen werden kann.

Die Entwicklung des MXF
Das MXF-Containerformat wurde von SMPTE, EBU und der AAF-Association entwickelt zur Effizienzsteigerung beim Medienaustausch in der IT-basierten Fernsehproduktion. Das Format geniest breite Unterstützung, u.a. von EBU, IRT, Pro-MPEG und einigen großen Herstellern (SONY, Panasonic). Das MXF ist seit 2003 eine Norm mit der Bezeichnung SMPTE 377M. Die Endung der Dateinamen lautet „.mxf“. Das Format soll den Medienaustausch (Video- und Audiodaten) zwischen den verschiedenen Systemen in der IT-basierten Fernsehproduktion vereinfachen. U.a. die Firmen Sony (IMX, XDCAM) und Panasonic (DVCPro) favorisieren das Format und sorgen damit für eine große Verbreitung.

Was kann das MXF?
> Dieses führt beim Austausch von MXF-Dateien hin und wieder zu Problemen. Ob zum Lesen der Daten fehlende oder veraltete Codecs durch neue ersetzt werden können und auf Ihrem System nachinstalliert werden können, hängt von der Qualität des Supports für die bereits installierte Software ab.
 * Das audiovisuelle Material wird idealerweise zusammen mit Metadaten in den MXF-Containern gespeichert, so daß weitere Begleitinformationen (MAZ-Karte etc.) überflüssig werden.
 * Es können in den MXF-Dateien von verschiedenen Codecs erzeugte Daten gespeichert werden.

Es gibt grundsätzlich zwei Arten von MXF-Dateien!
> Metadaten werden zusammen mit Mediendaten (Video und Audio) in einer Datei gespeichert. > Die MXF-Datei besteht im Wesentlichen aus Metadaten. Die Mediendaten werden separat gespeichert.
 * 1) Internal essence:
 * 1) External essence:

Wofür wird das MXF genutzt?
Das MXF-Containerformat hat sich inzwischen in bandlosen Produktionsabläufen etabliert (u.a. durch starken Support von Sony und Panasonic) und wird auch gerne zum Zweck der Ablage von Mediendateien in digitalen Archiven genutzt.

Zur Beachtung
Bei der Nutzung von MXF gibt es einiges zu beachten.
 * Auch wenn viele Programme MXF nutzen, so bedeutet dieses nicht automatisch, dass MXF-Container problemlos zwischen den Programmen ausgetauscht werden können! Dieses Problem ergibt sich zwangsläufig aus der Flexibilität des Formats.
 * So genannte Operational Patterns stehen zur Verfügung, um die Wahlmöglichkeiten bzgl. der Inhalte von MXF-Dateien einzuschränken.
 * Um einen problemlosen Workflow zu ermöglichen, ist die Festlegung auf ein Operational Pattern unbedingt erforderlich, da nur so Inkompatibilitäten zwischen den Formaten vermieden werden können.
 * Also bitte nicht die erforderliche Auswahl beim Abspeichern einfach wegklicken und erwarten, dass die aktuellen Einstellungen immer die richtigen sind. Erst einmal die hiermit vertrauten Kollegen nach der festgelegten Einstellung befragen!

Operational Patterns (vorwiegend verwendete Codecs)
Auf folgender Seite finden Sie eine Reihe von Beispielen, welche Inhalte in MXF-Containern enthalten sein können:
 * @http://opencubetech.com/page47/

Struktur von MXF-Dateien
(Original PDF by Advanced Media Workflow Association) MXF-Dateien enthalten genau einen Header, minimal 0 Bodys sowie 0 bzw. einen Footer. Header und Body können Mediendaten enthalten. Im Footer gibt es nur Metadaten. Die einfachste MXF-Datei ist klein und enthält nur einen Header mit Mediendaten. Im Footer befindet sich häufig eine Kopie der Headerdaten. Dieses macht z.B. Sinn, wenn bei der Aufnahme unklar ist, wie lange die Aufnahme dauert. Die Dauer der Aufzeichnung kann so bei Abschluss der Aufnahme einfach an die Footerdaten angefügt werden - im Gegensatz zum komplizierten Vorgang des Kopierens der gesamten Datei, um ein paar Bytes dem Header hinzuzufügen! Die Struktur eines Formats kann sowohl physikalisch als auch logisch beschrieben werden:

Logische Sicht
Welche Informationen finde ich in der Datei in welcher Reihenfolge und wie gehören sie zusammen? Diese Informationen sind nützlich für Nutzer dieser Dateien, z.B. zur Beurteilung der Leistungsfähigkeit des Formats.

Physikalische Sicht
An welcher Position in der Datei steht welches Byte und warum? Diese Informationen werden z.B. vom Programmierer benötigt oder von Nutzern, welche Probleme mit MXF-Dateien haben und diese analysieren möchten.

KLV (Key, Length, Value)
Zum tieferen Verständnis der logischen und der physikalischen Sicht ist die Kenntnis des Key-Length-Value-Verfahren notwendig. Alle Inhalte einer MXF-Datei werden in sogenannten KLV-Triplets paketiert abgespeichert. Das Kürzel KLV steht hierbei für Key, Length, Value; die drei Werte für den Schlüssel, die Länge der Daten und die Daten selbst bilden zusammen das Triplet. Eine MXF-Datei besteht aus einer Sammlung von Triplets. Alle KLV-Triplets enthalten Schlüssel, welche vom Decoder entsprechenden Inhalten zugeordnet werden können. Kennt der Decoder einen Schlüssel nicht, so besteht für den Decoder die Möglichkeit, einfach mit dem nächstfolgenden identifizierbaren Triplet fortzufahren, anstatt sofort abzubrechen mit einer Meldung wie „Verarbeitung wird abgebrochen aufgrund eines unbekannten Fehlers“.

Datei Partitionierung
Mediendateien können extrem groß werden. Ein Einlesen großer Dateien in einem Stück wird bereits durch den Speicherausbau einer Workstation beschränkt und kostet spürbar Zeit. Daher ist es sinnvoll, eine große Datei für die Verarbeitung im Computer in viele kleinere Stücke (Partitionen) zu zerteilen. Dieses ist eine gängige Methode, um das beschriebene Problem in den Griff zu bekommen. Das Aufteilen von Medien-Dateien in kleinere Stücke wird auch für das Streamen benötigt, da ein Medien-Server nach Möglichkeit immer nur die Daten zeitnah an einen Client übertragen sollte, die aktuell gerade benötigt werden um z.B. das Netz nicht unnötig zu belasten.

Operational Pattern (OP) - WICHTIG!!!
Die Flexibilität von MXF ist zugleich auch der Fluch dieses Containerformats. Die Standardisierung von MXF beschränkt sich erst einmal darauf, __wie__ man Inhalte geschickt verpackt. So können MXF-Dateien eigentlich beliebige Daten enthalten. Fast könnte man daher behaupten, es gäbe viele MXF-Standards. Die Frage, __was__ man eigentlich verpacken möchte, wird erst an zweiter Stelle geklärt. Hierzu dienen die so genannten Operational Patterns. Die genauen Bezeichnungen lauten z.B. OP1/SMPTE 378M oder OP-Atom/SMPTE 390M. OPs klären darüber auf, welche Inhalte man in der jeweiligen MXF-Datei erwarten darf und wie sie verpackt wurden (z.B. internal oder external essence). Nur durch Angabe der OPs wird es überhaupt erst möglich, MXF-Dateien problemlos miteinander auszutauschen. Werden MXF-Dateien entsprechend vorgegebener OPs geschrieben, so bedeutet dieses, dass man bewusst die Flexibilität von MXF einschränkt, damit der Austausch der Dateien zwischen verschiedenen Programmen funktionieren kann. Wenn Sie mit MXF zu tun haben, so sollten Sie unbedingt darauf achten, dass Ihre Programme jeweils die gleichen OPs unterstützen! Wenn Sie hier nicht aufpassen, wird das angestrebte Ziel des problemlosen Datenaustauschs nicht erreicht. Stattdessen wird die Arbeit erschwert und ein unübersichtliches Datenchaos entsteht – abhängig davon, wie mit den jeweils lesbaren Teildaten der MXF-Datei von Ihrer Software umgegangen wird. ARD und ZDF arbeiten seit Jahren daran, funktionierende Vorgaben zu erarbeiten, die den problemlosen Austausch von MXF-Dateien gewährleisten, siehe ...
 * @http://mxf.irt.de/mxfprofiles/workingprofiles/index.php

Die Rolle des Instituts für Rundfunktechnik (IRT)/ Selbstdarstellung
//… Das IRT war und ist aktiv an der Standardisierung von MXF beteiligt und hat dabei in besonderem Maße die Anforderungen der EBU an dieses Format berücksichtigt. So haben unsere Mitarbeiter in enger Zusammenarbeit mit der Firma MOG Solutions das MXF Software Development Kit (SDK) entwickelt. Auf der Grundlage des SDK sind im Rahmen des MXF Test Centers Werkzeuge entstanden, mit denen MXF Dateien erzeugt und analysiert werden können (MXF Generator und MXF Analyser). Der MXF Analyser ist in der „Professional" Version als DLL erhältlich und kann in IT-basierte Produktionsstrukturen einfach integriert werden. ...//

Darüber hinaus bietet das IRT für Hersteller und Anwender MXF-File-, MXF-Encoder-, MXF-Decoder- sowie MXF-Produkt-Tests an. Diese Tests überprüfen die Standardkonformität von MXF-Implementierungen und helfen somit, die Interoperabilität zwischen verschiedenen Produkten sicherzustellen. Weiterhin berät das IRT die Rundfunkanstalten bei der Einführung von MXF in die IT-basierte Fernsehproduktion, in den Programmaustausch und in die Archivierung.

=Aufgaben=

Aufgabe 1) Grundverständnis erarbeiten

 * Bitte beantworten Sie die folgenden Fragen!**
 * 1) Was ist die Grundidee des Material Exchange Formats?
 * 2) Wer entwickelte das Format?
 * 3) Worum handelt es sich beim MXF?
 * Ein weiteres Containerformat?
 * Eine Datei, mehrere Dateien?
 * Dateierweiterung? Endung?
 * Was unterscheidet MXF von anderen Formaten?
 * Was „steckt drin“? Codec? Standard?
 * Welchen zusätzlichen Nutzen hat das Format?
 * Welche Vorteile? Welche Nachteile?
 * Was sind „operational pattern“?
 * Was bedeutet „essence“?
 * 1) Wer nutzt das MXF Format? Wer nicht? Warum?
 * Aufzeichnungsformat?
 * Post-Production?
 * Archivierung?
 * Bereitstellung von Produktionen auf Servern?
 * 1) Welche Probleme kann es bei der Nutzung des Formats geben und wie sind diese Probleme ggf. zu beheben?
 * Probleme ...
 * der Software-Hersteller
 * der Hardware-Hersteller
 * der Anwender
 * in der Produktion
 * in der Archivierung
 * 1) Welche Programme unterstützen das MXF?
 * 1) Welche Programme unterstützen das MXF?

Aufgabe 2) Erfahrungen aus der Praxis
Berichten Sie über Ihre Erfahrungen im Umgang mit dem MXF-Format!
 * Nutzen Sie MXF?
 * Welche Operational Pattern werden eingesetzt?
 * Verwenden Sie das MXF-Format mit internal oder external essence? Verwenden Sie beide Varianten?
 * In welchen Schritten im Workflow ist die Verwendung von internal bzw. external essence zu bevorzugen?
 * Von welchen Vereinfachungen bzw. Effizienzsteigerungen können Sie berichten? Welche Probleme gab es?

a) Hausaufgabe:
Bringen Sie in Erfahrung, welche Ihrer Programme im Betrieb MXF-Dateien lesen oder schreiben und welche Operational Pattern diese Programme einsetzen! Bringen Sie 3 kleine MXF-Container mit verschiedenen Inhalten in die Schule mit und stellen Sie diese in den Tauschordner!

b) Analyse
Nutzen Sie den MXF-Analyser des IRT (oder einen anderen, z.B. Mediainfo) zur detaillierten Untersuchung der gesammelten MXF-Dateien und beschreiben Sie diese mit dem erlernten Fachvokabular. Geben Sie bitte die schriftliche Analyse mindestens einer Datei beim Lehrer ab. Eine hochwertigere Lösung enthält die Gegenüberstellung von zwei verschiedenartigen MXF-Containern.

Bewertung als Mitarbeit im Unterricht wie folgt:
Infos: Nur für Software-Freaks geeignet:
 * +++ (sehr gute - sehr gute Lösung)
 * ++ (vollständig und o.k.)
 * + (unvollständig, kleine Fehler)
 * 0 (nicht abgegeben bzw. völlig fehlerhaft)
 * - (nicht anwesend, nicht nachgeliefert)
 * -- stört im Unterricht anstatt sich um die Lösung der gestellten Aufgabe zu bemühen
 * @http://mxf.irt.de/tools/analyzer/
 * @http://www.youtube.com/watch?v=r9W16TzpDFE
 * @http://opencubetech.com/page47/
 * @http://www.cube-tec.com/de/news/highlights/reviews/527-error-analysis-of-mxf-files
 * @http://www.freemxf.org/
 * @http://www.chip.de/downloads/MediaInfo_13014029.html
 * @http://www.freemxf.org/mxfwrap/
 * @http://sourceforge.net/projects/mxftest/
 * @http://www.bbc.co.uk/opensource/projects/mxf/

Aufgabe 4) Alternativen
Welche Alternativen gibt es heute zur Verwendung von MXF?
 * Welche anderen Containerformate könnten MXF gefährlich werden?
 * beim Dreh?
 * im Schnitt?
 * in der Archivierung?
 * Mit welchen Einschränkungen gegenüber MXF müssen wir im Falle der Nutzung der von Ihnen benannten Alternativen leben?
 * Sind verlustbehaftete Transkodierungen (Formatwandlungen) bei der Nutzung der Alternativen zu erwarten?
 * Sind verlustbehaftete Transkodierungen (Formatwandlungen) bei der Nutzung der Alternativen zu erwarten?

=Links= Wikipedia, u. a. Auflistung von Software - @http://de.wikipedia.org/wiki/Material_Exchange_Format AMWA White Papers - @http://www.amwa.tv/resources/white_papers.shtml MXF Examples - @http://opencubetech.com/page47/ IRT Test Center - @http://mxf.irt.de/ MXF lib - @http://sourceforge.net/projects/mxflib/ MXF SDK - @https://github.com/Limecraft/ebu-mxfsdk