Ich wünsche einen guten Tag.
Ein paar Kollegen und ich setzen gerade eine Plattform zur Bewertung und Vorschau von Computerspielen um.
Um unsere Videos auf so vielen Plattformen wie möglich zu verteilen benutzen wir nun erstmalig Opencast.
Opencast läuft auf einem Ubuntu-Server als AllinOne Installation. (Nur 3 Leute arbeiten an/mit OC um unser Videomaterial hochzuladen und zu verteilen)
Bisher sind wir bei der Installation den Anweisungen aus dem Admin Guide gefolgt.
Wir haben die Basis-Konfiguration, die Datenbank und den Broker eingerichtet.
Nun haben wir drei Videos (1080p) anscheinend ohne Probleme hochgeladen.
Unter...
/opt/opencast/data/opencast/archive/mh_default_org/
...befinden sich drei Ordner mit jeweils 3 Unterordnern (0, 1 , 2) und in diesen Unterordnern befinden sich neben einigen Files auch Videodaten in 1080p.
Wenn wir nun aber in der Admin UI im CMS sind und unter Aufzeichnungen auf das "Auge" klicken um uns die Videos anzusehen haben diese nur eine Auflösung von 360p.
/engage/theodul/ui/core.html?id=d2fg4575-984c-4x5f-8de8-e7b045d8619fe
Unter dem Admin Guide gibt es eine Anleitung zur Nutzung von URL-Parametern, bei uns ändert sich jedoch nichts.
/engage/theodul/ui/core.html?id=2fg4575-984c-4x5f-8de8-e7b045d8619fe&quality=high
/engage/theodul/ui/core.html?id=2fg4575-984c-4x5f-8de8-e7b045d8619fe&quality=low
Nun haben wir erfahren das Opencast per Default in medium (360p) transcodiert.
Wo genau befindet sich die transcodierte Datei ?
Daraufhin haben wir uns im Admin Guide die Bereiche Encoding und Workflows angesehen.
Unter...
/opt/opencast/etc/encoding
...gibt es viele *.properties Dateien, wir haben uns erstmal die h264 angesehen und dort die Zeilen....
profile.mp4-high.http.name = High Quality Video
profile.mp4-high.http.input = visual
profile.mp4-high.http.output = visual
profile.mp4-high.http.suffix = -high.mp4
profile.mp4-high.http.mimetype = video/mp4
profile.mp4-high.http.ffmpeg.command = -i #{in.video.path} -c:v libx264 -filter:v yadif,scale=-2:576 -preset medium -crf 23 -r 25 -profile:v high -level 4.0 -pix_fmt yuv420p -tune film -movflags faststart -c:a aac -strict -2 -ar 44100 -ab 96k #{out.dir}/#{out.name}#{out.suffix}
profile.mp4-high-ncast.http.name = High Quality Video
profile.mp4-high-ncast.http.input = visual
profile.mp4-high-ncast.http.output = visual
profile.mp4-high-ncast.http.suffix = -high.mp4
profile.mp4-high-ncast.http.mimetype = video/mp4
profile.mp4-high-ncast.http.ffmpeg.command = -i #{in.video.path} -c:v libx264 -filter:v yadif,scale=-2:566 -preset medium -crf 23 -r 25 -profile:v high -level 4.0 -pix_fmt yuv420p -tune film -movflags faststart -c:a aac -strict -2 -ar 44100 -ab 96k #{out.dir}/#{out.name}#{out.suffix}
profile.mp4-vga-high.http.name = High Quality VGA Video
profile.mp4-vga-high.http.input = visual
profile.mp4-vga-high.http.output = visual
profile.mp4-vga-high.http.suffix = -vga-high.mp4
profile.mp4-vga-high.http.mimetype = video/mp4
profile.mp4-vga-high.http.ffmpeg.command = -i #{in.video.path} -c:v libx264 -preset slower -crf 30 -r 25 -profile:v high -level 4.0 -pix_fmt yuv420p -tune animation -movflags faststart -c:a aac -strict -2 -ar 44100 -ab 96k #{out.dir}/#{out.name}#{out.suffix}
....gefunden.
In der Annahme das wir diese Zeilen für den Workflow verwenden könnten.
Haben wir uns dem Workflow zugewandt.
Unter...
/opt/opencast/etc/workflows
... sind die Workflows (*.xml) zu finden dort öffneten wir die Datei np-partial-publish.xml
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Encode for publication to Engage -->
<!-- -->
<!-- Encode audio and video formats to the distribution formats that -->
<!-- are required by the Engage publication channel. -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Encode presenter (camera) to Engage player format -->
<operation
id="compose"
exception-handler-workflow="ng-partial-error"
description="Encoding presenter (camera) video to MP4 download">
<configurations>
<configuration key="source-flavor">presenter/themed</configuration>
<configuration key="target-flavor">presenter/delivery</configuration>
<configuration key="target-tags">engage-download,engage-streaming</configuration>
<configuration key="encoding-profile">mp4-medium.http</configuration>
</configurations>
</operation>
<!-- Encode presentation (vga) to Engage player format -->
<operation
id="compose"
exception-handler-workflow="ng-partial-error"
description="Encoding presentation (screen) to MP4 download">
<configurations>
<configuration key="source-flavor">presentation/themed</configuration>
<configuration key="target-flavor">presentation/delivery</configuration>
<configuration key="target-tags">engage-download,engage-streaming</configuration>
<configuration key="encoding-profile">mp4-vga-medium.http</configuration>
</configurations>
</operation>
Nun haben wir zwei Fragen.
1.) Ist unsere Annahme korrekt, dass wenn wir aus dem mp4-medium ein mp4-high (auch für vga) machen und die Datei (*.xml) einfach speichern ohne Opencast neu zu starten die neuen Videos ab sofort in 1080p transcodiert werden und unter ...
/engage/theodul/ui/core.html?id=d2fg4575-984c-4x5f-8de8-e7b045d8619fe
... in 1080p im Player zu sehen sind ?
2.) Wie müssten wir die ng-partial-publish.xml abändern um in einem Zug mehrere Qualitätsstufen (<- 360p, 1080p ->) zu bekommen ? Oder sollten wir dafür gesonderte Workflows erzeugen (z.B die *.xml kopieren und nur die mp4-**** umändern ?)
Mit freundlichem Gruß V.C