Sari la conținut
megapromotingHai să discutăm

Expertiză · Video și conținut cu AI

Clipuri scurte construite din HTML, cu voce sintetizată și cu licența fiecărui element pe hârtie.

Producem clipuri de promovare și seturi de vizualuri folosind unelte de generare — voce sintetizată, imagini, compoziții animate randate din HTML. Fiecare element care intră în cadru are o sursă și o licență scrise, iar sonorul se măsoară, nu se aproximează.

Construit dejaSunt materiale livrate, pe disc, pe care le-am măsurat azi cu unelte, nu le-am citit dintr-un raport. Un set de patru clipuri de 30 de secunde fix (două limbi × două formate) pentru o platformă proprie, un al doilea set de patru clipuri de introducere, o compoziție proprie randată în șapte variante pentru promovarea companiei, și două runde de vizualuri statice de campanie pentru un operator de transport. Am reverificat sonorul unuia dintre clipuri cu `ffmpeg … ebur128`: −16,2 LUFS integrat, vârf real −1,8 dBTP — exact cifrele din documentul intern, ceea ce nu se întâmplă de fiecare dată. Corecție importantă față de propriul nostru inventar: `hyperframes` NU este codul nostru. E clona depozitului public al altei companii, sub licență Apache 2.0, fără niciun commit al nostru. E unealta cu care lucrăm; realizările sunt compozițiile și randările, nu unealta.

Un clip de treizeci de secunde are trei feluri de a se strica, și doar unul se vede la prima vizionare. Se strică vizual — asta observă toată lumea. Se strică sonor, și atunci clipul e mai tare sau mai încet decât tot ce e în jurul lui pe rețeaua unde ajunge, ceea ce se observă abia după publicare. Și se strică juridic, ceea ce nu se observă niciodată, până în ziua în care se observă. Lucrăm pe toate trei, iar pe ultimele două avem procedură scrisă, nu bunăvoință.

Compunerea se face în HTML, nu într-un editor. O compoziție este un document cu piste și clipuri, fiecare cu momentul de start și durata scrise ca atribute — de exemplu un clip care începe la secunda 8,4 și ține 5,0 secunde, cu suprapunere intenționată peste cel dinainte pentru trecere. Consecința practică e că un clip se poate reface identic: aceleași atribute, același rezultat, iar o corecție de text nu cere refacerea manuală a montajului. Randarea din compoziția noastră de promovare a ieșit la 1920×1080, 60 de cadre pe secundă, 1200 de cadre, exact 20,000000 secunde — cifre citite din fișier, nu din brief.

Vocea este sintetizată, cu setări scrise în scenariu împreună cu textul, ca o refacere să sune identic: model multilingv, stabilitate, asemănare, stil și viteză notate ca valori, nu ca impresii. Textul e calibrat pe durată înainte de generare — un clip de treizeci de secunde suportă în jur de șaizeci și cinci de cuvinte în română, iar dacă scenariul are optzeci, se taie textul, nu se accelerează vocea. Sonorul final se normalizează în două treceri către o țintă și se măsoară după aceea pe fișierul livrat: cele patru clipuri ale unui set recent stau la −16,2 și −15,9 LUFS, cu vârf real −1,8 dBTP.

Regula pe care o ținem și care se vede clar în dosarul de licențe al unui set livrat: nimic din clip nu are o licență pe care să nu o putem arăta. Patul muzical și efectele sonore au fost sintetizate local cu `ffmpeg` — cinci oscilatoare sinusoidale cu filtru trece-jos pentru muzică, zgomot roz filtrat pentru efectul de trecere, impuls de 1500 Hz cu anvelopă exponențială pentru clic — tocmai pentru că un sunet făcut de noi are o licență demonstrabilă, iar un fișier „gratis” de pe o pagină care nu spune sub ce condiții, nu. Ramele de telefon și de laptop sunt desenate în SVG, nu fotografii de produs. Capturile sunt ale platformei noastre, făcute automat pe o versiune de producție locală. Fontul e autogăzduit, sub licență deschisă pentru fonturi.

Ce cuprinde

Lucrarea, pe componente

Scenariu cu timpi, calibrat pe durată înainte de generare

Tabel de scene cu intervale și textul rostit pentru fiecare, plus ținta de ritm. Textul brut pentru sinteză se scrie separat, într-un singur bloc, iar pauzele le dă punctuația. Dacă textul depășește durata, se scurtează textul — accelerarea vocii se aude, iar un clip care sună grăbit pierde exact ce trebuia să câștige.

Compoziție în HTML, cu piste și clipuri cu timpi scriși

Fiecare clip are start și durată ca atribute, iar suprapunerile pentru treceri sunt intenționate și vizibile în sursă. Compoziția noastră de promovare are cinci clipuri pe pista principală și indici de pistă separați pentru elementele care merg peste, într-o linie de timp de douăzeci de secunde. Un montaj scris se poate reface identic; unul făcut cu mâna, nu.

Randare la parametri verificabili

Ultima randare a compoziției proprii, măsurată cu `ffprobe`: H.264, 1920×1080, 60/1 cadre pe secundă, 1200 de cadre, 20,000000 secunde. Nu „aproximativ douăzeci de secunde” — exact, pentru că numărul de cadre e întreg și rezultă din compoziție.

Voce sintetizată cu setări notate în scenariu

Model multilingv care suportă româna, cu stabilitate, asemănare, stil și viteză scrise ca valori lângă text. Aceleași setări dau aceeași voce peste trei luni, când cineva cere o variantă cu o frază schimbată. Pentru rusă folosim o voce separată, aleasă pentru limbă, nu tradusă cu aceeași.

Sonor măsurat, nu estimat

Normalizare în două treceri către o țintă de sonoritate, apoi măsurare pe fișierul livrat cu standardul european de sonoritate. Valorile pentru un set recent: −16,2 și −15,9 LUFS integrat, vârf real −1,8 dBTP, interval dinamic 10,5 LU. Audio AAC la 48 kHz, stereo, în jur de 160 kbps, cu antetul mutat la început ca fișierul să pornească fără descărcare completă.

Două limbi și două formate din același material

Orizontal 1920×1080 și vertical 1080×1920, în română și în rusă — patru fișiere pentru aceeași poveste, pentru că un clip orizontal tăiat automat la vertical pierde exact partea în care se întâmplă ceva. Un al doilea set livrat, de introducere, are aceeași structură, la 20,36 secunde.

Capturi ale produsului real, generate automat

Ce se vede în clip sunt înregistrări ale platformei, făcute cu un instrument de automatizare a browserului pe o versiune de producție rulată local: pagini publice, redactate, fără fețe, fără numere de înmatriculare, fără adrese exacte. Pentru compoziția de promovare am extras separat capturi la mai multe poziții de derulare, plus culorile, fonturile și animațiile paginii, ca mișcarea din clip să semene cu mișcarea din site.

Dosar de licențe pentru fiecare element din cadru

Un tabel cu sursa și licența fiecărui sunet și a fiecărei imagini, plus o secțiune despre ce NU e în clip: fără muzică de bibliotecă, fără filmări de stoc, fără voci umane înregistrate, fără sigle de instituții, fără capturi din alte platforme. Muzica și efectele sunt sintetizate local cu `ffmpeg`, deci licența se poate demonstra rulând scriptul din nou.

Seturi de vizualuri statice pentru campanii

Când mesajul se testează, nu se filmează: două runde a câte treizeci de creații pentru o singură campanie, în format vertical pentru rețele, fiecare cu propriul unghi de mesaj în numele fișierului. E mai ieftin să afli care mesaj prinde din imagini decât din clipuri, și abia apoi să filmezi.

Cum arată

În centru, compoziția — un document cu piste și clipuri cu timpi scriși. În jurul ei orbitează elementele care intră în cadru, fiecare cu eticheta lui de licență: capturile produsului generate automat, ramele desenate în SVG, patul muzical și efectele sintetizate local, vocea generată, fontul autogăzduit. Un element fără etichetă nu intră pe orbită.

01

Scriem scenariul cu timpi și îl tăiem pe durată

Scene, intervale, text rostit, ținta de ritm. Aici se decide dacă mesajul încape — nu în montaj. Livrăm scenariul înainte de orice generare, pentru că e singurul moment ieftin în care se poate schimba ideea.

02

Adunăm materialul și îi stabilim licența odată cu el

Capturi generate automat pe o versiune de test, elemente desenate, sunete sintetizate local, voce generată. Fiecare element primește un rând în dosarul de licențe în momentul în care intră în proiect, nu la sfârșit, când nimeni nu-și mai amintește de unde a apărut.

03

Construim compoziția și o randăm la parametri ficși

Piste, clipuri cu start și durată, treceri prin suprapunere intenționată. Randarea se verifică cu unelte: rezoluție, cadre pe secundă, număr de cadre, durată. Dacă durata nu e cea din scenariu, e o eroare de compoziție, nu o rotunjire.

04

Normalizăm sonorul și îl măsurăm pe fișierul final

Două treceri către ținta de sonoritate, apoi măsurare pe fișierul livrat, nu pe cel intermediar. Cifrele rezultate se scriu în documentul de predare, ca să poată fi contestate.

05

Livrăm variantele și sursa

Ambele formate, ambele limbi, plus piesele separate — narație, muzică, cadre de scenariu — și compoziția. Motivul pentru care predăm și sursa e simplu: peste un an cineva va vrea altă frază în secunda a douăzecea.

OBSERVAȚIEDATESTRAT PE HARTĂ
În centru, compoziția — un document cu piste și clipuri cu timpi scriși. În jurul ei orbitează elementele care intră în cadru, fiecare cu eticheta lui de licență: capturile produsului generate automat, ramele desenate în SVG, patul muzical și efectele sintetizate local, vocea generată, fontul autogăzduit. Un element fără etichetă nu intră pe orbită.

Datele

Ce atingem, unde stau și cât rămân

Întrebările pe care le pune oricine are un responsabil cu protecția datelor — puse aici înainte să le pună el.

Ce intră în cadru și de unde vine
Capturi ale platformei clientului sau ale produsului, generate automat pe o versiune de test, plus elemente desenate de noi. Fiecare are o linie în dosarul de licențe. Regula practică: dacă nu putem arăta de unde vine, nu intră în clip.
Datele personale din materialul filmat
Se redactează înainte de captură, nu după montaj: fără fețe, fără numere de înmatriculare, fără adrese exacte, fără date reale de clienți pe ecranele arătate. Un ecran de demonstrație se populează cu date inventate, iar asta se decide înainte de a porni capturile.
Vocea sintetizată și termenii furnizorului
Audio-ul generat pe contul nostru sau al clientului se folosește comercial în condițiile planului plătit. Ce nu facem, pentru că e interzis explicit în termenii furnizorului: nu antrenăm și nu testăm un model concurent pe ieșirea lui. Limita se aplică inclusiv direcției noastre de cercetare proprie pe voce.
Ce se predă la final
Fișierele finale în ambele formate și ambele limbi, narația separată așezată pe axa timpului, patul muzical separat, cadrele de scenariu extrase, scenariul cu timpi și dosarul de licențe. Sursa compoziției rămâne la client, ca o modificare de text peste un an să nu ceară refacerea de la zero.

Un caz

Un clip de treizeci de secunde, în patru fișiere, cu dosarul de licențe alături

Situația

Promovarea unei platforme publice proprii, în două limbi, pentru rețele unde același material trebuie să existe și orizontal, și vertical. Constrângerea autoimpusă: niciun element din clip să nu aibă o licență pe care să nu o putem arăta.

Ce am construit

Scenariu cu timpi și text rostit pe scene, în ambele limbi, cu voci separate alese pe limbă. Capturile platformei generate automat pe o versiune de producție rulată local, cu pagini redactate — fără fețe, fără numere de înmatriculare, fără adrese exacte. Ramele de telefon și de laptop desenate în SVG, nu fotografii de produs. Patul muzical și cele două efecte sonore sintetizate local cu `ffmpeg`: oscilatoare sinusoidale cu filtru trece-jos pentru muzică, zgomot roz filtrat pentru trecere, impuls de 1500 Hz cu anvelopă exponențială pentru clic. Sonorul normalizat în două treceri către o țintă de sonoritate.

Ce a ieșit

Patru fișiere — două limbi × două formate — de exact 30,00 secunde fiecare, la 30 de cadre pe secundă, H.264 cu audio AAC 48 kHz stereo în jur de 160 kbps și antetul mutat la început. Am remăsurat azi varianta orizontală în română: −16,2 LUFS integrat, vârf real −1,8 dBTP, interval dinamic 10,5 LU, 900 de cadre pentru 30,00 secunde. Cifrele coincid cu documentul de predare. Pe lângă fișiere s-au predat narația separată, patul muzical separat, cadrele de scenariu și tabelul de licențe.

Ce nu spune cazul

Cadrul de lucru pentru randare nu e al nostru — e un proiect cu sursă deschisă al altei companii, sub Apache 2.0, iar contribuția noastră în el este zero. Vocea e sintetizată pe contul nostru, în condițiile planului plătit al furnizorului, iar termenii lui interzic explicit folosirea ieșirii pentru a antrena sau testa un model concurent; e o limită pe care o respectăm. Și încă una, de bun-simț: un clip nu rezolvă un mesaj care nu funcționează — de aceea, când se poate, testăm mesajul pe imagini înainte.

Întrebări

Ce ne întreabă oamenii înainte să sune

Aveți un motor propriu de generare video?

Nu, și e important să nu lăsăm impresia asta. Compunem în HTML și randăm folosind un cadru de lucru cu sursă deschisă, dezvoltat de altă companie, sub licență Apache 2.0. Am verificat: în clona noastră nu există niciun commit al nostru. Ce e al nostru sunt compozițiile, scenariile, capturile, sunetele sintetizate local și disciplina de licențe. Unealta nu e realizarea.

Ce înseamnă concret „video cu AI”? Se vede că e generat?

În materialele noastre, generarea acoperă vocea și o parte din imaginile de campanie. Mișcarea și montajul sunt scrise, nu generate: un clip cu timpi și piste, randat determinist. Nu producem oameni sintetici care vorbesc în cadru. Motivul e practic: un clip în care se vede produsul real, capturat automat, îmbătrânește mai greu și nu are problema de credibilitate a unui prezentator inexistent.

Cine deține drepturile asupra clipului?

Clientul, pentru materialul livrat, iar sursele externe rămân sub licența lor, care e scrisă element cu element în dosarul de licențe. Vocea generată se folosește comercial în condițiile planului plătit al furnizorului, pe contul pe care s-a generat. Predăm și dosarul, nu doar fișierele — dacă cineva întreabă peste doi ani de unde e sunetul acela, răspunsul există în scris.

De ce sintetizați muzica în loc să luați o piesă gratuită?

Pentru că o piesă „gratuită” presupune încredere într-o pagină care spune că e gratuită. Un pat muzical făcut din cinci oscilatoare sinusoidale cu filtru și un ecou scurt are o licență pe care o putem demonstra rulând scriptul din nou. Dacă un proiect cere o piesă adevărată, se poate — dar atunci în dosar intră sursa exactă, licența exactă și data descărcării, nu o mențiune vagă.

În ce limbi și formate livrați?

Română și rusă, în orizontal 1920×1080 și vertical 1080×1920. Nu tăiem automat orizontalul în vertical: compoziția se așază separat, pentru că în vertical intră altceva în cadru. Alte limbi se pot face cu aceleași unelte, dar vocea se alege pe limbă și se ascultă înainte, nu se presupune.

De ce contează sonoritatea măsurată?

Pentru că un clip mai încet decât ce e în jurul lui pe o rețea socială e sărit, iar unul mai tare e închis. Normalizăm în două treceri către o țintă și măsurăm pe fișierul livrat cu standardul european de sonoritate. Pentru un set recent cifrele sunt −16,2 și −15,9 LUFS, cu vârf real −1,8 dBTP. Sunt măsurate, nu estimate, și le scriem în documentul de predare tocmai ca să poată fi verificate.

Puteți face clipuri cu produsul meu, nu cu animații generice?

Da, și asta preferăm. Capturile se fac automat, cu un instrument de automatizare a browserului, pe o versiune de test a produsului, la mai multe poziții de derulare; pentru o compoziție am extras separat și culorile, fonturile și animațiile paginii, ca mișcarea din clip să semene cu mișcarea reală a interfeței. Condiția e să existe o versiune pe care o putem rula și date de demonstrație care nu sunt reale.

Cât de repede se poate schimba o frază peste câteva luni?

Pentru că montajul e un document cu timpi, nu un proiect dintr-un editor, o frază se schimbă în scenariu, se regenerează narația cu aceleași setări de voce și se randează din nou. De asta predăm sursa și setările de voce, nu doar fișierul final. Fără ele, orice modificare înseamnă refacere.

Faceți și campanii de imagini, nu doar clipuri?

Da, și de multe ori e pasul corect înainte de clip. Pentru o singură campanie am produs două runde a câte treizeci de creații verticale, fiecare cu alt unghi de mesaj. Se testează care mesaj prinde pe imagini, care sunt ieftine de refăcut, și abia apoi se investește în clip pe mesajul câștigător.

Pe ce se sprijină fiecare afirmație de mai sus (11 surse)
  1. CORECȚIE — `hyperframes` nu e codul nostruhyperframes.git; LICENSE = Apache 2.0):git log --author pentru oleg/Oleg/megapromoting/vasilebozu → zero commituri
  2. Compoziție proprie: 5 clipuri pe pista principală, timpi ficși, suprapuneri intenționate, linie de timp de 20 de secundeindex.html:2 (lang=ro, data-resolution=landscape), 79 (rădăcina compoziției: start 0, durată 20, 1920×1080), 90, 98, 127, 139, 149 (cele cinci clipuri; k1 0→3,6 și k2 3,0→9,0 se suprapun 0,6 s)
  3. Randare măsurată: H.264, 1920×1080, 60/1 cadre pe secundă, 1200 de cadre, 20,000000 smega-promo-video_2026-09-06_12-45-05.mp4:ffprobe -show_entries stream=width,height,r_frame_rate,codec_name,nb_frames -show_entries format=duration,size
  4. Setările de voce sunt scrise în scenariu, împreună cu textul și cu ținta de ritmSCRIPT.md:1-4 (durată 30 s, ținta ~65 de cuvinte), 8-16 (tabelul de scene cu intervale), 28-29 și 39-40 (model eleven_multilingual_v2; stability 0.45, similarity_boost 0.75, style 0.3, speed 0.95)
  5. Patru clipuri de exact 30,00 s: două limbi × două formate, 30 cadre/s, AAC 48 kHz stereo (promo-30s-ro.mp4, promo-30s-ru.mp4, promo-30s-ro-9x16.mp4, promo-30s-ru-9x16.mp4) + README.md:ffprobe pe fiecare: 1920×1080 și 1080×1920, r_frame_rate 30/1, duration 30.000000; flux audio aac, 48000 Hz, 2 canale, 159.696 bps
  6. Sonoritate remăsurată pe fișierul livrat: −16,2 LUFS, vârf real −1,8 dBTP, interval 10,5 LUpromo-30s-ro.mp4:ffmpeg -i … -af ebur128=peak=true -f null - (900 de cadre, 30,00 s)
  7. Dosar de licențe element cu element, cu sunetele sintetizate localLICENTE.md:tabelul „Sunet” (pat muzical din cinci oscilatoare sinusoidale + filtru trece-jos + ecou scurt; efect de trecere din zgomot roz filtrat bandă; clic din impuls 1500 Hz cu anvelopă exponențială), tabelul „Imagine” (capturi Playwright pe build de producție local; rame de telefon și laptop desenate în SVG; font Onest autogăzduit, SIL OFL 1.1; pictograme lucide, licență ISC), secțiunea „Ce nu e în clip”
  8. Al doilea set livrat: patru clipuri de introducere, 20,36 s, aceleași două limbi și două formate (sesizari-intro-ro.mp4, -ru, plus variantele verticale) + SCENARIU.md, STORYBOARD.md:ffprobe: 1920×1080 și 1080×1920, 30/1, duration 20.360000
  9. Capturi automate ale produsului, cu extragere de culori, fonturi și animații:screenshots/ (full-page.png plus cadre la 0, 15, 30, 44, 59, 74, 89 și 100 la sută din derulare, plus contact-sheet.jpg); extracted/ (tokens.json, design-styles.json, fonts-manifest.json, animations.json, visible-text.txt)
  10. Două runde de vizualuri statice de campanie, în format vertical (30 PNG):dimensiuni măsurate cu sips: 1003×1568 în prima rundă, 1122×1402 în a doua
  11. Termenii furnizorului de voce interzic antrenarea sau testarea unui model concurent pe ieșirea luihttps://elevenlabs.io/use-policy · 2026-09-06

Citările interne arată numele fișierului și linia. Calea completă rămâne în depozitul nostru; o putem parcurge împreună, la cerere.

Ce ai vrea să funcționeze mai bine?

Povestește-ne despre procesul tău. Împreună stabilim ce merită construit, ce putem conecta și cum verificăm rezultatul.

Hai să discutăm