Wikipedia:WikiTV/Schnittserver/Spezifikation

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
Hauptseite   Mitmachen   Themen   Workshops   Wettbewerb   Nachhaltigkeit   Abschlussevent   FAQ

Stand: 10.10.2014

Das Centre for Digital Cultures[Quelltext bearbeiten]

Das Centre for Digital Cultures (CDC) der Leuphana Universität Lüneburg bündelt Forschungsprojekte aus den Medien-, Kultur- und Sozialwissenschaften. Die Forschung des CDC ist in regionalen, nationalen und internationalen Kontexten angesiedelt und überschreitet die Grenzen zwischen Wissenschaft, Akademie, Kunst, Industrie, Aktivismus und Zivilgesellschaft. Eines der aktuellen Projekte des CDC ist „Videos für Wikipedia-Artikel“ (VWA).

Das Projekt „Videos für Wikipedia-Artikel“[Quelltext bearbeiten]

Eine der wichtigsten Wissensressourcen im Internet und die erste Adresse für viele Recherchen ist die Wikipedia. Ein mächtiges und populäres Medienformat für die Wissensvermittlung ist Bewegtbild. Die Möglichkeiten, sich in Video auszudrücken, sind heute fast so weit verbreitet wie in Text. Dennoch gibt es in der Wikipedia fast keine Videos und selbst im benachbarten Medien-Repositorium Wikimedia Commons nicht so viele, wie man erwarten würde. In der Wikipedia-Community gibt es den erklärten Wunsch und verschiedene Initiativen, dies zu ändern.

Das Projekt Videos für Wikipedia-Artikel (VWA) möchte dazu beitragen, indem es Wikipedia-Artikel aus dem Themenfeld digitale Gesellschaft durch audiovisuelle Wissensvermittlung reicher macht, das Wissen um die Erstellung von Videos vermittelt und damit Menschen für das Ausdrucksmittel Bewegtbild, für die Wikipedia und für die digitale Gesellschaft begeistert.

Neben einem Wettbewerb und Workshops entwickelt VWA Infrastrukturen, die die Arbeit mit Video erleichtern, darunter Lehr- und Lernmaterialien und der hier ausgeschriebene Videoschnittserver.

Das Projekt VWA wurde initiiert von “Grundversorgung 2.0″ des Centre for Digital Cultures der Leuphana Universität Lüneburg. VWA wird von Wikimedia Deutschland im Rahmen des Förderprogramms Freies Wissen (FFW) unterstützt und im Rahmen des Wissenschaftsjahrs 2014 – Die digitale Gesellschaft vom Bundesministerium für Bildung und Forschung gefördert.

Der Schnittserver[Quelltext bearbeiten]

Die verteilte Videoproduktion hat mit einer Reihe von Engpässen zu kämpfen:

  • Weil alle Online-Video-Formate verlustreiche Komprimierungen verwenden, können einmal veröffentlichte Videos nicht weiter bearbeitet (um sie zu korrigieren oder zu aktualisieren) oder von anderen Benutzern für neue Projekte weiter verwendet werden – außer, es wird dabei ein großer Qualitätsverlust in Kauf genommen. Rohmaterial in Originalqualität zur Weiterverwendung zur Verfügung zu stellen, ist nach wie vor eine sehr seltene und löbliche Ausnahme (siehe etwa Steal this Film). Noch seltener werden die Produktionsdateinen eines veröffentlichten Films unter einer freien Lizenz zur Verfügung gestellt.
Die Möglichkeit der Weiterbearbeitung ist besonders wichtig im Fall einer freien und offenen Enzyklopädie, in der die bereitgestellte Information kontinuierlich von einer Freiwilligen-Community korrigiert, aktualisiert und verbessert werden muss.
  • Wegen der Community-Entscheidung gegen MP4-Unterstützung kann Rohmaterial nicht innerhalb des Wikiversums gespeichert werden. Wikimedia Commons erlaubt das Hochladen von Video-Dateien nur in den patentfreien Formaten WebM/VP8 und Ogg/Theora. Deshalb kann die Archivierung von Rohmaterial derzeit nur dezentral durch die Urheber erfolgen, die entweder ständig ihre Speicherkapazitäten erweitern oder Material löschen müssen.
  • Die große Datenmenge aus üblichen Consumer-Kameras, die in HD oder bald 4K aufnehmen, stellt für verteilt arbeitende freiwillige Videoteams, die diese austauschen müssen, ein Problem dar. Auch bei der Bearbeitung des daten-intensiven Videomaterials kommen handelsübliche PCs, über die viele ehrenamtliche Produzenten verfügen, schnell an ihre Grenzen.
  • Der Upload auf Wikimedia Commons mit regulären Browsern ist auf 100 MB (1 GB mit Chunked Upload) begrenzt, was für die meisten Videos zu wenig ist.

Ein Video-Schnittserver auf Basis der freien, nichtlinearen Video-Bearbeitungs-Software Kdenlive soll einige dieser Probleme lösen oder erleichtern:

  • Rohmaterial wird auf dem Schnittserver archiviert.
  • Produzenten erhalten vom Schnittserver kleinere Proxy-Clips für den Schnitt, die schnell herunterzuladen und auf handelsüblichen PCs leichter zu bearbeiten sind.
  • Nach dem Schnitt laden Produzenten ihre Video-Projektdateien auf den Server hoch, womit diese anderen Produzenten zur Verfügung stehen.
  • Der Server rendert aus den Videodateien und dem dort archivierten Rohmaterial die fertigen Videos in WebM und lädt diese über eine direkte Schnittstelle auf Wikimedia Commons hoch. Damit entfallen für Produzenten sowohl der rechen-intensive Rendering-Prozess als auch das ggf. schwierige Hochladen großer Dateien auf Wikimedia Commons.

Use Cases / Workflow[Quelltext bearbeiten]

Produktion eines Videos[Quelltext bearbeiten]

  1. Dreh.
  2. Die Nutzerin liest die Originaldateien aus der Kamera aus und lädt sie auf den Server hoch. Das Webinterface fragt zu jeder hochgeladenen Datei einige Metadaten ab.
  3. Der Server transkodiert die Dateien in 'Proxy-Dateien'. Diese werden nach Abschluss des Prozesses im Webinterface zum Download angeboten.
  4. Die Nutzerin lädt diese Proxy-Dateien auf ihren Rechner herunter und bearbeitet sie mit Kdenlive (offline). Kdenlive speichert alle Operationen (Schnitt, Überblendungen, Titel, Farb- und Tonkorrekturen usw.) in einer XML-basierten Projektdatei (vgl. Edit Decision List).
  5. Die Nutzerin lädt die Kdenlive-Datei auf den Server. Dieser prüft alle referenzierten Dateien, ersetzt die Proxy-Clips durch die lokal vorhandenen Roh-Dateien. Falls notwendig werden im Webinterface fehlende Ressourcen zum Upload angefordert.
  6. Wenn die Kdenlive-Datei vom Server erfolgreich geprüft und angepasst wurde, wird das Videoprojekt in WebM gerendert. Die Kdenlive-Datei steht, wie die Proxy-Clips, anderen Benutzern zum Download zur Verfügung.
  7. Der Server überträgt das fertige Video schließlich auf Wikimedia Commons, von wo aus es in Wikipedia-Artikel und andere Webseiten eingebunden werden kann.

Nachbearbeitung eines am Videoserver erstellten Videos[Quelltext bearbeiten]

  1. Der Benutzer gibt einen Dateinamen eines Videos auf Wikimedia Commons in das Suchfeld des Schnittservers ein.
  2. Der Schnittserver findet das Videoprojekt anhand der Metadaten (Kdenlive-Dateiname = Dateiname des gerenderten Videos) und zeigt das Projekt mit den entsprechenden Download-Links an:
    • Kdenlive-Datei (Uploader)
    • alle enthaltenen Proxy-Clips (Name, Länge, Metadaten der Rohdatei, Uploader)
    • weitere enthaltene Dateien (ggf. Links zu Wikimedia Commons)
    • Link zum gerenderten Video auf Wikimedia Commons
  3. Der Benutzer lädt sich alle Dateien herunter, speichert sie lokal in einem Projektverzeichnis und bearbeitet das Projekt.
  4. Der Benutzer lädt die geänderte Kdenlive-Datei unter dem alten Namen auf den Schnittserver hoch.
  5. Der Schnittserver legt eine neue Version der Kdenlive-Datei an, die alte Version bleibt erhalten. Er prüft alle referenzierten Dateien, ersetzt die Proxy-Clips durch die lokal vorhandenen Roh-Dateien. Falls notwendig werden im Webinterface fehlende Ressourcen zum Upload angefordert.
  6. Wenn die kdenlive-Datei vom Server erfolgreich geprüft und angepasst wurde, wird das Videoprojekt gerendert.
  7. Der Server überträgt das fertige Video auf Wikimedia Commons, welche ebenfalls die alte Version als frühere Revision behält.

Nachnutzung / Remix[Quelltext bearbeiten]

  1. Eine Benutzerin sucht per Suchformular am Schnittserver nach geeignetem Videomaterial. Sie gibt Suchbegriffe und ggf. auch Dateinamen von auf Wikimedia Commons gefundenen Videos ein.
  2. Der Schnittserver findet verschiedene passende Dateien – Videoprojekte und Proxy-Clips – anhand von Metadaten (Dateiname oder Beschreibung).
  3. Die Benutzerin lädt sich verschiedene Proxy-Clips unterschiedlicher Herkunft und Projekte herunter und generiert daraus lokal ein neues Kdenlive-Projekt.
  4. Nach der Bearbeitung in Kdenlive lädt die Nutzerin die neue Kdenlive-Datei auf den Server hoch. Dieser prüft alle referenzierten Dateien, ersetzt die Proxy-Clips durch die lokal vorhandenen Roh-Dateien. Falls notwendig werden im Webinterface fehlende Ressourcen zum Upload angefordert.
  5. Wenn die kdenlive-Datei vom Server erfolgreich geprüft und angepasst wurde, wird das Videoprojekt gerendert. Die kdenlive-Datei steht, wie die Proxy-Clips, anderen Benutzern zum Download zur Verfügung.
  6. Der Server überträgt das fertige Video schließlich auf Wikimedia Commons, von wo aus es in Wikipedia-Artikel und andere Webseiten eingebunden werden kann.

Ziel ist es, den Schnittserver nach seiner Entwicklung und Erprobung an geeigneter Stelle im Wikipedia-Universum (Wikimedia Commons, Projekt WikiVideo o.ä.) oder außerhalb (im Internet Archive) für die nachhaltige Nutzung und Weiterentwicklung bereit zu stellen. Daher muss die gesamte Lösung als Open Source-Projekt zur Verfügung stehen. Alle von uns vorgegebenen, bereits bestehenden Komponenten stehen unter einer Open Source-Lizenz.

Das System wird in englischer Sprache entwickelt, das Benutzerinterface soll später in TranslateWiki.net in andere Sprachen übersetzt werden.

Aufgabe[Quelltext bearbeiten]

Es wird ein System mit den folgenden Funktionen entwickelt und in einem Git-Repository (Wikimedia Foundation Git oder GitHub) unter der freien Lizenz GPL v3 veröffentlicht. Die Software wird so dokumentiert, dass sie auch von anderen Entwicklern weiterentwickelt und erweitert werden kann. Im Idealfall basiert die Lösung auf dem LAMP-Stack (MySQL, PHP), da auch MediaWiki, die Software-Plattform aller Wikimedia-Projekte, ebenso auf MySQL und PHP aufbaut. Für den Entwicklungsprozess steht eine Virtuelle Maschine auf dem Cluster des Internet Archive zur Verfügung.

Benutzerverwaltung[Quelltext bearbeiten]

Das Hochladen von Rohmaterial und Kdenlive-Dateien ist nur angemeldeten Benutzern möglich. Die Anmeldung am Schnittserver erfolgt per OAuth über die Wikimedia-API (ein Beispiel dafür ist Commons Video Convert von Benutzer:Prolineserver auf Wikimedia Tool Labs). Das Webinterface wird zum Schutz der Zugangsdaten und -Tokens per HTTPS gesichert.

Es sind vier in der Wikipedia übliche Rollen mit ihren Rechten vorzusehen:

  • anonym (nicht angemeldete Benutzer: Suche, Einsehen von Metadaten, Download von Proxy-Clips und Kdenlive-Dateien)
  • Benutzer (angemeldete Benutzer: Upload vom Rohmaterial und Kdenlive-Dateien, Bearbeiten von Metadaten, Transfer des fertigen Videos auf Wikimedia Commons)
  • Administrator (Löschen von Dateien, Sperren der Bearbeitungs- / Upload-Funktion von Benutzern)
  • Bürokrat (Benutzern die Administrator- oder Bürokratenrolle zuordnen oder löschen)

Upload[Quelltext bearbeiten]

Der Upload erfolgt per HTTPS über das Webinterface. Als Vorbild dient der Upload-Mechanismus von Archive.org. Der Uploader:

  • zeigt einen Fortschrittsbalken und die aktuelle Uploadgeschwindigkeit an
  • funktioniert in allen üblichen Browsern (Internet Explorer, Firefox, Chrome, Safari)
  • läuft auf allen Plattformen (Windows, GNU/Linux, MacOSX, iOS, Android)
  • erlaubt das Hochladen der Originaldateien aus der Kamera mit einem Limit gleich oder größer 4 GB
  • ist unterbrechungsresistent (lange Timeouts, Wiederaufnahme von abgebrochenen Uploads binnen einer Stunde)

Der Schnittserver wird auf einer Virtuellen Maschine im Servercluster des Internet Archive entwickelt.

Alle Formate, die FFmpeg verarbeiten kann, sowie Kdenlive-Projektdateien (.kdenlive, XML), sind zulässig. Nach dem Upload überprüft der Server die Dateien mittels FFmpeg oder dem eigenen Kdenlive-Validator auf Kompatibilität. Nicht zulässige Formate werden im Webinterface des Benutzers angezeigt und nach 24 Stunden automatisch gelöscht.

Die neuen Dateien werden in einer Datenbank erfasst und mit Metadaten versehen. Metadaten und Kdenlive-Dateien werden versioniert.

Metadaten[Quelltext bearbeiten]

Vor dem Upload wird der Nutzer gebeten folgende Metadaten zur hochgeladenen Datei zu erfassen. Die Metadaten können später von angemeldeten Benutzern jederzeit geändert werden. Da Änderungen als neue Revision gespeichert werden, können sie nachvollzogen und ggf. rückgängig gemacht werden.

  • Titel (255 Zeichen)
  • Beschreibung (1000 Zeichen)
  • Keywords (idealerweise: Ajax-Suche nach Wikidata-Einträgen in der aktuellen Sprache des Benutzerinterface, gespeichert werden die Q-IDs)
  • Urheber (255 Zeichen, das Feld ist mit dem Anmeldenamen vorbelegt und kann geändert werden)
  • Datum der Aufnahme (Vorbelegung mit Datum aus Metadaten der Rohdatei, sonst Upload-Datum, Javascript Date-Picker)
  • Sprache der Aufnahme (ISO-Codes)
  • Lizenz (voreingestellt ist die in der Wikipedia übliche: Creative Commons Attribution/Share Alike)
  • Weitere Metadaten: Eingabefelder für Key (255 Zeichen) und Value (255 Zeichen), z.B. Wikipedia-Artikel, für die das Video vorgeschlagen wird / Titel des Artikels.

Dateiformat, Dateigröße und Länge (HH:MM:SS / Frames) ermittelt der Server selbstständig und speichert diese ebenfalls ab.

Transkodierer[Quelltext bearbeiten]

Nach erfolgreicher Prüfung des Uploads werden Videodateien in eine Queue gestellt, um in Proxy-Clips transkodiert zu werden.

Der Transkodierer (max. vier gleichzeitige Prozesse, abzgl. Renderingprozesse) wandelt die Rohdateien mittels FFmpeg in Proxy-Clips in niedriger Qualität im Format WebM (VP9, Opus) um. Dabei werden Framerate und Auflösung beibehalten.

Suche[Quelltext bearbeiten]

Auf jeder Seite des Webinterface wird ein Suchformular angezeigt, das in Dateiname, Titel und Beschreibung sucht. Die Suchergebnisseite sowohl für die einfache Suche, als auch für eine Detailsuche zeigt an:

  • Titel (Volltextsuche)
  • Beschreibung (Volltextsuche)
  • Keywords (idealerweise: Eingabe als Ajax-Suche nach Wikidata-Einträgen in der aktuellen Sprache des Benutzerinterface, gesucht wird dann nach den Q-IDs)
  • Urheber (Volltextsuche)
  • Datum der Aufnahme: von – bis (Javascript Date-Picker)
  • Sprache der Aufnahme (ISO-Codes)
  • Lizenz (voreingestellt ist die in der Wikipedia übliche: Creative Commons Attribution/Share Alike)

Die Suchergebnisseite zeigt alle Treffer in einer Liste an, Kdenlive-Dateien (Projekte) und Videodateien werden grafisch unterschieden. Per Klick auf ein Suchergebnis wird die Projekt- / Dateiansicht angezeigt.

Projekt- / Dateiansicht[Quelltext bearbeiten]

Jede Datei wird im Kontext zu zugehörigen Dateien angezeigt. Im Kopf jeder Dateiansicht wird die Metadaten-Tabelle angezeigt. Darunter folgt eine Liste aller verknüpften Dateien:

  • Kdenlive-Projektdatei:
    • Liste aller in der Kdenlive-Datei enthaltenen Ressourcen (s. Validator)
    • Link auf Dateiansicht und Download dieser Dateien vom Schnittserver oder auf die zugehörige Wikimedia Commons-Dateiseite
    • Link auf die gerenderte Video-Datei auf Wikimedia Commons
    • Dowload der Kdenlive-Datei
    • Anzeige der Änderungshistorie / alte Revisionen unter Angabe von Datum, Uhrzeit und Benutzer der Änderung
      • Änderung der Metadaten: Link auf eine Seite welche alte / neue Version gegenüberstellt, unter Angabe von Änderungsdatum und Benutzer
      • Revision der Kdenlive-Datei: Link auf die alte Revision
  • Videodatei:
    • Liste aller Kdenlive-Projektdateien, welche diese Datei verwenden
    • Link auf die Projektansicht der Kdenlive-Dateien
    • Link auf die aus den og. Kdenlive-Dateien gerenderten Video-Dateien auf Wikimedia Commons
    • Download des Proxy-Clips
    • Anzeige der Änderungshistorie / alte Revisionen unter Angabe von Datum, Uhrzeit und Benutzer der Änderung sowie Link auf eine Seite welche alte / neue Version gegenüberstellt, unter Angabe von Änderungsdatum und Benutzer

Benutzerseite[Quelltext bearbeiten]

Jeder Benutzer erhält eine Benutzerseite, die er selbst bearbeiten kann. Dort können 1000 Zeichen in Plain-Text gespeichert werden. Auf der Benutzerseite befindet sich außerdem eine Liste der letzten 50 Bearbeitungen in chronologisch absteigender Reihenfolge. Die betreffenden Projekt-/Dateiansichten werden verlinkt. Diese Benutzerseite wird überall, wo Benutzernamen ausgegeben werden, verlinkt.

Einem eingeloggten Benutzer wird auf jeder Seite des Webinterface ein Link auf seine Benutzerseite sowie zum Ausloggen angezeigt.

Letzte Änderungen[Quelltext bearbeiten]

Auf jeder Seite des Webinterface befindet sich ein Link zu den „Letzten Änderungen“, die eine Liste der letzten 100 Änderungen und Uploads in chronologisch absteigender Reihenfolge anzeigt. Die betreffenden Projekt-/Dateiansichten werden verlinkt.

Kdenlive-Validator[Quelltext bearbeiten]

Kdenlive-Validator sorgt dafür, dass neu hochgeladene Kdenlive-Projektdateien auf dem Server gerendert werden können. Dafür sind folgende Abklärungen und Anpassungen der Kdenlive-Datei notwendig:

  • Erfassung aller verlinkten / referenzierten Dateien (Videodateien, Titel-Bilder, Audiodateien etc.) und Ablage der Referenzen in der Datenbank (für Projekt-/Dateiansicht)
  • Prüfung, ob referenzierte Dateien auf dem Schnittserver (Proxy-Clips, Rohmaterial) oder auf Wikimedia Commons gefunden werden können
    • Proxy-Clips durch Pfad auf Rohmaterial ersetzen
    • Dateien von Wikimedia Commons temporär bereitstellen, Pfad in Kdenlive-Datei anpassen
  • bei fehlenden Dateien Fehlermeldung ausgeben
  • wenn alle Dateien vorhanden sind, Projekt in Render-Queue einstellen

Renderer[Quelltext bearbeiten]

Der Renderer generiert aus den validierten Kdenlive-Dateien unter Verwendung der Rohdateien die fertigen Video-Dateien für Wikimedia Commons.

Für das Rendern steht das MLT-Framework, eine eigenständigen Kommandozeilen-Anwendung aus dem Kdenlive-Paket, zur Verfügung. MLT verwendet zum Rendern ebenfalls FFmpeg.

Es laufen, abzüglich der Transkodier-Prozesse, maximal vier Render-Prozesse auf dem Server. Zielformat ist WebM VP8/VP9/Opus. Bitrate / Framerate orientieren sich am Rohmaterial höchste Qualitätsstufe des Ausgangsmaterials. Geeignete Profile können dem Firefogg-Konverter entnommen werden.

Eine Vorschaufunktion erlaubt es, die fertige WebM-Datei zu sichten, bevor sie auf Wikimedia Commons übertragen wird. Die Übertragung erfolgt per Cross-Site Upload: Der Schnittserver übergibt einen HTTPS-URL des fertigen Videos sowie der Metadaten per MediaWiki-API an Wikimedia Commons, Wikimedia Commons lädt die Datei vom Schnittserver herunter und importiert sie. Für die Metadaten gelten die Vorgaben des Wikimedia Commons Uploaders.

Wenn technisch möglich sollte der Upload / Crossload mit dem Benutzeraccount des per Oauth angemeldeten Wikimedia-Benutzers erfolgen, so dass der Upload auf Wikimedia-Commons dem richtigen Benutzerkonto zugeordnet ist (s. nochmals Commons Video Convert von Benutzer:Prolineserver auf Wikimedia Tool Labs).

Weitere Informationen[Quelltext bearbeiten]

Für Nachfragen wenden Sie sich bitte an: Anna Lindner, Projektleiterin VWA, Benutzer:ALi_(VWA)