Azma yangu ya miaka minane ya kuweka kidijitali kaseti 45 za video. Sehemu 2

Sehemu ya kwanza inaelezea jitihada ngumu ya kuweka kidijitali video za zamani za familia na kuzigawa katika matukio tofauti. Baada ya kuchakata klipu zote, nilitaka kupanga utazamaji wao mtandaoni kwa urahisi kama kwenye YouTube. Kwa kuwa hizi ni kumbukumbu za kibinafsi za familia, haziwezi kuchapishwa kwenye YouTube yenyewe. Tunahitaji upangishaji wa faragha zaidi ambao ni rahisi na salama.

Hatua ya 3. Chapisha

ClipBucket, chanzo huria cha YouTube ambacho unaweza kusakinisha kwenye seva yako mwenyewe

Kwanza kabisa nilijaribu ClipBucket, ambayo hujiita chanzo huria cha YouTube ambacho unaweza kusakinisha kwenye seva yako.

Azma yangu ya miaka minane ya kuweka kidijitali kaseti 45 za video. Sehemu 2

Kwa kushangaza, ClipBucket haina maagizo yoyote ya usakinishaji. Shukrani kwa usimamizi wa nje я otomatiki mchakato wa ufungaji na msaada Inawezekana, zana ya usimamizi wa usanidi wa seva.

Sehemu ya ugumu ilikuwa kwamba hati za usakinishaji za ClipBucket zilivunjwa kabisa. Wakati huo mimi alifanya kazi katika Google na chini ya masharti ya mkataba sikuwa na haki ya kuchangia kampuni huria ya YouTube, lakini mimi alichapisha ripoti ya mduduambayo ilikuwa rahisi kufanya marekebisho muhimu. Miezi ilipita, na bado hawakuelewa shida ni nini. Badala yake, waliongeza kila kitu zaidi ya mende katika kila toleo.

ClipBucket ilifanya kazi kwenye modeli ya ushauri - walitoa msimbo wao bila malipo na kutozwa kwa usaidizi wa kupeleka. Hatua kwa hatua ilinijia kwamba kampuni inayotengeneza pesa kutokana na usaidizi unaolipwa labda haipendezwi sana na wateja wa kusakinisha bidhaa wenyewe.

MediaGoblin, mbadala wa kisasa zaidi

Baada ya miezi michache ya kufadhaika na ClipBucket, nilipitia chaguzi zinazopatikana na nikapata vyombo vya habari goblin.

Azma yangu ya miaka minane ya kuweka kidijitali kaseti 45 za video. Sehemu 2
vyombo vya habari goblin ni jukwaa la pekee la kushiriki midia

MediaGoblin ina mambo mengi mazuri. Tofauti na ClipBucket katika PHP isiyopendeza, MediaGoblin imeandikwa kwa Python, lugha ambayo nina uzoefu mwingi wa kuandika nambari nayo. Kula kiolesura cha mstari wa amri, ambayo hurahisisha upakuaji wa video kiotomatiki. Muhimu zaidi, MediaGoblin inakuja Picha ya Docker, ambayo huondoa matatizo yoyote na ufungaji.

Docker ni teknolojia inayounda mazingira ya kujitosheleza kwa programu ambayo inafanya kazi popote. Ninatumia Docker ndani miradi yangu mingi.

Ugumu wa Kushangaza wa Redockerizing MediaGoblin

Nilidhani kuwa kupeleka picha ya kizimbani cha MediaGoblin itakuwa kazi ndogo. Naam, haikufanya kazi kwa njia hiyo.

Picha iliyokamilishwa haikuwa na kazi mbili muhimu:

  • Uthibitishaji
    • MediaGoblin huunda tovuti ya media ya umma kwa chaguo-msingi, na nilihitaji njia ya kuzuia ufikiaji wa watu wa nje.
  • Kubadilisha msimbo
    • Kila wakati unapopakia video, MediaGoblin inajaribu kusimba upya kwa utiririshaji bora zaidi. Ikiwa video iko tayari kutiririshwa, kubadilisha msimbo kunashusha ubora.
    • MediaGoblin Inatoa inalemaza upitishaji msimbo kupitia chaguo za usanidi, lakini haiwezekani kufanya hivyo katika picha iliyopo ya Docker.

Naam, hakuna tatizo. Picha ya Docker inakuja na chanzo wazi, hivyo unaweza jenga upya wewe mwenyewe.

Kwa bahati mbaya, picha ya Docker haijajengwa tena kutoka kwa sasa Hifadhi ya MediaGoblin. Nilijaribu kuisawazisha na toleo kutoka kwa ujenzi uliofanikiwa mwisho, lakini hiyo haikufanya kazi pia. Ingawa nilitumia nambari sawa, utegemezi wa nje wa MediaGoblin ulibadilika, ukivunja muundo. Masaa kadhaa baadaye, niliendesha mchakato wa ujenzi wa MediaGoblin wa dakika 10-15 tena na tena hadi ukafanya kazi.

Jambo hilo hilo lilifanyika miezi michache baadaye. Kwa jumla, katika miaka michache iliyopita, mnyororo wa utegemezi wa MediaGoblin umevunja muundo wangu mara kadhaa, na mara ya mwisho ilifanyika ni wakati tu nilikuwa nikiandika nakala hii. Niliishia kupost uma mwenyewe wa MediaGoblin c utegemezi wa nambari ngumu na matoleo ya maktaba yaliyobainishwa waziwazi. Kwa maneno mengine, badala ya madai ya shaka kwamba MediaGoblin inafanya kazi na toleo lolote celery >= 3.0, niliweka utegemezi maalum wa toleo celery 4.2.1, kwa sababu nilijaribu MediaGoblin na toleo hili. Inaonekana kama bidhaa inahitaji utaratibu wa kujenga unaoweza kuzaa tenalakini bado sijaifanya.

Kwa hivyo, baada ya masaa mengi ya mapambano, hatimaye niliweza kujenga na kusanidi MediaGoblin katika picha ya Docker. Ilikuwa tayari rahisi ruka upitishaji msimbo usio wa lazima ΠΈ sasisha Nginx kwa uthibitishaji.

Hatua ya 4. Kukaribisha

Kwa kuwa MediaGoblin ilikuwa ikiendesha Docker kwenye mashine yangu ya karibu, hatua iliyofuata ilikuwa kupeleka kwenye seva ya wingu ili familia iweze kutazama video.

MediaGoblin na tatizo la kuhifadhi video

Kuna majukwaa mengi ambayo huchukua picha ya Docker na kuiweka kwenye URL ya umma. Kukamata ni kwamba pamoja na programu yenyewe, GB 33 za faili za video zilipaswa kuchapishwa. Iliwezekana kuziweka kwa bidii kwenye picha ya docker, lakini ikawa ngumu na mbaya. Kubadilisha mstari mmoja wa usanidi kungehitaji kutumwa tena kwa GB 33 za data.

Nilipotumia ClipBucket, nilitatua tatizo na gcsfuse - matumizi ambayo huruhusu mfumo wa uendeshaji kupakia saraka kwenye hifadhi ya wingu ya Google kama njia za kawaida za mfumo wa faili. Nilikaribisha faili za video kwenye Wingu la Google na nikatumia gcsfuse kuzionyesha kama faili za kawaida kwenye ClipBucket.

Tofauti ilikuwa kwamba ClipBucket iliendesha mashine halisi, wakati MediaGoblin iliendesha kwenye kontena la Docker. Hapa, kuweka faili kutoka kwa hifadhi ya wingu iligeuka kuwa ngumu zaidi. Nilitumia masaa kadhaa kutatua shida zote na niliandika juu yake chapisho zima la blogi.

Azma yangu ya miaka minane ya kuweka kidijitali kaseti 45 za video. Sehemu 2
Muunganisho wa awali wa MediaGoblin na hifadhi ya Wingu la Google, ambayo I aliiambia mwaka 2018

Baada ya wiki kadhaa za kurekebisha vipengele vyote, kila kitu kilifanya kazi. Bila kufanya mabadiliko yoyote kwa msimbo wa MediaGoblin, ninadanganya ili niisome na kuandika faili za midia kwenye hifadhi ya wingu ya Google.

Shida pekee ilikuwa kwamba MediaGoblin ilianza kufanya kazi kwa adabu polepole. Ilichukua sekunde 20 kupakia vijipicha vya video kwenye ukurasa wa nyumbani. Ikiwa uliruka mbele wakati wa kutazama video, MediaGoblin ilisitisha kwa sekunde 10 kabla ya kuanza kucheza tena.

Shida kuu ilikuwa kwamba video na picha zilikwenda kwa mtumiaji kwa njia ndefu, ya kuzunguka. Ilibidi watoke kwenye hifadhi ya wingu ya Google kupitia gcsfuse hadi MediaGoblin, Nginx - na ndipo walipoingia kwenye kivinjari cha mtumiaji. Shida kuu ilikuwa gcsfuse, ambayo haijaboreshwa kwa utendakazi wa haraka. Wasanidi programu wanaonya kuhusu ucheleweshaji mkubwa wa matumizi kwenye ukurasa kuu wa mradi:

Azma yangu ya miaka minane ya kuweka kidijitali kaseti 45 za video. Sehemu 2
Tahadhari kuhusu utendaji mbovu katika nyaraka za gcsfuse

Kwa kweli, kivinjari kinapaswa kuvuta faili moja kwa moja kutoka kwa Wingu la Google, kupita tabaka zote za kati. Ninawezaje kufanya hivi bila kuingia ndani kabisa ya MediaGoblin codebase na kuongeza mantiki tata ya ujumuishaji wa Wingu la Google?

sub_filter hila katika nginx

Kwa bahati nzuri nilipata suluhisho rahisi ingawa kidogo mbaya. Niliongeza kwenye usanidi wa default.conf katika Nginx chujio kama hicho:

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

Katika usanidi wangu, Nginx ilifanya kama wakala kati ya MediaGoblin na mtumiaji wa mwisho. Maagizo hapo juu yanaiambia Nginx kutafuta na kubadilisha majibu yote ya HTML ya MediaGoblin kabla ya kuwapa mtumiaji wa mwisho. Nginx inachukua nafasi ya njia zote za jamaa kwa faili za media za MediaGoblin na URL kutoka kwa hifadhi ya wingu ya Google.

Kwa mfano, MediaGoblin inazalisha HTML hii:

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

Nginx inabadilisha majibu:

<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>

Sasa kila kitu kinafanya kazi kama inavyopaswa:

Azma yangu ya miaka minane ya kuweka kidijitali kaseti 45 za video. Sehemu 2
Nginx huandika upya majibu kutoka kwa MediaGoblin ili wateja waweze kuomba faili za midia moja kwa moja kutoka kwa hifadhi ya wingu ya Google

Sehemu bora zaidi kuhusu suluhisho langu ni kwamba haihitaji mabadiliko yoyote kwa msimbo wa MediaGoblin. Maagizo ya mistari miwili ya Nginx huunganisha kwa urahisi MediaGoblin na Google Cloud, ingawa huduma hizi mbili hazijui chochote kuhusu zingine.

Kumbuka: Suluhisho hili linahitaji faili zilizo katika Hifadhi ya Wingu la Google ili zisomeke na kila mtu. Ili kupunguza hatari ya ufikiaji usioidhinishwa, mimi hutumia jina refu la ndoo (kwa mfano, mediagoblin-39dpduhfz1wstbprmyk5ak29) na uthibitishe kuwa sera ya udhibiti wa ufikiaji wa ndoo hairuhusu watumiaji wasioidhinishwa kuonyesha yaliyomo kwenye saraka.

Bidhaa ya mwisho

Kwa wakati huu, nilikuwa na suluhisho kamili, la kufanya kazi. MediaGoblin iliendesha kwa furaha katika chombo chake kwenye Google Cloud Platform kwa hivyo haikuhitaji kuwekewa viraka au kusasishwa mara kwa mara. Kila kitu katika mchakato wangu kilijiendesha kiotomatiki na kuzalishwa tena, ikiruhusu uhariri rahisi au urejeshaji nyuma kwa matoleo ya awali.

Familia yangu ilipenda sana jinsi ilivyo rahisi kutazama video. Kwa usaidizi wa utapeli wa Nginx ulioelezewa hapo juu, kufanya kazi na video ikawa haraka kama kwenye YouTube.

Skrini ya kutazama inaonekana kama hii:

Azma yangu ya miaka minane ya kuweka kidijitali kaseti 45 za video. Sehemu 2
Yaliyomo kwenye orodha ya video za familia kwa lebo "Bora"

Kubofya kijipicha huleta skrini ifuatayo:

Azma yangu ya miaka minane ya kuweka kidijitali kaseti 45 za video. Sehemu 2
Kuangalia klipu ya mtu binafsi kwenye seva ya midia

Baada ya miaka mingi ya kazi, nilifurahiya sana kuwapa jamaa fursa ya kutazama video zetu katika kiolesura kinachofaa kama kwenye YouTube, ambacho nilitaka hapo awali.

Bonasi: Kupunguza gharama hadi chini ya $1 kwa mwezi

Hutazama video za nyumbani mara kwa mara, kila baada ya miezi michache. Familia yangu kwa pamoja ilizalisha takriban saa 20 za trafiki kwa mwaka, lakini seva ilikuwa ikifanya kazi 15/99,7. Nililipa $XNUMX kila mwezi kwa seva ambayo ilikuwa chini XNUMX% ya wakati huo.

Mwishoni mwa 2018, Google ilitoa bidhaa Cloud Run. Kipengele cha muuaji kilikuwa kikiendesha vyombo vya Docker haraka sana kwamba programu inaweza kujibu maombi ya HTTP. Hiyo ni, seva inaweza kubaki katika hali ya kusubiri - na kuanza tu wakati mtu alitaka kwenda kwake. Kwa programu zinazoendeshwa mara chache kama yangu, gharama zimepanda kutoka $15 kwa mwezi hadi senti chache kwa mwaka.

Kwa sababu ambazo sikumbuki, Cloud Run haikufanya kazi na picha yangu ya MediaGoblin. Lakini pamoja na ujio wa Cloud Run, nilikumbuka hilo Heroku hutoa huduma sawa bila malipo, na zana zao ni rahisi zaidi kuliko za Google.

Ukiwa na seva ya programu ya bure, gharama pekee ni kuhifadhi data. Hifadhi ya kawaida ya kikanda ya Google inagharimu senti 2,3/GB. Kumbukumbu ya video ni GB 33, kwa hivyo mimi hulipa senti 77 pekee kwa mwezi.

Azma yangu ya miaka minane ya kuweka kidijitali kaseti 45 za video. Sehemu 2
Suluhisho hili linagharimu $0,77 tu kwa mwezi

Vidokezo kwa wale ambao watajaribu

Kwa wazi, mchakato huo ulinichukua muda mrefu. Lakini natumai nakala hii itakusaidia kuokoa 80-90% ya uboreshaji wa dijiti wa video ya nyumbani na juhudi za uchapishaji. Katika sehemu tofauti unaweza kupata mwongozo wa kina wa hatua kwa hatua katika mchakato mzima, lakini hapa kuna vidokezo vya jumla:

  • Hifadhi metadata nyingi iwezekanavyo wakati wa awamu ya kuweka dijiti na kuhariri.
    • Taarifa muhimu mara nyingi hurekodiwa kwenye lebo za kaseti za video.
    • Rekodi ni klipu gani ilichukuliwa kutoka kwa kaseti gani na kwa utaratibu gani.
    • Andika tarehe ya kupigwa risasi, ambayo inaweza kuonyeshwa kwenye video.
  • Zingatia kulipia huduma za kitaalamu za kuweka kidijitali.
    • Wewe sana ni vigumu na ghali kuzilinganisha katika suala la ubora wa dijiti.
    • Lakini kaa mbali na kampuni inayoitwa EverPresent (nijulishe ikiwa unahitaji maelezo zaidi).
  • Ikiwa unafanya digitalization mwenyewe, nunua HDD.
    • Video ya ufafanuzi wa kawaida ambayo haijabanwa inachukua MB 100-200 kwa dakika.
    • Niliweka kila kitu kwangu Sayansi DS412 + (TB 10).
  • Andika metadata katika umbizo la kawaida ambalo halifungamani na programu mahususi.
    • Maelezo ya klipu, misimbo ya saa, tarehe, n.k.
    • Ukihifadhi metadata katika umbizo maalum la programu (au mbaya zaidi, usihifadhi kabisa), hutaweza kufanya kazi tena ikiwa utaamua kutumia suluhisho lingine.
    • Wakati wa kuhariri, unaona metadata nyingi muhimu kwenye video. Utazipoteza usipozihifadhi.
      • Ni nini kinaendelea kwenye video?
      • Nani amesajiliwa hapo?
      • Ilirekodiwa lini?
  • Tagi video zako uzipendazo.
    • Kusema kweli, maudhui mengi ya video za nyumbani yanachosha sana.
    • Mimi huweka lebo ya "bora zaidi" kwenye klipu ninazozipenda na kuzifungua ninapotaka kutazama video za kuchekesha.
  • Panga suluhisho la kina mapema iwezekanavyo ili mchakato uende mara moja kutoka mwanzo hadi mwisho.
    • Nilijaribu kuweka kaseti zote kuwa dijitali kwanza, kisha kuhariri kaseti zote, nk.
    • Bahati mbaya sana sikuanza na kaseti moja na kufanya kazi zote nayo. Kisha ningeelewa ni maamuzi gani na kwa hatua gani yanaathiri matokeo ya mwisho.
  • Punguza uandikaji upya.
    • Kila wakati unapohariri au kusimba upya klipu, unaharibu ubora wake.
    • Weka tarakimu mbichi katika ubora wa juu zaidi, kisha upitishe kila klipu mara moja katika umbizo ambalo vivinjari hucheza kienyeji.
  • Tumia suluhisho rahisi zaidi kwa kuchapisha klipu za video.
    • Kwa mtazamo wa nyuma, MediaGoblin inaonekana kama zana ngumu sana kwa hali rahisi ya kutengeneza kurasa za wavuti na seti tuli ya faili za video.
    • Ikiwa ningeanza tena, ningetumia jenereta ya tovuti tuli kama vile Hugo, Jekyll au Gridsome.
  • Tengeneza montage.
    • Kuhariri video ni njia ya kufurahisha ya kuchanganya matukio bora kutoka kwa video nyingi.
    • Jambo kuu katika kuhariri ni muziki. Kwa mfano, mada ni ya kushangaza Theluji Polepole kutoka kwa The National, huu ni ugunduzi wangu binafsi.

Chanzo: mapenzi.com