Meng aacht Joer Sich no 45 Videokassetten ze digitaliséieren. Deel 2

Den éischten Deel beschreift déi schwiereg Sich fir al Familljevideoen ze digitaliséieren an an getrennten Szenen opzedeelen.. Nodeems ech all Clips veraarbecht hunn, wollt ech hir Vue online sou bequem organiséieren wéi op YouTube. Well dëst perséinlech Erënnerunge vun der Famill sinn, kënnen se net op YouTube selwer gepost ginn. Mir brauchen e méi privaten Hosting dee souwuel bequem a sécher ass.

Schrëtt 3: Verëffentlechung

ClipBucket, en Open Source YouTube Klon deen op Ärem eegene Server installéiert ka ginn

Éischt Saach ech probéiert ClipBucket, deen sech selwer en Open-Source YouTube Klon nennt, deen Dir op Ärem Server installéiere kënnt.

Meng aacht Joer Sich no 45 Videokassetten ze digitaliséieren. Deel 2

Iwwerraschend huet ClipBucket keng Installatiounsinstruktiounen. Merci un zu ausserhalb Gestioun я automatiséiert den Installatiounsprozess mat der Hëllef vun Sicht, engem Server Konfiguratioun Gestioun Outil.

En Deel vun der Schwieregkeet war datt d'ClipBucket Installatiounsskripte komplett gebrach waren. Deemools hunn ech bei Google geschafft an no de Bedéngungen vum Kontrakt hunn ech net d'Recht fir den Open Source YouTube Klon bäizedroen, awer ech e Feeler Bericht gepost, aus deenen déi néideg Korrekturen einfach kënne gemaach ginn. Méint sinn vergaangen, a si hunn nach ëmmer net verstanen wat de Problem war. Amplaz hunn se alles bäigefüügt méi wéi Bugs an all Verëffentlechung.

ClipBucket huet op engem Berodungsmodell operéiert - si hunn hire Code gratis verëffentlecht a fir Détachementhëllef verrechent. Et ass lues a lues op mech opgetrueden datt eng Firma déi Sue vu bezuelter Ënnerstëtzung verdéngt, wahrscheinlech net ganz interesséiert ass fir Clienten de Produkt selwer ze installéieren.

MediaGoblin, eng méi modern Alternativ

No Méint vu Frustratioun mam ClipBucket hunn ech d'Optiounen gekuckt a fonnt Medien Goblin.

Meng aacht Joer Sich no 45 Videokassetten ze digitaliséieren. Deel 2
Medien Goblin ass eng offline Medien Deele Plattform

MediaGoblin huet vill Goodies. Am Géigesaz zu ClipBucket an onsiichtlech PHP, ass MediaGoblin am Python geschriwwen, eng Sprooch mat där ech vill Kodéierungserfahrung hunn. Iessen Kommando Linn Interface, wat Iech erlaabt d'Video-Download einfach ze automatiséieren. Virun allem, MediaGoblin kënnt mat Docker Bild, déi all Installatiounsproblemer eliminéiert.

Docker ass eng Technologie déi en autonomt Ëmfeld erstellt fir eng Applikatioun iwwerall ze lafen. Ech benotzen Docker an vill vu senge Projeten.

Déi iwwerraschend Schwieregkeet fir MediaGoblin nei ze dockeriséieren

Ech hunn ugeholl datt d'Deploy vum MediaGoblin Docker Image eng trivial Aufgab wier. Gutt, dat huet net ganz sou geklappt.

De fäerdege Bild huet keng zwou néideg Funktiounen enthalen:

  • Authentifikatioun
    • MediaGoblin erstellt als Standard en ëffentleche Medienportal, an ech brauch e Wee fir den Zougang zu Auslänner ze beschränken.
  • Transcodéieren
    • All Kéier wann Dir e Video erofluet, probéiert MediaGoblin et fir optimal Streaming ze transkodéieren. Wann de Video am Ufank prett ass fir ze streamen, degradéiert d'Transkodéierung d'Qualitéit.
    • MediaGoblin stellt Transcodéierung auszeschalten iwwer Konfiguratiounsoptiounen, awer dëst kann net an engem existente Docker-Bild gemaach ginn.

Gutt, kee Problem. Den Docker Bild kënnt mat oppe Quell, also ass et méiglech opbauen et selwer.

Leider ass den Docker Bild net méi aus dem aktuellen gebaut. MediaGoblin Repository. Ech hu probéiert et mat der Versioun vun der leschter erfollegräicher Build ze synchroniséieren, awer dat ass och gescheitert. Och wann ech dee selwechte Code benotzt hunn, hunn dem MediaGoblin seng extern Ofhängegkeet geännert, de Bau briechen. No Dosende vu Stonnen hunn ech den 10-15 Minutt MediaGoblin Build Prozess ëmmer erëm duerchgefouert bis et endlech geschafft huet.

E puer Méint méi spéit ass datselwecht geschitt. Am Ganzen huet d'MediaGoblin Ofhängegkeetskette meng Build e puer Mol an de leschte puer Joer gebrach, an déi leschte Kéier wou et geschitt ass just wärend ech dësen Artikel geschriwwen hunn. Ech hunn endlech publizéiert eege Gabel vun MediaGoblin c schwéier kodéiert Ofhängegkeeten an explizit spezifizéiert Versioune vu Bibliothéiken. An anere Wierder, amplaz vun der zweifelhafter Fuerderung datt MediaGoblin mat all Versioun funktionnéiert Sallerie >= 3.0, Ech installéiert eng spezifesch Versioun Ofhängegkeet Sellerie 4.2.1well ech MediaGoblin mat dëser Versioun getest. Et gesäit aus wéi de Produkt brauch reproduzéierbare Baumechanismus, mee ech hunn et nach net gemaach.

Jiddefalls, no ville Stonne vu Kampf, konnt ech endlech MediaGoblin an engem Docker-Bild bauen an konfiguréieren. Do war et schonn einfach iwwersprangen onnéideg transcoding и installéiert Nginx fir Authentifikatioun.

Schrëtt 4. Hosting

Well MediaGoblin Docker op mengem lokalen Computer leeft, war de nächste Schrëtt et op e Cloud Server z'installéieren sou datt d'Famill de Video konnt kucken.

MediaGoblin an de Videospeicherproblem

Et gi vill Plattformen déi en Docker Bild huelen an et op enger ëffentlecher URL hosten. De Fang ass datt nieft der App selwer 33 GB Videodateien hu misse publizéiert ginn. Et war méiglech se an e Docker-Bild schwéier ze codéieren, awer dat wier ëmständlech an ellent. Eng Zeil vun der Konfiguratioun z'änneren géif 33 GB vun Daten ëmsetzen.

Wann ech benotzt ClipBucket ech de Problem geléist mat gcsfuse - en Utility dat de Betribssystem erlaabt Verzeichnisser op Google Cloud Cloud Storage eropzelueden als reguläre Weeër zum Dateiesystem. Ech hunn d'Videodateien op Google Cloud gehost an hunn gcsfuse benotzt fir datt se am ClipBucket als lokal Dateien erscheinen.

Den Ënnerscheed war datt ClipBucket an enger realer virtueller Maschinn leeft, während MediaGoblin an engem Docker Container leeft. Hei ass d'Montage vun Dateien aus der Wolleklagerung vill méi schwéier erausgestallt. Ech hunn Dosende vu Stonnen verbruecht fir all d'Problemer ze léisen an doriwwer geschriwwen ganze Blog Post.

Meng aacht Joer Sich no 45 Videokassetten ze digitaliséieren. Deel 2
MediaGoblin seng initial Integratioun mat Google Cloud Storage, iwwer déi ech schwätzen 2018 gesot

No e puer Woche vun der Upassung vun all Komponenten, huet alles geschafft. Ouni Ännerunge vum MediaGoblin Code ze maachen, hunn ech et fuddelen fir Mediendateien op Google Cloud Storage ze liesen an ze schreiwen.

Deen eenzege Problem war datt MediaGoblin obszön lues gouf. Et huet eng voll 20 Sekonnen gedauert fir Video Miniatyren op d'Homepage ze lueden. Wann Dir no vir sprang wärend Dir e Video kuckt, géif MediaGoblin fir endlos 10 Sekonnen pausen ier Dir d'Wiedergabe weiderhëlt.

Den Haaptproblem war datt d'Videoen an d'Biller e laange Rondpoint Wee bei de Benotzer gemaach hunn. Si hu misse vu Google Cloud Storage duerch gcsfuse op MediaGoblin, Nginx goen - a nëmmen dann si se an de Browser vum Benotzer komm. D'Haaptrei Flaschenhals war gcsfuse, déi net fir Geschwindegkeet optimiséiert ass. D'Entwéckler warnen iwwer grouss Verspéidungen an der Operatioun vum Utility direkt op der Haaptsäit vum Projet:

Meng aacht Joer Sich no 45 Videokassetten ze digitaliséieren. Deel 2
Warnungen iwwer niddereg Leeschtung an der gcsfuse Dokumentatioun

Idealerweis sollt de Browser Dateien direkt vun der Google Cloud erofhuelen, an all Zwëschenschichten ëmgoen. Wéi kënnt Dir dëst maachen ouni an d'MediaGoblin Codebase ze tauchen oder komplex Google Cloud Integratiounslogik derbäi ze ginn?

Sub_filter Trick an nginx

Glécklecherweis hunn ech eng einfach Léisung fonnt, obwuel немного ellen. Ech hunn der default.conf Konfiguratioun an Nginx bäigefüügt esou e filter:

sub_filter "/mgoblin_media/media_entries/" "https://storage.googleapis.com/MY-GCS-BUCKET/media_entries/";
sub_filter_once off;

A mengem Setup huet Nginx als Proxy tëscht MediaGoblin an dem Endbenotzer gehandelt. Déi uewe genannte Direktiv instruéiert Nginx fir all MediaGoblin HTML Äntwerten ze sichen an ze ersetzen ier se dem Endbenotzer zerwéiert. Nginx ersetzt all relativ Weeër fir MediaGoblin Mediendateien mat URLen aus Google Cloud Storage.

Zum Beispill, MediaGoblin generéiert HTML esou:

<video width="720" height="480" controls autoplay>
  <source
    src="/mgoblin_media/media_entries/16/Michael-riding-a-bike.mp4"
    type="video/mp4">
</video>

Nginx ännert d'Äntwert:

<video width="720" height="480" controls autoplay>
  <source
    src="https://storage.googleapis.com/MY-GCS-BUCKET/media_entries/16/Michael-riding-a-bike.mp4"
    type="video/mp4">
</video>

Elo leeft alles wéi erwaart:

Meng aacht Joer Sich no 45 Videokassetten ze digitaliséieren. Deel 2
Nginx iwwerschreift Äntwerte vu MediaGoblin sou datt Cliente Mediendateien direkt vu Google Cloud Storage ufroe kënnen

Dee beschten Deel iwwer meng Léisung ass datt et keng Ännerunge vum MediaGoblin Code erfuerdert. Nginx's Zwee-Linn-Direktiv integréiert MediaGoblin a Google Cloud nahtlos, och wann d'Servicer absolut näischt iwwerenee wëssen.

Remarque: Dës Léisung erfuerdert datt Dateien an der Google Cloud Storage vu jidderee liesbar sinn. Fir de Risiko vun onerlaabten Zougang ze reduzéieren, benotzen ech e laangen, zoufällege Eemernumm (z. mediagoblin-39dpduhfz1wstbprmyk5ak29) an z'iwwerpréiwen datt d'Zougangskontrollpolitik vum Eemer et net erlaabt datt onerlaabten Benotzer den Inhalt vum Verzeechnes weisen.

Finale Produit

Zu dësem Zäitpunkt hat ech eng komplett, funktionéierend Léisung. MediaGoblin leeft glécklech a sengem eegene Container op der Google Cloud Plattform, sou datt et net dacks gepatcht oder aktualiséiert muss ginn. Alles a mengem Prozess war automatiséiert a reproduzéierbar, wat fir einfach Ännerungen oder Rollbacks zu fréiere Versiounen erlaabt.

Meng Famill huet wierklech gär wéi einfach et war d'Videoen ze kucken. Mat der Hëllef vun der Nginx Hack uewen beschriwwen, Aarbecht mat Videoen gouf esou séier wéi op YouTube.

De Gesiichtsbildschierm gesäit esou aus:

Meng aacht Joer Sich no 45 Videokassetten ze digitaliséieren. Deel 2
Inhalter vum Familljevideokatalog mam Tag "Bescht"

Klickt op d'Vignette bréngt en Écran wéi dëst op:

Meng aacht Joer Sich no 45 Videokassetten ze digitaliséieren. Deel 2
Kuckt een eenzegen Clip op engem Medienserver

No Joere vun der Aarbecht war et onheemlech belount Familljememberen d'Méiglechkeet ze ginn eis Videoen an der selwechter User-frëndlech YouTube-ähnlecher Interface ze kucken, déi ech ursprénglech wollt.

Bonus: Reduzéieren Käschten op manner wéi $ 1 pro Mount

Dir kuckt net dacks Heemvideoen, nëmmen all puer Méint. Meng Famill huet kollektiv ongeféier 20 Stonnen Traffic an engem Joer generéiert, awer de Server leeft 15/99,7. Ech hunn $ XNUMX Mount bezuelt fir e Server deen XNUMX% vun der Zäit erof war.

Um Enn vum 2018 huet Google de Produit verëffentlecht Cloud Run. D'Killer Feature huet Docker Container sou séier lafen datt d'Applikatioun op HTTP-Ufroe äntweren konnt. Dat ass, de Server konnt am Standby-Modus bleiwen an eréischt starten wann iergendeen Zougang wollt. Fir selten lafen Uwendungen wéi meng, sinn d'Käschte vun $15 pro Mount op e puer Cent pro Joer erofgaang.

Aus Grënn, déi ech mech net méi erënneren, huet Cloud Run net mat mengem MediaGoblin Bild geschafft. Awer mam Advent vu Cloud Run hunn ech mech erënnert Heroku bitt en ähnlechen Service gratis, an hir Tools si vill méi userfrëndlech wéi déi vu Google.

Mat engem gratis Applikatiounsserver sinn déi eenzeg Käschte Datenspeicherung. Google Standard regional Späichere kascht 2,3 Cent / GB. De Videoarchiv hëlt 33 GB, also bezuelen ech just 77 Cent pro Mount.

Meng aacht Joer Sich no 45 Videokassetten ze digitaliséieren. Deel 2
Dës Léisung kascht nëmmen $ 0,77 pro Mount

Tipps fir déi plangen ze probéieren

Natierlech huet de Prozess mech laang gedauert. Awer ech hoffen dësen Artikel hëlleft Iech 80-90% vun der Effort fir Är Heemvideoen ze digitaliséieren an ze publizéieren. An enger separater Rubrik fannt Dir detailléiert Schrëtt fir Schrëtt Guide am ganze Prozess, awer hei sinn e puer allgemeng Tipps:

  • Wärend der Digitaliséierungs- an Redaktiounsphase, bewahrt sou vill Metadaten wéi méiglech.
    • Wäertvoll Informatioun gëtt dacks op Videokassettetiketten opgeholl.
    • Verfollegt wéi ee Clip aus wéi engem Band erschoss gouf a wéi enger Reiefolleg.
    • Schreift den Datum vum Schéissen op, deen am Video erschéngen kann.
  • Betruecht fir professionell Digitaliséierungsservicer ze bezuelen.
    • Dir wäert iwwerméisseg et ass schwéier an deier hinnen a punkto Digitaliséierung Qualitéit ze Match.
    • Awer bleift ewech vun enger Firma mam Numm EverPresent (schéckt mech wann Dir Detailer braucht).
  • Wann Dir selwer Digitaliséierung maacht, kaaft eng HDD.
    • Onkompriméiert Standard Definitioun Video hëlt 100-200 MB pro Minutt.
    • Ech hunn alles op menger gehal Synologie DS412 + (10 TB).
  • Rekord Metadaten an e puer gemeinsam Format datt net un eng spezifesch Applikatioun gebonnen ass.
    • Clip Beschreiwunge, Zäit Coden, Datumen, etc.
    • Wann Dir Metadaten an engem Applikatiounspezifesche Format späichert (oder méi schlëmm, späichert se guer net), kënnt Dir d'Aarbecht net nei maachen wann Dir decidéiert eng aner Léisung ze benotzen.
    • Wéi Dir ännert, gesitt Dir vill nëtzlech Metadaten am Video. Dir wäert se verléieren wann Dir se net retten.
      • Wat geschitt am Video?
      • Wien ass do ugemellt?
      • Wéini gouf dëst opgeholl?
  • Markéiert Är Liiblingsvideoen.
    • Fir éierlech ze sinn, sinn déi meescht Heemvideoen zimlech langweileg.
    • Ech applizéieren de "Best of" Tag op meng Liiblingsclips an oppen se wann ech witzeg Videoe kucke wëll.
  • Organiséiert eng ëmfaassend Léisung sou fréi wéi méiglech sou datt de Prozess direkt vun Ufank bis Enn geet.
    • Ech hu probéiert all d'Bänner als éischt ze digitaliséieren, dann all Bänner z'änneren, asw.
    • Ech wënschen ech mat engem Band ugefaang an all d'Aarbecht mat et gemaach. Da géif ech verstoen wéi eng Décisiounen a wéi eng Etappe d'Endresultat beaflossen.
  • Fuert weider op e Minimum zréck.
    • All Kéier wann Dir e Clip ännert oder nei codéiert, reduzéiert Dir seng Qualitéit.
    • Digitaliséiert Är raw Footage mat maximaler Qualitéit, transkodéiert dann all Clip genau eemol an d'Format, dat de Browser nativ rendert.
  • Benotzt déi einfachst Léisung méiglech fir Videoclips ze publizéieren.
    • A Réckbléck, MediaGoblin schéngt wéi en ze komplexen Tool fir den zimlech einfache Szenario fir Websäiten mat engem statesche Set vu Videodateien ze generéieren.
    • Wann ech ufänken iwwer, Ech géif e statesche Site Generator benotzen wéi Hugo, Jekyll oder Gridsom.
  • Maacht d'Installatioun.
    • Video Redaktioun ass e Spaass Wee fir déi bescht Momenter vu ville Videoen ze kombinéieren.
    • Den Haapt Saach am Redaktioun ass Musek. Zum Beispill ass d'Thema erstaunlech Lues Schnéi vun der National, dëst ass meng perséinlech Entdeckung.

Source: will.com