Kun käyttäjä lataa videon Adstackeriin, he odottavat yhtä asiaa: heidän klippiensä tulisi muuttua hiotuiksi mainosvariaatioiksi ilman hämmentävää odotusta, rikkinäistä vientiä tai tekstityksiä, jotka menevät epäsynkroniin. Tämän yksinkertaisen työnkulun taustalla on tarkoituksellisesti vaiheistettu tekoälypohjainen videoputki. Varmistamme jokaisen resurssin ennen kuin se pääsee projektiin, muutamme puheen kehystarkaksi tekstitysdatan, sitten renderöimme uudelleenkäytettäviä luovia komponentteja ennen lopullisten variaatioiden kokoamista.
Näin Adstacker käsittelee käyttäjien videoita — latauksesta vientiin — ja miksi arkkitehtuuri on suunniteltu luotettavaa luovaa volyymia varten.
Haaste: videoiden syötteet eivät ole oletuksena tuotantovalmiita
Videotiedostot voivat näyttää samanlaisilta tiedostonvalitsimessa, mutta käyttäytyvät hyvin eri tavoin renderöintiputkessa. Klipillä voi olla odottamaton kesto, matala resoluutio, puhelimen kamerasta peräisin oleva kiertolippu tai ei lainkaan käyttökelpoista videovirtaa. Jos havaitsemme nämä ongelmat projektin renderöinnin alkamisen jälkeen, käyttäjät menettävät aikaa ja laskentatehoa tuhlataan.
Tekstitykset tuovat toisen haasteen. Pelkkä transkriptio ei riitä sosiaaliseen mainokseen. Tekstin on oltava sanatasolla ajoitettua, jotta se ilmestyy puhujan kanssa, pysyy luettavana eikä koskaan mene päällekkäin seuraavan rivin kanssa.
Lopuksi, Adstacker on rakennettu luomaan monia yhdistelmiä pienestä joukosta resursseja. Identtisten tekstitysklippien uudelleenrenderöinti jokaiselle koukulle, rungolle, CTA:lle ja tekstitystyylin yhdistelmälle olisi tarpeettoman hidasta ja kallista.
Ratkaisumme: vaiheistettu putki selkeillä vastuilla
Erotamme validoinnin, transkription, päällekkäisyyksien renderöinnin ja lopullisen kokoamisen. Jokainen vaihe tuottaa kestävän tuloksen, jota seuraava vaihe voi käyttää, mikä mahdollistaa järjestelmän yrittää epäonnistunutta vaihetta uudelleen ilman, että koko projektia tarvitsee aloittaa alusta.
Arkkitehtuuri

1. FFprobe havaitsee huonot syötteet ennen projektin alkua
Ennen kuin Adstacker sitoutuu ladattuihin klippeihin projektissa, se suorittaa FFproben — kevyen median tarkastustyökalun — jokaiselle tiedostolle. Luemme yksityiskohdat, jotka ovat tärkeitä luotettavan lopputuloksen kannalta:
- Todellinen videovirta on läsnä.
- Kesto on projektin sallimassa rajassa.
- Tehokas resoluutio täyttää vähimmäislaatuvaatimuksemme eikä ylitä määritettyä maksimia.
- Kuvanopeus on saatavilla ajoituslaskelmia varten.
- Näyttösuunta on oikea, mukaan lukien puhelinvideot, joiden kierto on metatiedoissa pikselimittojen sijaan.
Tämä on nopea virheiden havaitsemisportti. Jos resurssi ei tuota luotettavaa mainosta, luoja saa hyödyllisen viestin ennen renderöinnin alkamista. Se myös antaa meille mahdollisuuden valita rajattu perusresoluutio projektille, jotta alavirran työntekijät toimivat ennustettavalla kanvaasilla sen sijaan, että käsittelisivät jokaisen raakatiedoston koon itsenäisesti.
2. AssemblyAI muuttaa puheen käyttökelpoiseksi tekstitysaikatauluksi
Tekstityksiä käyttävissä projekteissa lähetämme lähdeäänen AssemblyAI:lle ja saamme enemmän kuin pelkän tekstilohkon: saamme yksittäisiä sanoja alku- ja loppuaikaleimoilla. Nämä aikaleimat ovat silta puhuttujen kielten ja visuaalisen ajoituksen välillä.
Normalisoimme ajoituksen sekunneiksi, muutamme sen kehyksiksi projektin tavoitekuvataajuudella ja ryhmitämme sanat lyhyiksi tekstityspätkiksi. Ryhmittely on tarkoituksellista: uusi tekstitys alkaa merkityksellisen tauon jälkeen tai kun nykyinen rivi saavuttaa luettavan pituuden. Lisäksi puristamme vierekkäisiä pätkiä niin, että vain yksi on näkyvissä kussakin kehyksessä, vaikka lähdesanojen ajoitukset menevät päällekkäin.
Tuloksena on tekstitystiedot, jotka ovat tiiviitä, kehystietoisia ja valmiita valitulle visuaaliselle tyylille — ei geneeristä transkriptiota, joka on liitetty videoon.
3. Renderöi jaetut päällekkäisyydet kerran, sitten käytä niitä uudelleen
Luovan mittakaavan avain on välttää päällekkäistä työtä. Adstacker-projekti voi yhdistää saman koukkuklipin moniin runkoklippeihin, CTA:ihin, tekstikerroksiin ja tekstitystyyleihin. Renderöimme tekstityksen tai tekstikerroksen kerran jokaista ainutlaatuista reseptiä varten, sen sijaan että tekisimme sen kerran jokaiselle lopulliselle yhdistelmälle, joka sattuu käyttämään sitä. Tämä peilaa automatisoitua tekstityslähestymistapaa, jonka rakensimme Ssemblelle, lyhytmuotoisen videon luontialustalle portfoliostamme.
Päällekkäisyystyöntekijä vastaanottaa valmistetun lähdevideon, kohdekuvasuhteen, mukautetut tekstikerrokset ja tekstityspätkät. Se renderöi visuaalisen käsittelyn johdonmukaiselle kanvaasille ja tallentaa valmiin päällekkäisyyden uudelleenkäytettävänä resurssina. Lopullinen yhdistämisvaihe valitsee sitten oikeat koukku-, runko- ja CTA-päällekkäisyydet ja kokoaa valmiin variaation.
Tämä jako antaa meille kaksi käytännön hyötyä:
- Uudelleenkäyttö vähentää renderöintityötä kun monet yhdistelmät jakavat samat rakennuspalikat.
- Itsenäiset uudelleenyritykset mahdollistavat yhden päällekkäisyyden tai yhden lopullisen yhdistämisen epäonnistumisen korjaamisen ilman, että valmista työtä tarvitsee hylätä.
Reaaliaikainen esimerkki: yksi tuotekuvaus, kymmeniä testattavia mainoksia
Kuvittele, että ihonhoitobrändi lataa kolme koukkua, kaksi tuotedemonstraatiota ja kaksi CTA:ta. Se valitsee myös kaksi tekstitystyyliä. Luovat mahdollisuudet lisääntyvät nopeasti, mutta useat lopulliset videot käyttävät samaa lähdesegmenttiä ja tekstityskäsittelyä uudelleen.
Adstacker validoi kaikki seitsemän klippiä etukäteen, ottaa huomioon mahdolliset pystysuuntaiset metatiedot ja rakentaa ajoitetut tekstityspätkät jokaisesta puhutusta segmentistä. Se luo sitten jokaisen tarvittavan päällekkäisyyden kerran. Kun lopulliset yhdistelmät kootaan, järjestelmä käyttää näitä valmistettuja osia uudelleen sen sijaan, että loisi ne uudelleen toistuvasti.
Brändi saa johdonmukaisen sarjan valmiita testattavia mainoksia, kun taas putki tekee vain välttämättömän työn niiden luomiseksi.
Rakennettu luotettavaa luovaa volyymia varten
Adstackerissa videonkäsittely ei ole yksi läpinäkymätön “renderöi” -painike. Se on sarja keskittyneitä vaiheita: validoi lähde, ymmärrä puhe, renderöi uudelleenkäytettävät kerrokset ja kokoa lopullinen luova. Tämä rakenne auttaa meitä suojaamaan laatua latauksessa, pitämään tekstitykset synkronissa ja skaalaamaan variaatioita ilman, että jätteet skaalautuvat, toimien pilvi-infrastruktuurilla, joka on rakennettu joustaville, kontitetuille työkuormille.
Lataa videoresurssisi, valitse testattavat luovat rakennuspalikat ja anna Adstackerin hoitaa tuotantoputki kulissien takana.
Teknologiakokonaisuus: NestJS · FFprobe · AssemblyAI · AWS S3 · AWS ECS Fargate · Remotion · FFmpeg · MongoDB
Lue lisää tiimiltämme
1. Export Service vs. Video Editor Pipeline

