. Az összes klip feldolgozása után szerettem volna online megtekintésüket olyan kényelmesen megszervezni, mint a YouTube-on. Mivel ezek a család személyes emlékei, magán a YouTube-on nem tehetők fel. Privátabb tárhelyre van szükségünk, amely egyszerre kényelmes és biztonságos.
3. lépés: Közzététel
ClipBucket, egy nyílt forráskódú YouTube klón, amely telepíthető saját szerverére
Az első, amit kipróbáltam , amely nyílt forráskódú YouTube-klónnak nevezi magát, amelyet telepíthet a szerverére.

Meglepő módon a ClipBucket nem rendelkezik telepítési utasításokkal. Köszönet я keresztül , egy szerverkonfiguráció-kezelő eszköz.
A nehézség egy része az volt, hogy a ClipBucket telepítési szkriptjei teljesen megszakadtak. Annak idején én és a szerződés feltételei szerint nem nekem volt jogom hozzájárulni a nyílt forráskódú YouTube klónhoz, de én , amelyből a szükséges korrekciók könnyen elvégezhetők. Teltek-múltak a hónapok, és még mindig nem értették, mi a probléma. Ehelyett mindent hozzáadtak több mint hibák minden kiadásban.
A ClipBucket tanácsadói modellen működött – ingyenesen adták ki kódjukat, és díjat számoltak fel a telepítési segítségért. Fokozatosan tudatosult bennem, hogy a fizetett támogatásból pénzt kereső cég valószínűleg nem nagyon érdeklődik abban, hogy az ügyfelek maguk telepítsék a terméket.
MediaGoblin, egy modernebb alternatíva
A ClipBucket miatt több hónapig tartó frusztráció után megvizsgáltam a rendelkezésre álló lehetőségeket, és megtaláltam .

egy offline médiamegosztó platform
A MediaGoblinnak sok finomsága van. Ellentétben a csúnya PHP ClipBucketével, a MediaGoblin Python nyelven íródott, egy olyan nyelven, amelyen sok tapasztalatom van a kódírásban. Eszik , amely lehetővé teszi a videók letöltésének egyszerű automatizálását. A legfontosabb, hogy a MediaGoblin is benne van , amely kiküszöböli a telepítési problémákat.
egy olyan technológia, amely autonóm környezetet hoz létre az alkalmazások bárhol futtatásához. Dockert használok .
A MediaGoblin újradokkolásának meglepő nehézségei
Feltételeztem, hogy a MediaGoblin docker image telepítése triviális feladat lenne. Hát, ez nem egészen így sikerült.
A kész kép nem tartalmazott két szükséges funkciót:
- Hitelesítés
- A MediaGoblin alapértelmezés szerint létrehoz egy nyilvános médiaportált, és szükségem volt egy módra, hogy korlátozzam a hozzáférést a kívülállókra.
- Átkódolás
- Minden alkalommal, amikor letölt egy videót, a MediaGoblin megpróbálja átkódolni az optimális streamelés érdekében. Ha a videó kezdetben készen áll a streamelésre, az átkódolás rontja a minőséget.
- A MediaGoblin biztosítja , de ez nem tehető meg egy meglévő Docker-képben.
Nos, semmi gond. A Docker képhez tartozik , szóval lehetséges .
Sajnos a Docker image már nem a jelenlegiből épül fel. . Megpróbáltam szinkronizálni a legutóbbi sikeres build verziójával, de ez sem sikerült. Annak ellenére, hogy pontosan ugyanazt a kódot használtam, a MediaGoblin külső függőségei megváltoztak, megszakítva a felépítést. Több tucat óra elteltével újra és újra végigfutottam a 10-15 perces MediaGoblin összeállítási folyamatot, míg végül sikerült.
Néhány hónappal később ugyanez történt. Összességében a MediaGoblin függőségi lánc többször megtörte a buildemet az elmúlt néhány évben, és utoljára ez a cikk írása közben történt. végre publikáltam c és a könyvtárak kifejezetten meghatározott verziói. Más szóval, a kétes állítás helyett, hogy a MediaGoblin bármilyen verzióval működik >= 3.0, telepítettem egy adott verziófüggőséget mert ezzel a verzióval teszteltem a MediaGoblint. Úgy tűnik, a terméknek szüksége van , de még nem tettem meg.
Mindenesetre sok órányi küzdelem után végre sikerült megépíteni és beállítani a MediaGoblint Docker-képben. Ott már könnyű volt и .
4. lépés: Tárhely
Mivel a MediaGoblin a Dockert futtatta a helyi számítógépemen, a következő lépés az volt, hogy telepítettem egy felhőkiszolgálóra, hogy a család megnézhesse a videót.
MediaGoblin és a videó tárolási probléma
Számos platform létezik, amely Docker-képet készít, és nyilvános URL-címen tárolja. A bökkenő az, hogy magán az alkalmazáson kívül 33 GB videófájlt kellett közzétenni. Lehetséges volt keményen kódolni őket egy Docker-képbe, de ez nehézkes és csúnya lenne. A konfiguráció egy sorának megváltoztatásához 33 GB adat újratelepítésére lenne szükség.
Amikor a ClipBucketet használtam, megoldottam a problémát - egy segédprogram, amely lehetővé teszi az operációs rendszer számára, hogy könyvtárakat töltsön fel a Google Cloud felhőtárhelyére a fájlrendszer szokásos elérési útjaként. A videofájlokat a Google Cloudon tároltam, és a gcsfuse segítségével helyi fájlként jelennek meg a ClipBucketben.
A különbség az volt, hogy a ClipBucket valódi virtuális gépen futott, míg a MediaGoblin egy Docker konténerben. Itt sokkal nehezebbnek bizonyult a fájlok felcsatolása a felhőtárhelyről. Több tucat órát töltöttem az összes probléma megoldásával, és írtam is róla .

A MediaGoblin kezdeti integrációja a Google Cloud Storage-val, amiről beszélek
Több hét után az összes alkatrész beállítása után minden működött. Anélkül, hogy bármit is módosítottam volna a MediaGoblin kódjában, átvertem, hogy médiafájlokat olvasson és írjon a Google felhőtárhelyére.
Az egyetlen probléma az volt, hogy a MediaGoblin obszcén lassú lett. Teljes 20 másodpercbe telt, mire a videók miniatűrjei betöltődnek a kezdőlapra. Ha egy videó megtekintése közben előreugrott, a MediaGoblin végtelen 10 másodpercig szünetet tart, mielőtt folytatná a lejátszást.
A fő probléma az volt, hogy a videók és képek hosszú, körbefutó úton jutottak el a felhasználóhoz. A Google felhőtárhelyéről a gcsfuse-n keresztül a MediaGoblin-re, az Nginx-re kellett eljutniuk – és csak ezután jutottak el a felhasználó böngészőjéhez. A fő szűk keresztmetszet a gcsfuse volt, ami nincs sebességre optimalizálva. A fejlesztők közvetlenül a projekt főoldalán figyelmeztetnek a segédprogram működésében bekövetkező nagy késésekre:

figyelmeztetések a gcsfuse dokumentációjában
Ideális esetben a böngészőnek közvetlenül a Google Cloudból kell letöltenie a fájlokat, megkerülve a közbenső rétegeket. Hogyan teheti ezt meg anélkül, hogy belemerülne a MediaGoblin kódbázisba vagy bonyolult Google Cloud integrációs logikát adna hozzá?
Sub_filter trükk az nginxben
Szerencsére találtam egy egyszerű megoldást немного csúnya. Hozzáadtam az Nginx alapértelmezett.conf konfigurációjához :
sub_filter "/mgoblin_media/media_entries/" "https://storage.googleapis.com/MY-GCS-BUCKET/media_entries/";
sub_filter_once off;Az én beállításomban az Nginx proxyként működött a MediaGoblin és a végfelhasználó között. A fenti direktíva arra utasítja az Nginxet, hogy keresse meg és cserélje ki az összes MediaGoblin HTML-választ, mielőtt kiszolgálná azokat a végfelhasználónak. Az Nginx a MediaGoblin médiafájlok összes relatív elérési útját lecseréli a Google felhőtárhelyéről származó URL-ekre.
Például a MediaGoblin a következő HTML-kódot állítja elő:
<video width="720" height="480" controls autoplay>
<source
src="/mgoblin_media/media_entries/16/Michael-riding-a-bike.mp4"
type="video/mp4">
</video>Az Nginx megváltoztatja a választ:
<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>Most minden a vártnak megfelelően alakul:

Az Nginx átírja a MediaGoblin válaszait, így az ügyfelek közvetlenül a Google felhőtárhelyéről kérhetnek médiafájlokat
A megoldásom legjobb része az, hogy nem szükséges módosítani a MediaGoblin kódot. Az Nginx kétsoros direktívája zökkenőmentesen integrálja a MediaGoblin-t és a Google Cloud-ot, annak ellenére, hogy a szolgáltatások semmit sem tudnak egymásról.
Megjegyzés: Ez a megoldás megköveteli, hogy a Google felhőtárhelyen lévő fájlok mindenki számára olvashatóak legyenek. A jogosulatlan hozzáférés kockázatának csökkentése érdekében hosszú, véletlenszerű vödörnevet használok (pl.
mediagoblin-39dpduhfz1wstbprmyk5ak29) és győződjön meg arról, hogy a tárolóhely hozzáférés-vezérlési házirendje nem teszi lehetővé a jogosulatlan felhasználók számára a címtár tartalmának megjelenítését.
Végtermék
Ezen a ponton volt egy teljes, működő megoldásom. A MediaGoblin boldogan futott a saját konténerében a Google felhőplatformján, így nem kellett gyakran javítani vagy frissíteni. A folyamatban minden automatizált és reprodukálható volt, lehetővé téve az egyszerű szerkesztéseket vagy a korábbi verziók visszaállítását.
A családomnak nagyon tetszett, hogy milyen könnyű volt nézni a videókat. A fent leírt Nginx hack segítségével a videókkal való munka olyan gyors lett, mint a YouTube-on.
A megtekintő képernyő így néz ki:

A családi videókatalógus tartalma „Legjobb” címke szerint
A bélyegképre kattintva a következő képernyő jelenik meg:

Egyetlen klip megtekintése médiaszerveren
Több éves munka után hihetetlenül kifizetődő volt lehetőséget adni a családtagoknak, hogy ugyanazon a felhasználóbarát YouTube-szerű felületen nézhessék meg videóinkat, mint amilyet eredetileg szerettem volna.
Bónusz: Csökkentse a költségeket havi 1 dollár alá
Nem gyakran nézel otthoni videókat, csak néhány havonta. A családom összesen körülbelül 20 óra forgalmat generált egy év alatt, de a szerver éjjel-nappal működött. Havi 15 dollárt fizettem egy szerverért, amely az esetek 99,7%-ában leállt.
2018 végén a Google kiadta a terméket . A gyilkos funkció olyan gyorsan futtatta a Docker-tárolókat, hogy az alkalmazás válaszolni tudott a HTTP-kérésekre. Vagyis a szerver készenléti módban maradhatott, és csak akkor indulhatott el, ha valaki hozzá akart érni. Az olyan ritkán futó alkalmazások esetében, mint az enyém, a költségek havi 15 dollárról évi néhány centre csökkentek.
Már nem emlékszem, hogy a Cloud Run nem működött a MediaGoblin-képemmel. De a Cloud Run megjelenésével ez eszembe jutott hasonló szolgáltatást kínál ingyenesen, és eszközeik sokkal felhasználóbarátabbak, mint a Google-é.
Az ingyenes alkalmazásszerverrel az egyetlen költség az adattárolás. A Google szabványos regionális tárhelye 2,3 cent/GB-ba kerül. A videoarchívum 33 GB-ot foglal el, így csak 77 centet fizetek havonta.

Ez a megoldás mindössze 0,77 dollárba kerül havonta
Tippek azoknak, akik szeretnének kipróbálni
Nyilvánvalóan sokáig tartott a folyamat. De remélem, hogy ez a cikk segít megspórolni az otthoni videók digitalizálásával és közzétételével kapcsolatos erőfeszítések 80-90%-át. Külön részben megtalálod az egész folyamat során, de íme néhány általános tipp:
- A digitalizálási és szerkesztési szakaszban a lehető legtöbb metaadatot őrizze meg.
- A videokazetta-címkékre gyakran értékes információkat rögzítenek.
- Kövesse nyomon, hogy melyik klip melyik szalagról készült és milyen sorrendben.
- Írja le a forgatás dátumát, amely megjelenhet a videón.
- Fontolja meg a professzionális digitalizálási szolgáltatások fizetését.
- Fogsz rendkívüli módon a digitalizálás minőségét tekintve nehéz és költséges összehozni őket.
- De maradjon távol az EverPresent nevű cégtől (üzenjen nekem, ha részletekre van szüksége).
- Ha saját maga végzi a digitalizálást, vásároljon HDD-t.
- Tömörítetlen normál felbontású videó 100-200 MB percenként.
- Mindent az enyémben tartottam (10 TB).
- Rögzítse a metaadatokat valamilyen általános formátumban, amely nincs egy adott alkalmazáshoz kötve.
- Klipleírások, időkódok, dátumok stb.
- Ha a metaadatokat alkalmazás-specifikus formátumban menti (vagy ami még rosszabb, egyáltalán nem menti el), akkor nem tudja újra elvégezni a munkát, ha más megoldás mellett dönt.
- Szerkesztés közben sok hasznos metaadatot lát a videón. Elveszíti őket, ha nem menti meg őket.
- Mi történik a videóban?
- Ki van ott regisztrálva?
- Ezt mikor rögzítették?
- Jelölje be kedvenc videóit.
- Őszintén szólva a legtöbb házi videó elég unalmas.
- A „best of” címkét felhelyezem a kedvenc klipjeimre, és megnyitom őket, amikor vicces videókat akarok nézni.
- Szervezzen meg egy átfogó megoldást a lehető legkorábban, hogy a folyamat az elejétől a végéig egyenesen menjen.
- Megpróbáltam először az összes szalagot digitalizálni, majd az összes szalagot szerkeszteni stb.
- Bárcsak egy szalaggal kezdtem volna, és minden munkát azzal végeztem volna. Akkor megérteném, hogy mely döntések és milyen szakaszokban befolyásolják a végeredményt.
- Tartsa minimálisra az átkódolást.
- Minden alkalommal, amikor szerkeszt vagy újrakódol egy klipet, rontja a minőségét.
- Digitalizálja nyers felvételeit maximális minőségben, majd minden klipet pontosan egyszer kódoljon át a böngészők által natívan megjelenített formátumba.
- Használja a lehető legegyszerűbb megoldást videoklipek közzétételére.
- Utólag visszatekintve a MediaGoblin túlságosan összetett eszköznek tűnik ahhoz a meglehetősen egyszerű forgatókönyvhöz, amikor egy statikus videofájlokból álló weboldalakat generál.
- Ha újrakezdeném, egy statikus webhelygenerátort használnék, mint pl , vagy .
- Végezze el a telepítést.
- A videószerkesztés szórakoztató módja annak, hogy több videó legjobb pillanatait ötvözze.
- A szerkesztésben a zene a legfontosabb. Például a téma elképesztő a The Nationalból ez az én személyes felfedezésem.
Forrás: will.com
