Videosisällön tuotanto on dataraskas työnkulku. Yksi Adstacker -projekti voi sisältää lähdekuvia, pikkukuvia, normalisoituja videoita, purettua ääntä, uudelleenkäytettäviä peittokuvia ja valmiita variaatioita. Tarvitsemme latauksia, jotka eivät ylikuormita sovelluspalvelinta, luotettavaa validointia, ennustettavia tulostussijainteja ja hylätyn työn siivousta.
Amazon S3 on kestävä aineistokerros tämän työnkulun takana. Adstacker käyttää sitä suurten tiedostojen siirtämiseen suoraan sisällöntuottajilta tallennustilaan, projektin jokaisen vaiheen järjestämiseen ja valmiiden videoiden asettamiseen ladattavaksi.
Haaste: videoaineisto lisääntyy nopeasti
Luova testaus antaa pienelle joukolle leikkeitä tuottaa monia variaatioita – ja luo aineistonhallintaongelman. Projekti voi alkaa houkutus-, sisältö- ja toimintakehotusmateriaaleilla, ja sitten tuottaa normalisoituja kopioita, ääntä, tekstityksellisiä peittokuvia, pikkukuvia ja lopullisia MP4- tai MOV-tulosteita.
Jokaisen tavun siirtäminen API:n kautta hidastaisi latauksia ja kuluttaisi palvelimen kaistanleveyttä. Epätarkat tiedostonimet tekisivät uudelleenyrityksistä vaikeita ja jättäisivät orvoiksi jääneitä aineistoja, kun sisällöntuottaja sulkee välilehden kesken latauksen.
Tallennustilan on oltava tarkoituksellinen osa tuotantoputkea.
Lähestymistapamme: S3 koko aineiston elinkaaren ajan
S3 on mukana projektin luomisesta lopulliseen lataukseen asti. Taustajärjestelmä hoitaa valtuutuksen, manifestit, validoinnin ja työn tilan; S3 hoitaa suuret objektit.
Arkkitehtuuri

Tämä jaottelu antaa mediatiedostoille suoran ja kestävän polun tallennustilaan.
1. Lataa suuret videot suoraan selaimesta
Kun sisällöntuottaja aloittaa projektin, Adstacker luo lähdevideon manifestin ja palauttaa ennalta allekirjoitetun S3 POST -pyynnön jokaiselle tiedostolle. Selain lähettää tiedoston suoraan S3:een sen sijaan, että välittäisi sen taustajärjestelmän kautta.
S3 valvoo allekirjoitettujen latausten rajoituksia: kiinteää sisältötyyppiä ja sallittua kokoluokkaa. Nämä pysäyttävät tyhjät tai ylisuuret lataukset ennen kuin ne saapuvat perille, kun taas lyhytikäinen pyyntö rajoittaa sitä, mitä selain voi ladata.
Jos istunto keskeytyy, Adstacker myöntää uudet URL-osoitteet odottaville videoille. Se tarkistaa myös S3:n jatkamisen aikana, joten objekti, joka jäi ilman valmistumiskutsumista, voidaan silti täsmäyttää ja validoida.
2. Varmista saapuneen tiedon oikeellisuus ennen sen käsittelyä
Latauksen valmistuminen selaimessa ei riitä renderöinnin aloittamiseen. Taustajärjestelmä käyttää S3 HEAD -toimintoa objektin vahvistamiseen, sen koon ja ETagin lukemiseen sekä ETagin tallentamiseen validoidun videon kanssa.
Seuraavaksi Adstacker lataa objektin väliaikaisesti FFprobe-validointia varten. Varmistamme, että se on luettavissa ja että kesto sekä todellinen resoluutio vastaavat projektin vaatimuksia. Virheelliset tiedostot saavat hyödyllisen hylkäämissyyn ja poistetaan; tilapäiset lukuvirheet jättävät objektin paikoilleen uudelleenyritystä varten.
Jokainen video käy läpi selkeän elinkaaren: odottaa, latautuu, ladattu, validoidaan, validoitu tai hylätty. Projekti etenee vasta, kun kaikki odotetut aineistot on validoitu, ja atomiset päivitykset estävät kaksoiskutsumisia laskemasta videota kahdesti.
3. Tee jokaisesta tulosteesta ennustettava ja uudelleenkäytettävä
Adstacker käyttää deterministisiä S3-polkuja, jotka perustuvat projektiin, aineiston tyyppiin, kategoriaan ja variaatioon. Normalisoidut mediatiedostot ja purettu ääni sijaitsevat erillään renderöidyistä peittokuvista ja lopullisista yhdistelmistä.
Tämä organisointi auttaa putkea kolmella tavalla:
- Suora haku: Työntekijät löytävät tasan projektin ja variaation kanssa yhdistetyt syötteet tai tulosteet.
- Tehokas uudelleenkäyttö: Uudelleenkäytettävät peittokuvat tallennetaan kerran ja ne voivat tukea useampaa kuin yhtä lopullista yhdistelmää.
- Idempotenttiset uudelleenyritykset: Uudelleenyritys kirjoittaa samaan odotettuun avaimeen, välttäen kasvavaa jälkeä päällekkäisistä viennistä.
Lopulliset videotietueet säilyttävät S3-avaimet ja URL-osoitteet tulosteita, pikkukuvia ja – tarvittaessa – MOV-varianttia varten. Sovellus voi sitten tarjota valmiin formaatin.
4. Tarjoa pääsy turvallisesti ja siivoa keskeneräinen työ
S3-säiliö on yksityinen. Adstacker antaa aikarajoitettuja allekirjoitettuja lataus-URL-osoitteita, valinnaisesti lataustiedostonimen kanssa, joten aineistoja ei tarvitse julkaista.
Jokaisesta latauksesta ei tule valmista projektia. Aikataulutettu siivous tunnistaa vanhat keskeneräiset projektit ja poistaa niiden jäljellä olevat S3-lähdeobjektit. Hylätyt lataukset poistetaan välittömästi validointivirheen jälkeen.
Nämä elinkaarisäännöt rajoittavat hylättyä tallennustilaa samalla kun ne säilyttävät projektihistorian.
Reaalimaailman esimerkki: keskeytynyt lataus ei tarkoita alusta aloittamista
Kuvittele, että markkinoija lataa kuusi leikettä ja sulkee selaimen sen jälkeen, kun neljä niistä on saapunut S3:een. Palattuaan Adstacker palauttaa latausistunnon ja tarjoaa uusia ennalta allekirjoitettuja pyyntöjä keskeneräisille leikkeille. Se tarkistaa myös, onko tiedosto saapunut S3:een, vaikka sen valmistumiskutsuminen olisi kadonnut.
Kun kaikki kuusi tiedostoa on varmistettu ja validoitu, projekti siirtyy käsittelyyn. Lähteet, valmistellut mediatiedostot, peittokuvat, pikkukuvat ja lopulliset variaatiot pysyvät järjestettyinä tunnettujen avainten alla jokaista myöhempää vaihetta varten.
Luovaan nopeuteen suunniteltu tallennustila
Amazon S3 antaa Adstackerin käsitellä videoaineistoja hallittuna elinkaarena: lataa suoraan, tarkista objekti, validoi media, luo ennustettavat tulosteet, valtuuta lataukset ja siivoa keskeneräinen työ. Tämä antaa luovan putken keskittyä leikkeiden muuntamiseen testattaviksi variaatioiksi.
Lataa aineistosi Adstackeriin, rakenna haluamasi yhdistelmät testattavaksi ja anna alustan hallita tallennustyönkulkua jokaisen renderöinnin takana.
Teknologiapino: Amazon S3 · AWS SDK for JavaScript · Presigned S3 POSTs · NestJS · FFprobe · AWS ECS Fargate · MongoDB
Lue lisää tiimiltämme
1. Export Service vs. Video Editor Pipeline

