Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[paused] Admin: "Missing" media files listing + reencoding #20

Closed
2 tasks
eins78 opened this issue Jan 18, 2017 · 1 comment
Closed
2 tasks

[paused] Admin: "Missing" media files listing + reencoding #20

eins78 opened this issue Jan 18, 2017 · 1 comment

Comments

@eins78
Copy link
Contributor

eins78 commented 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 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
eins78 added a commit to Madek/madek_admin-webapp that referenced this issue Jan 18, 2017
needs more work but is not prioritized at the moment

tracked in <Madek/Madek#20>
@phoettli
Copy link

wird durch Filehandling ersetzt

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants