Lägg till / extrahera undertexter

Lägg till eller extrahera undertexter online — Lägg till undertexter i en video på två sätt: mjuk inbäddning (lägger till undertexten som ett separat spår inuti en MKV-fil, så att spelare kan slå av och på den) eller hård inbränning (renderar undertexterna i bildpunkterna i en WebM-video, permanent inbränd). Det går även att extrahera inbäddade undertextspår från MKV/MP4/WebM-filer och ladda ned dem som SRT, WebVTT eller ASS. All bearbetning sker lokalt i webbläsaren, så filerna laddas aldrig upp till någon server och integriteten skyddas helt.
Stödd indata: Videor som använder öppna royaltyfria kodekar, som VP8/VP9/AV1/MPEG-4/FFV1 (containrarna WebM, MKV, MP4, MOV, AVI). Undertextfiler i SRT / WebVTT / ASS-format (UTF-8 eller GBK). Mjuk inbäddning ger MKV; hård inbränning ger WebM (VP8 + Vorbis).
Första användningen läser in en videobehandlingsmotor på ungefär 30 MB i den aktuella webbläsaren. Den cachas och återanvänds därefter, så var tålmodig.
🎥
Klicka eller dra en video hit (WebM / MKV / MP4 / MOV / AVI)
📝
Klicka på eller dra en undertextfil hit (SRT / VTT / ASS)

Alternativ

Mjuka undertexter kontra hårda undertexter: inbäddade eller inbrända?

Det finns exakt två sätt att ha undertexter i en video, och alla beslut i arbetsflödet utgår från vilket av dem man har. Mjuka undertexter är ett textspår lagrat bredvid videoströmmen — bildrutorna är orörda, och spelaren renderar texten vid uppspelning. Hårda undertexter är målade in i bildpunkterna under kodningen: bokstäverna är en del av bilden, för alltid. Mjuka undertexter kan stängas av, bytas mellan språk, få ny stil och extraheras som text; hårda undertexter spelas identiskt på i stort sett allt som spelar videon, till priset av att de är permanenta. Den ena är data bredvid bilden; den andra är bilden.

Fem fakta som förankrar resten av sidan:
• mjuk = textspår muxat i containern (SRT/VTT/ASS); hård = undertexter inbrända i bildrutorna
• mjuk inbäddning är en remux — sekunder, noll kvalitetsförlust; hård inbränning är en omkodning — varje bildruta renderas om och komprimeras om
• mjuka undertexter väger kilobyte; hårda undertexter kostar inget extra i storlek men kan inte tas bort
• extrahering fungerar på mjuka undertexter (de är text); inbränd text är bildpunkter — det kräver OCR, och kvaliteten är aldrig garanterad
• SRT-tidsstämplar är HH:MM:SS,mmm — t.ex. 00:01:22,480 → 00:01:25,120 är en rad på 2 640 ms
Mjuk inbäddning: lägga till ett textspår

Mjuk inbäddning skriver undertextfilen in i containern som ett extra spår, bredvid video- och ljudspåren — videoströmmen kopieras byte för byte. Därför blir det klart på några sekunder och förlorar ingenting: det är samma "remux"-operation som vid byte av container (se MP4-sidan för grunderna om containrar). Haken är stödet: containern måste acceptera undertextspår (MKV och MP4 gör det; vissa enheter ignorerar dem ändå), och spelaren måste rendera dem — smart-TV-apparater och standardspelare i mobiler är ökända för att vara inkonsekventa, vilket är precis varför hårda inbränningar fortfarande finns.

Hård inbränning: måla in text i bildrutor

Inbränning av undertexter renderar om varje bildruta i videon med texten lagd ovanpå och komprimerar sedan resultatet på nytt — en fullständig omkodning med allt det medför: den tar lika lång tid som kodningen, och varje bildruta går genom en andra komprimeringsomgång. Typsnitt bakas in (inga överraskningar av typen "saknat typsnitt" på mottagarens dator), placering och stil är exakta, och uppspelningskompatibiliteten är total eftersom utdata bara är en vanlig video. Priset är slutgiltigheten: texten går inte att skilja från bilden, och att rätta ett stavfel innebär att man kodar om igen från originalkällan.

SRT, VTT och ASS: tre undertextformat

SRT (SubRip) är det universella minimum: numrerade rader, start → sluttidsstämplar, ren text. Varje spelare i världen läser den. VTT (WebVTT) är dess webbnativa syskon — samma idé, . för millisekunder i stället för ,, plus krokar för stil och placering som HTML5-elementet <track> använder. ASS (Advanced SubStation Alpha) är entusiasternas format: typsnitt, färger, konturer, rotation och animation per tecken — formatet bakom stiliserade animeundertexter — vilket är precis anledningen till att MKV kan bifoga de typsnitt ett spår behöver inne i filen (se MKV-sidan). Att bränna in ASS-stil kräver att typsnitten finns tillgängliga vid kodningen; att spela upp det mjukt kräver dem vid uppspelningen.

Extrahering: varför det bara riktigt fungerar på mjuka undertexter

Att extrahera ett mjukt undertextspår är att packa upp text ur containern — perfekt, eftersom det är precis det som lagrades. Att återskapa undertexter från en hårdinbränd video är ett datorseende-problem (OCR på varje bildruta, gissa var textområdet är, rensa bakgrunden bakom bokstäverna); det fungerar rimligt på rena, statiska texter och försämras snabbt med stiliserade typsnitt, rörelse och brus. Om texten behövs senare, behåll (eller begär) den mjuka versionen.

Vanliga missuppfattningar
  • "Undertexter som följde med filen kan alltid stängas av." Bara de mjuka. Om de aldrig kan stängas av är de inbrända i bildpunkterna, och ingen spelare kan ta bort dem.
  • "Inbäddning av undertexter kodar om videon." Mjuk inbäddning muxar om — momentant och förlustfritt. Bara en hård inbränning kodar om.
  • "Undertextfiler gör videor mycket större." Ett mjukt spår är text: en undertextfil för en hel film är tiotals till ett par hundra kilobyte, vilket försvinner i avrundningsfelet i en videos megabyte.
  • "Hård inbränning är bara säkrare, så bränn alltid in." Det är säkrare för uppspelningskompatibilitet och permanent sämre för redigering, översättning och tillgänglighet senare. Bränn in vid distribution till okända enheter; bädda in när texten ska förbli data.

Relaterade verktyg: SRT/VTT/ASS-omvandlare för att flytta undertexttext mellan de tre formaten, Tal till undertexter för att skapa en undertextfil från ljud, Video till MKV för containern med bäst stöd för flerspåriga undertexter, och Video till MP4 för grunderna om remux.