Skip to content
megapromotingLet's talk

Expertise · Video and AI content

Short clips built from HTML, with synthesised voice and each element’s licence on paper.

We produce promotional clips and sets of visuals using generation tools — synthesised voice, images, animated compositions rendered from HTML. Every element that enters the frame has a written source and licence, and sound is measured, not estimated.

Already builtThese are delivered materials, on disk, which we measured today with tools, not read from a report. A set of four exact 30-second clips (two languages × two formats) for a proprietary platform, a second set of four introductory clips, a proprietary composition rendered in seven variants for company promotion, and two rounds of static campaign visuals for a transport operator. We rechecked the sound of one clip with `ffmpeg … ebur128`: −16.2 LUFS integrated, true peak −1.8 dBTP — exactly the figures from the internal document, which does not happen every time. Important correction to our own inventory: `hyperframes` is NOT our code. It is the clone of another company’s public repository, under Apache 2.0, with no commit of ours. It is the tool we work with; the achievements are the compositions and renderings, not the tool.

A thirty-second clip can fail in three ways, and only one is visible on first viewing. It fails visually — that is what everyone notices. It fails sonically, and then the clip is louder or quieter than everything around it on the network where it ends up, which is only noticed after publication. And it fails legally, which is never noticed, until the day it is noticed. We work on all three, and for the last two we have a written procedure, not goodwill.

Composition is done in HTML, not in an editor. A composition is a document with tracks and clips, each with the start moment and duration written as attributes — for example, a clip that starts at 8.4 seconds and lasts 5.0 seconds, with intentional overlap over the previous one for the transition. The practical consequence is that a clip can be recreated identically: the same attributes, the same result, and a text correction does not require manually redoing the edit. The render from our promotion composition came out at 1920×1080, 60 frames per second, 1200 frames, exactly 20.000000 seconds — figures read from the file, not from the brief.

The voice is synthesised, with settings written in the script together with the text, so that a redo sounds identical: multilingual model, stability, similarity, style and speed noted as values, not as impressions. The text is calibrated to duration before generation — a thirty-second clip supports around sixty-five words in Romanian, and if the script has eighty, the text is cut, not the voice sped up. The final audio is normalised in two passes towards a target and measured afterwards on the delivered file: the four clips in a recent set sit at −16.2 and −15.9 LUFS, with true peak −1.8 dBTP.

The rule we follow, and which is clearly visible in the licence file of a delivered set: nothing in the clip has a licence we cannot show. The music bed and sound effects were synthesised locally with `ffmpeg` — five sine oscillators with a low-pass filter for music, filtered pink noise for the transition effect, a 1500 Hz impulse with an exponential envelope for the click — precisely because a sound made by us has a demonstrable licence, whereas a “free” file from a page that does not say under what terms, does not. The phone and laptop frames are drawn in SVG, not product photos. The screenshots are of our platform, made automatically on a local production version. The font is self-hosted, under an open font licence.

What it covers

The work, by component

Script with timings, calibrated to duration before generation

Scene table with intervals and the spoken text for each, plus the pacing target. The raw text for synthesis is written separately, in a single block, and punctuation provides the pauses. If the text exceeds the duration, the text is shortened — speeding up the voice can be heard, and a clip that sounds rushed loses exactly what it was meant to gain.

Composition in HTML, with tracks and clips with written timings

Each clip has start and duration as attributes, and overlaps for transitions are intentional and visible in the source. Our promotion composition has five clips on the main track and separate track indices for the elements that go over, in a twenty-second timeline. A written edit can be recreated identically; one done by hand, no.

Render at verifiable parameters

The latest render of the in-house composition, measured with `ffprobe`: H.264, 1920×1080, 60/1 frames per second, 1200 frames, 20,000000 seconds. Not “about twenty seconds” — exact, because the frame count is an integer and results from the composition.

Synthetic voice with settings noted in the script

Multilingual model that supports Romanian, with stability, similarity, style and speed written as values next to the text. The same settings produce the same voice three months later, when someone asks for a version with one changed phrase. For Russian, we use a separate voice, chosen for the language, not translated with the same one.

Measured audio, not estimated

Two-pass normalisation towards a loudness target, then measurement on the delivered file using the European loudness standard. Values for a recent set: −16,2 and −15,9 LUFS integrated, true peak −1,8 dBTP, dynamic range 10,5 LU. AAC audio at 48 kHz, stereo, around 160 kbps, with the header moved to the start so the file can begin without full download.

Two languages and two formats from the same material

Horizontal 1920×1080 and vertical 1080×1920, in Romanian and in Russian — four files for the same story, because a horizontal clip automatically cut to vertical loses exactly the part where something happens. A second delivered set, for the introduction, has the same structure, at 20,36 seconds.

Captures of the actual product, generated automatically

What is seen in the clip are recordings of the platform, made with a browser automation tool on a locally run production version: public pages, edited, without faces, without registration numbers, without exact addresses. For the promotional composition, we separately extracted captures at several scroll positions, plus the page colours, fonts and animations, so the movement in the clip would resemble the movement on the site.

Licence dossier for each element in the frame

A table with the source and licence of each sound and each image, plus a section about what is NOT in the clip: no stock music, no stock footage, no recorded human voices, no institutional logos, no captures from other platforms. The music and effects are synthesised locally with `ffmpeg`, so the licence can be demonstrated by running the script again.

Sets of static visuals for campaigns

When the message is tested, it is not filmed: two rounds of thirty creations for a single campaign, in vertical format for social networks, each with its own message angle in the file name. It is cheaper to find out which message works from images than from clips, and only then to film.

What it looks like

The path, step by step.

01

We write the script with timings and cut it to duration

Scenes, intervals, spoken text, pace target. This is where it is decided whether the message fits — not in editing. We deliver the script before any generation, because it is the only cheap moment when the idea can be changed.

02

We gather the material and assign its licence at the same time

Automatically generated captures on a test version, drawn elements, locally synthesised sounds, generated voice. Each element gets one line in the licence dossier the moment it enters the project, not at the end, when nobody remembers where it came from.

03

We build the composition and render it with fixed parameters

Tracks, clips with start and duration, overlap transitions done intentionally. Rendering is checked with tools: resolution, frames per second, number of frames, duration. If the duration is not the one in the script, it is a composition error, not rounding.

04

We normalise the audio and measure it on the final file

Two passes towards the loudness target, then measurement on the delivered file, not on the intermediate one. The resulting figures are written in the handover document, so they can be challenged.

05

We deliver the variants and the source

Both formats, both languages, plus the separate pieces — narration, music, storyboard frames — and the composition. The reason we also hand over the source is simple: in a year someone will want a different line in the twentieth second.

One centre. Around it, what enters it — along separate routes.THE CENTRE RELIES ON WHAT SURROUNDS IT
At the centre, the composition — a document with tracks and clips with written timings. Around it orbit the elements that come into frame, each with its own licence label: the automatically generated product captures, the SVG-drawn frames, the music bed and locally synthesised effects, the generated voice, the self-hosted font. An element without a label does not enter orbit.

The data

What we touch, where it lives, and how long it stays

The questions anyone with a data protection officer would ask — asked here before they do.

What enters the frame and where it comes from
Captures of the client’s platform or product, automatically generated on a test version, plus elements drawn by us. Each has a line in the licence file. The practical rule: if we cannot show where it comes from, it does not go into the clip.
Personal data in filmed material
It is redacted before capture, not after editing: no faces, no number plates, no exact addresses, no real customer data on the screens shown. A demo screen is populated with invented data, and that is decided before the captures start.
Synthesised voice and the supplier’s terms
The audio generated on our account or the client’s account is used commercially under the terms of the paid plan. What we do not do, because it is explicitly prohibited in the supplier’s terms: we do not train or test a competing model on its output. The limit also applies to our own research direction on voice.
What is handed over at the end
The final files in both formats and both languages, the separate narration placed on the timeline, the separate music bed, the extracted storyboard frames, the script with timings and the licence file. The composition source remains with the client, so a text change in a year does not require a rebuild from scratch.

A case

A thirty-second clip, in four files, with the licence file alongside

The situation

Promotion of a proprietary public platform, in two languages, for networks where the same material must exist both horizontally and vertically. The self-imposed constraint: no element in the clip may have a licence we cannot show.

What we built

Script with timings and spoken text by scene, in both languages, with separate voices chosen by language. Automatically generated platform captures on a locally run production version, with redacted pages — no faces, no number plates, no exact addresses. Phone and laptop frames drawn in SVG, not product photographs. The music bed and the two sound effects synthesised locally with `ffmpeg`: sine oscillators with a low-pass filter for music, filtered pink noise for transition, 1500 Hz impulse with an exponential envelope for click. The audio normalised in two passes towards a loudness target.

What came out

Four files — two languages × two formats — of exactly 30.00 seconds each, at 30 frames per second, H.264 with AAC audio 48 kHz stereo around 160 kbps and the header moved to the beginning. We remeasured today the Romanian horizontal version: −16.2 LUFS integrated, true peak −1.8 dBTP, dynamic range 10.5 LU, 900 frames for 30.00 seconds. The figures match the handover document. In addition to the files, the separate narration, the separate music bed, the storyboard frames and the licence table were handed over.

What the case does not say

The rendering framework is not ours — it is another company’s open-source project, under Apache 2.0, and our contribution to it is zero. The voice is synthesised on our account, under the terms of the provider’s paid plan, and its terms explicitly forbid using the output to train or test a competing model; it is a limit we respect. And one more, plain common-sense one: a clip does not fix a message that does not work — that is why, whenever possible, we test the message in images first.

Questions

What people ask us before they call

Do you have your own video generation engine?

No, and it is important not to give that impression. We compose in HTML and render using an open-source framework developed by another company, under the Apache 2.0 licence. We checked: in our clone there is not a single commit from us. What is ours are the compositions, scripts, captures, synthesised sounds locally and licence discipline. The tool is not the achievement.

What does “AI video” mean in practice? Can you tell it is generated?

In our materials, generation covers the voice and part of the campaign visuals. The motion and editing are written, not generated: a clip with timings and tracks, rendered deterministically. We do not produce synthetic people speaking on screen. The reason is practical: a clip in which the real product is shown, captured automatically, ages more slowly and does not have the credibility problem of a non-existent presenter.

Who owns the rights to the clip?

The client, for the delivered material, while external sources remain under their licence, which is written item by item in the licence dossier. The generated voice is used commercially under the conditions of the provider’s paid plan, on the account on which it was generated. We hand over the dossier too, not just the files — if someone asks in two years where that sound is from, the answer exists in writing.

Why do you synthesise music instead of taking a free track?

Because a “free” track depends on trust in a page that says it is free. A music bed made from five sine oscillators with a filter and a short echo has a licence we can prove by running the script again. If a project needs a real track, that is possible — but then the exact source, the exact licence and the download date go into the file, not a vague mention.

In which languages and formats do you deliver?

Romanian and Russian, in horizontal 1920×1080 and vertical 1080×1920. We do not automatically crop horizontal into vertical: the composition is set separately, because vertical brings something else into frame. Other languages can be done with the same tools, but the voice is chosen by language and listened to in advance, not assumed.

Why does measured loudness matter?

Because a clip quieter than what is around it on a social network is skipped, and a louder one is closed. We normalise in two passes to a target and measure the delivered file with the European loudness standard. For a recent set the figures are −16.2 and −15.9 LUFS, with a true peak of −1.8 dBTP. They are measured, not estimated, and we write them in the handover document precisely so they can be checked.

Can you make clips with my product, not generic animations?

Yes, and that is what we prefer. Captures are made automatically, with a browser automation tool, on a test version of the product, at several scroll positions; for one composition we separately extracted the page colours, fonts and animations as well, so that the motion in the clip would resemble the real motion of the interface. The condition is that there is a version we can run and demo data that is not real.

How quickly can a sentence be changed a few months later?

Because the edit is a document with timings, not a project in an editor, a sentence is changed in the script, the narration is regenerated with the same voice settings, and it is rendered again. That is why we hand over the source and the voice settings, not just the final file. Without them, any change means a rebuild.

Do you also make image campaigns, not just clips?

Yes, and often it is the correct step before the clip. For a single campaign, we produced two rounds of thirty vertical creatives each, each with a different message angle. We test which message works on images, which are cheap to remake, and only then do we invest in the clip on the winning message.

What the statements above rest on (11 sources)
  1. The voice provider's terms prohibit training or testing a competing model on his outputhttps://elevenlabs.io/use-policy · 2026-09-06

10 of them are code and files from our repositories. We don't publish their name or line: together, on a single page, they would describe too precisely how systems that aren't only ours are built. We go through them with you, in the repository, on request — verification stays possible, it just happens in a conversation.

What would you want to work better?

Tell us about your process. Together we decide what is worth building, what we can connect, and how we check the result.

Let's talk