You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feature needs more work but is not currently priotized,
so it's hidden from UI.
more info in german
Media Reencoding status quo
Instanz-Config:
Hat Zencoder-Config Output-Optionen, genannt "profiles" (jeweils für audio und video).
Jedes Profil hat eine id, z.B. mp4 oder mp4_HD.
DB:
MediaFiles haben eine Liste von conversion_profiles (z.B. {mp4, mp4_HD}),
d.h. für welche der konfigurierten Profile ein Preview erzeugt wurde.
Previews haben ein conversion_profile
(die id zur config wegen der sie erzeugt wurden)
Query: "missing profiles" gibt (je für audio/video) eine Liste der fehlenden Profile.
Das sind alle Profile für die kein Preview erzeugt wurde und auch kein
Zencoder-Job läuft.
Admin-Bereich:
MediaFiles-Tabelle zeigt "with missing" Status an, und erlaubt filtern nach diesem.
Batch-Reencode Feature kann in einem (potentiell sehr lang dauernden) Prozess
alle "missing" profiles re-encodieren (die profile können ausgewählt werden).
Das Feature kann nur von einem User gleichzeitig benutzt werden (locking).
Der Prozess achtet darauf dass Jobs nicht zu schnell gesendet werden (Zencoder Rate-Limiting),
und nicht mehr als 10 Jobs gleichzeitig laufen
(sonst Performanz-Probleme durch zuviele parallele Downloads von Zencoder aus dem Server).
Problem
Nachdem der Prozess einmal erfolgreich in Produktion durchgelaufen ist,
stellte sich heraus das die "is missing" query immer noch zu einfach ist.
Nicht jeder erfolgreiche Zencoder-Job für ein Profil erzeugt ein Preview!
Daher bleibt ein gewisser Teil der Medien immer "with missing".
Wir müssen Zencoders "Conditional Outputs" benutzen, um nur HD-Versionen
für Videos zu erzeugen, die eine gewisse Mindestgröße haben.
Andernfalls würde Zencoder für ein SD-Video ein HD-Preview erzeugen,
das war HD heisst aber natürlich immer noch nur SD-groß ist
(== doppelte Kosten, Speicherplatz).
Andererseits gibt es auch ungültige Files, für die keinerlei Preview erzeugt
werden kann, wir aber davon ausgehen (z.B. .midi, ist nicht supported).
Lösung / TODO
Query muss zusätzlich "erkennen", wenn ein Profil nicht "gewünscht" ist.
Das ist nicht so einfach, weil wir nicht wissen wie groß die Original-Files sind
(Stichwort Filehandling).
Mit besserem Filehandling kann das relativ einfach DB implementiert werden
(conditional outputs logik aus der profile config anwenden).
Im aktuellen Zustand wäre es wahrscheinlich möglich aber relativ komplex,
da die Query sich nicht nur auf MediaFiles und Previews bezieht sondern
auch noch auf auf die zugehörigen ZencoderJobs.
Tasks:
problemlösung (s.o.)
Re-encode missing button auch in MediaFile-Detailansicht
The text was updated successfully, but these errors were encountered:
eins78
added a commit
to Madek/madek_admin-webapp
that referenced
this issue
Jan 18, 2017
feature needs more work but is not currently priotized,
so it's hidden from UI.
more info in german
Media Reencoding status quo
Instanz-Config:
Hat Zencoder-Config Output-Optionen, genannt "profiles" (jeweils für audio und video).
Jedes Profil hat eine id, z.B.
mp4
odermp4_HD
.DB:
MediaFiles
haben eine Liste vonconversion_profiles
(z.B.{mp4, mp4_HD}
),d.h. für welche der konfigurierten Profile ein
Preview
erzeugt wurde.Previews
haben einconversion_profile
(die id zur config wegen der sie erzeugt wurden)
Query: "missing profiles" gibt (je für audio/video) eine Liste der fehlenden Profile.
Das sind alle Profile für die kein Preview erzeugt wurde und auch kein
Zencoder-Job läuft.
Admin-Bereich:
MediaFiles-Tabelle zeigt "with missing" Status an, und erlaubt filtern nach diesem.
Batch-Reencode Feature kann in einem (potentiell sehr lang dauernden) Prozess
alle "missing" profiles re-encodieren (die profile können ausgewählt werden).
Das Feature kann nur von einem User gleichzeitig benutzt werden (locking).
Der Prozess achtet darauf dass Jobs nicht zu schnell gesendet werden (Zencoder Rate-Limiting),
und nicht mehr als 10 Jobs gleichzeitig laufen
(sonst Performanz-Probleme durch zuviele parallele Downloads von Zencoder aus dem Server).
Problem
Nachdem der Prozess einmal erfolgreich in Produktion durchgelaufen ist,
stellte sich heraus das die "is missing" query immer noch zu einfach ist.
Nicht jeder erfolgreiche Zencoder-Job für ein Profil erzeugt ein Preview!
Daher bleibt ein gewisser Teil der Medien immer "with missing".
Wir müssen Zencoders "Conditional Outputs" benutzen, um nur HD-Versionen
für Videos zu erzeugen, die eine gewisse Mindestgröße haben.
Andernfalls würde Zencoder für ein SD-Video ein HD-Preview erzeugen,
das war HD heisst aber natürlich immer noch nur SD-groß ist
(== doppelte Kosten, Speicherplatz).
Andererseits gibt es auch ungültige Files, für die keinerlei Preview erzeugt
werden kann, wir aber davon ausgehen (z.B.
.midi
, ist nicht supported).Lösung / TODO
Query muss zusätzlich "erkennen", wenn ein Profil nicht "gewünscht" ist.
Das ist nicht so einfach, weil wir nicht wissen wie groß die Original-Files sind
(Stichwort Filehandling).
Mit besserem Filehandling kann das relativ einfach DB implementiert werden
(conditional outputs logik aus der profile config anwenden).
Im aktuellen Zustand wäre es wahrscheinlich möglich aber relativ komplex,
da die Query sich nicht nur auf
MediaFiles
undPreviews
bezieht sondernauch noch auf auf die zugehörigen
ZencoderJobs
.Tasks:
The text was updated successfully, but these errors were encountered: