Encoding

Konfiguration

Encoding-Profile

Encoding-Profile entsprechen grundsätzlich den Jobfiles. Da sie aber als Templates fungieren, gibt es eine Reihe von Platzhaltern, die vom Tracker durch die projekt- und ticketspezifischen Attributwerte ersetzt werden, um ein Jobfile für ein konkretes Encoding-Ticket zu erzeugen.

Es einen Platzhalter, <property name=“Foo.Bar” />. Dieser Tag wird direkt durch den Wert der angegebenen Property ersetzt. Die Suche nach der Property beginnt jeweils erst am Encoding Ticket, anschließend am Parent und endet schließlich am Projekt. Wird die Property nicht gefunden, wird ein leerer String als Ersetzung verwendet.

Wird das Attribut “escaping” auf “ascii” gesetzt, wird der Wert der Property vor der Ersetzung in ASCII-Zeichen gewandelt (TRANSLIT bei Verwendung von iconv).

<property name="Foo.Bar" escaping="ascii" />

Beispiel Template

<?xml version="1.0" encoding="UTF-8" ?>
<job>
<meta>
<album><property name="Meta.Album" /></album>
<date><property name="Fahrplan.Date" /></date>
<license><property name="Meta.License" /></license>
<type><property name="Fahrplan.Type" /></type>
<vid><property name="Fahrplan.ID" /></vid>
<year><property name="Meta.Year" /></year>
</meta>
<tasks>
<progress>(remaining|%|time=)</progress>
<task type="encoding">
<option filetype="exe">ffmpeg</option>
<option>-v</option>
<option>1</option>
<option>-i</option>
<option filetype="in"><property name="Processing.Path.Raw" />/<property name="Fahrplan.ID" />/cut-complete.dv</option>
<option>-aspect</option>
<option><property name="Processing.Video.AspectRatio" /></option>
<option>-threads</option>
<option>0</option>
<option>-deinterlace</option>
<option>-y</option>
<option>-vcodec</option>
<option>libx264</option>
<option>-f</option>
<option>mp4</option>
<option>-crf</option>
<option>17</option>
<option>-vpre</option>
<option>baseline</option>
<option>-vpre</option>
<option>main</option>
<option>-g</option>
<option>250</option>
<option>-acodec</option>
<option>libfaac</option>
<option>-ab</option>
<option>128k</option>
<option>-ac</option>
<option>2</option>
<option filetype="out"><property name="Processing.Path.Tmp" />/tmp-<property name="id" />/<property name="Fahrplan.ID" />-h264.mp4</option>
</task>
<task type="tagging">
<option filetype="exe">AtomicParsley</option>
<option>-i</option>
<option filetype="in"><property name="Processing.Path.Tmp" />/tmp-<property name="id" />/<property name="Fahrplan.ID" />-h264.mp4</option>
<option>-o</option>
<option filetype="out"><property name="Processing.Path.Output" />/<property name="EncodingProfile.Basename" />.<property name="EncodingProfile.Extension" /></option>
<option>-author</option>
<option><property name="Fahrplan.Person_list" escaping="ascii" /></option>
<option>-title</option>
<option><property name="Fahrplan.Title" escaping="ascii" /></option>
</task>
</tasks>
</job>

Job Files

Folgende Bedingungen muß der Encoder pro Job erfüllen

schlägt ein Task fehl, werden sämtliche Ausgabedateien des Task gelöscht

existieren alle Ausgabedateien eines Tasks, wird der Task übersprungen

ein Task wird erst gestartet, wenn die notwendigen Eingabedateien vorhanden sind

sämtliche Dateien der Zwischenformate werden relativ in einer Verzeichnisstruktur abgelegt (z. B. alles in einem Unterverzeichnis “$jobid”)

Die ersten drei Bedingungen ermöglichen die automatische Wiederaufnahme unterbrochener Jobs. Die letzte Bedingung soll primär zu einfacheren Kommandozeilen im XML sorgen.

Ein Beispiel-Jobfile:

<?xml version="1.0"?>
<job id="1234_H264"> <!-- id ergibt sich aus Fahrplan.ID, _ und Encodingprofilname (oder -slug), sollte im Endeffekt eindeutig sein -->
<meta> <!-- prinzipiell unnötig, aber man sollte es lieber drinlassen, allein schon für die Fehlersuche -->
<title>1984 und die Folgen</title>
<subtitle>Gefahren durch Metadaten</subtitle>
<author>George Orwell</author>
<author>Big Brother</author>
<year>1984</year>
</meta>
<tasks>
<task type="encoding">
<option filetype="exe">ffmpeg</option>
<option>-i</option>
<option filetype="in">/path/to/src</option>
<option>|</option>
<option>x264</option>
<option>-preset</option>
<option filetype="cfg">/path/to/preset</option>
<option>&gt;</option>
<option filetype="out">file-x264</option>
</task>
<task type="tagging">
<option filetype="exe">AtomicParsely</option>
<option>-i</option>
<option filetype="in">file-x264</option>
<option>-o</option>
<option filetype="out">/dest/outfile</option>
<option>-author</option>
<option>George Orwell</option>
<option>-title</option>
<option>1984 und die Folgen</option>
</task>
</tasks>
</job>

TODO

WMV encoding andengeln. Mögliche Software: http://nic.dnsalias.com/wm9enc.html