Wat we opnieuw opbouwden nadat we voor focus kozen
Een blik vanuit de ontwikkelaar op het onzichtbare werk achter een betrouwbare eerste export: hervatbare uploads, één gedeeld timingmodel en previews die met de uiteindelijke render overeenkomen.

Kevin Li

In juli maakten we CaptionBolt bewust kleiner. We stopten met proberen meerdere AI-videoproducten tegelijk te zijn en keerden terug naar één taak: gekozen beelden helpen afwerken met ondertitels.
Die beslissing leverde geen rustige maand op.
Ze legde iedere plek bloot waar de hoofdroute nog op een aanname rustte: dat een upload in één browsersessie zou eindigen, dat twee renderomgevingen timing gelijk zouden interpreteren, dat tekst verwijderen en video verwijderen dicht genoeg bij elkaar lagen voor dezelfde actie, of dat een previewframe altijd klaar zou zijn zodra zoeken eindigde.
Het werk sindsdien draaide vooral om het verwijderen van die aannames.
Focus maakt betrouwbaarheid zichtbaar
Wanneer een product veel losse tools heeft, kan een fout geïsoleerd lijken. Met één hoofdroute blokkeert dezelfde fout de hele belofte.
Onze route is bewust kort:
- Upload opgenomen beelden.
- Transcribeer ze en maak gestileerde ondertitels.
- Controleer tekst en resultaat.
- Pas eventueel kadrering, knippen of afwerking aan.
- Exporteer de goedgekeurde versie.
Dat maakt prioriteiten duidelijker. Alles wat de eerste succesvolle export verhindert, komt vóór een nieuwe optionele functie. Alles wat woorden, timing, kadrering of media stilzwijgend kan veranderen, heeft een zichtbare keuze en een weg terug nodig.
Een upload is een duurzame sessie
Het oude denkmodel was een verzoek met een voortgangsbalk. Dat werkt totdat een groot bestand een zwakke verbinding, gesloten laptop of herladen browser tegenkomt.
We bouwden uploads opnieuw rond duurzame sessies. De server reserveert het werk, de browser uploadt het bestand in delen en een terugkerende browser kan vragen welke delen al bestaan. Alleen het ontbrekende hoeft nog te worden verstuurd.
De server is de bron van waarheid voor actieve sessies. Lokale browseropslag kan het eerste scherm sneller maken, maar mag nooit het enige bewijs zijn dat een upload bestaat. Op het Dashboard kan hetzelfde originele bestand de sessie hervatten. Op Transcripts blijven actieve sessies zichtbaar met eigen hervat- en annuleeracties.
Dat klinkt als infrastructuur. Voor de gebruiker betekent het dat een netwerkonderbreking een lange upload minder snel in verloren tijd verandert.

Preview en export hebben één contract nodig
Voor videotools is een overtuigende preview niet genoeg. Het geëxporteerde bestand moet hetzelfde verhaal vertellen.
We vervingen het oude compositiepad door een gedeelde uitvoeringslaag met FFmpeg en libass. Browserpreview en serverrendering gebruiken nog verschillende technologie, maar verwerken nu dezelfde strikte configuratie, hetzelfde ondertiteldocument, dezelfde lettertypen, afmetingen en tijdlijnbeslissingen.
Ook de standaardcompositie is minder verrassend. Als Resize uitstaat, behoudt CaptionBolt de bronkadrering en blijft de uitvoer binnen de rasterlimiet van het huidige abonnement. Een liggende upload wordt niet automatisch verticaal omdat short-form-platforms vaak 9:16 gebruiken.
Deze migratie beweert niet dat elke export direct klaar is. Voorbereiding, duur, bestandsgrootte, huidige belasting en rendercomplexiteit blijven relevant. Het doel was vermijdbare interpretatieverschillen weg te nemen en voortgang, annulering, retries en definitieve uploads betrouwbaarder te maken.
Ondertitels en media hebben elk hun eigen waarheid nodig
Een van de moeilijkste fouten in een ondertiteleditor begint met een begrijpelijke snelkoppeling: de woorden op het scherm behandelen als de woorden die ook de mediatijdlijn bepalen.
Zodra een gebruiker een zin bewerkt, werkt dat niet meer.
CaptionBolt houdt nu twee woorddomeinen bij. Onveranderlijke bronwoorden bepalen spraaktiming, knipbeslissingen en snapping. Bewerkbare ondertitelwoorden bepalen wat op het scherm staat. Een naam corrigeren mag de rest van de audio niet verschuiven. Een zin verbergen in Text Editor mag de video niet verwijderen; videoknips horen bij Clip.
Deze scheiding maakt herhaald bewerken veiliger. Elke tekstwijziging wordt afgestemd op de oorspronkelijke getimede woorden, niet op eerder bewerkte timing. Woorden kunnen veranderen zonder te doen alsof de onderliggende spraak op een ander moment plaatsvond.
Een eenvoudiger Clip-tool vraagt nog steeds precieze timing
We wilden geen multitrack-tijdlijn. We wilden wel dat gebruikers het begin of einde konden inkorten, een binnenste bereik konden verwijderen en langere stiltes optioneel konden opschonen.
De nieuwe Clip-weergave gebruikt één brongolfvorm. Randgrepen bepalen de uiteindelijke grenzen. Een interne verwijdering wordt een herstelbare naad. Automatische lange-stilteknips krijgen een andere weergave en kunnen afzonderlijk worden hersteld. De afspeelkop blijft van beide onderscheiden.
Onder de interface wordt behouden media in één uitvoertijdlijn samengepakt. Bronwoorden worden op timing aan cues toegewezen, gedeeltelijk behouden ondertitels worden uit de overgebleven woorden opgebouwd en Player en export gebruiken hetzelfde frameplan. Een knip in een gesproken woord klikt naar een woordrand; een knip in stilte kan nauwkeuriger blijven.
Het zijn kleine regels tot ze elkaar tegenspreken. Dan ziet de gebruiker een verwijderd frame oplichten, een ondertitel te laat aankomen of kleine afrondingsfouten zich opstapelen.


Renderen is een productervaring
De meeste mensen zouden nooit over een renderworker hoeven nadenken. Toch ervaren ze iedere beslissing die hij neemt.
Ze merken of werk in de wachtrij kan worden geannuleerd, of een retry dubbel werk oplevert, of een mislukte laatste upload kan herstellen, of het gekozen lettertype in de renderomgeving bestaat en of een druk systeem nuttige voortgang toont in plaats van een percentage te verzinnen.
We hebben die contracten voor transcriptie en rendering aangescherpt. Werkclaims zijn beschermd tegen verouderde runs. Capaciteit wordt per account toegelaten en niet aan browsertiming overgelaten. Mislukte eindtaken kunnen gereserveerde verwerkingsminuten verrekenen. Renderomgevingen delen dezelfde uitvoerder en hetzelfde lettertypecontract. Diagnostiek kan ons vertellen of de bottleneck wachtrijdruk, een worker, mediavoorbereiding of opslagoverdracht is zonder die techniek in de Editor te tonen.
Dit is geen belofte van nul wachttijd of nul fouten. Het is een toezegging dat fouten begrensd, waarneembaar en herstelbaar moeten zijn in plaats van mysterieus.
De positie die we eindelijk helder kunnen uitleggen
Het ontwikkelwerk veranderde hoe we het product omschrijven.
CaptionBolt is voor makers, marketeers en kleine contentteams die hun beelden al hebben. Het past vooral bij video's waarin spraak centraal staat: talking heads, lessen, demo's, interviews, cursusfragmenten en bedrijfsupdates.
Het eerste resultaat is gestileerde ondertitels op de oorspronkelijke kadrering. Resize, Clip, Cover, B-Roll, Headline, Logo, Progress Bar, opgeslagen Video presets en Social posts zijn beschikbaar wanneer ze helpen. Het is geen checklist die voor export moet worden afgewerkt.
AI maakt de eerste versie. Het transcript kan worden gecorrigeerd, de kadrering kan origineel blijven, een voorgestelde knip kan worden afgewezen en gegenereerde tekst blijft bewerkbaar. De uiteindelijke beslissing ligt bij degene die publiceert.
Dat is de positie achter ons bijgewerkte homepageverhaal: je video is al opgenomen; CaptionBolt helpt je hem af te werken zonder een volledige video-editor te hoeven leren.
Wat we hierna bouwen
Onze volgende prioriteiten gaan minder over een langer menu en meer over een sterker eerste resultaat:
- betrouwbaarder uploaden, transcriberen, opslaan, exporteren en herstellen;
- betere ondertitelsegmentatie en snellere tekstcontrole;
- duidelijkere optionele Clip-controle zonder te doen alsof automatische grenzen al opgelost zijn;
- nog betere overeenkomst tussen preview en export;
- herbruikbare merk- en afwerkopties voor mensen die vaak publiceren.
Er komen nog steeds nieuwe mogelijkheden. De toets is of ze helpen bestaand beeld met minder overbodige keuzes af te werken, en of het resultaat controleerbaar en omkeerbaar blijft.
Lees waarom we CaptionBolt beperkter maakten voor de redenering. Bekijk het huidige product via Video Captions, Text Editor of de online videotrimmer.


