Trekk ut undertekster fra video
Den første kjøringen laster ned undertekstmotoren — omtrent 31 MB, servert av dette nettstedet og bufret av nettleseren etterpå. Selve videoen forlater aldri denne fanen.
Denne siden tar en videofil og gir deg tilbake undertekssporene som allerede ligger i den, én fil per spor, navngitt etter sporets språk. En Matroska-fil med et engelsk SDH-spor, et kinesisk spor og et PGS-bildespor kommer ut som tre filer: en .srt, en annen .srt og en .sup. Beholderen demuxes i stedet for å kodes på nytt, så et tekstspor kopieres ut som de bytene som allerede lå i filen — ikke skrevet av fra en skjerm, ikke tidfestet på nytt.
Arbeidet skjer i fanen. Videoen leses av en versjon av ffmpeg kompilert til WebAssembly som dette nettstedet leverer selv, og den eneste nettverksforespørselen er etter den motoren: rundt 31 MB første gang du bruker siden, bufret av nettleseren etterpå. Selve videoen sendes aldri noe sted, som er samme regel hver annen side her følger og grunnen til at denne kan brukes på materiale som ikke har lov til å forlate maskinen.
Undertekster som er brent inn i bildet, kan ikke hentes ut, og ingen verktøy kan det, fordi det ikke finnes noe spor å lese — de ordene er piksler. Har filen ikke noe undertekststrøm i det hele tatt, sier siden det i stedet for å produsere en tom fil, og det inkluderer det innbrente tilfellet: en video med synlige undertekster og uten undertekstspor rapporteres som å ha ingenting å hente ut.
Siden lister opp hver undertekststrøm den finner før den skriver noe: indeks, kodek, språk, tittel, og om strømmen er markert som standard eller tvungen. Spor som allerede bor i sin egen beholder, beholder sitt eget format — ASS forblir ASS, WebVTT forblir WebVTT — fordi å konvertere dem til SRT her ville droppe stil i stillhet, og å droppe stil uten å bli bedt om det er det ene dette nettstedet ikke gjør. Et spor hvis kodek ikke har noen egen beholder (mov_text-sporet inne i en MP4, for eksempel) kodes om til SRT, og resultatkortet sier det i stedet for å la det passere som en kopi.
Bildespor kommer ut som bilder, ikke tekst: en PGS-strøm blir en .sup og en DVD-strøm blir en .sub. Det er med vilje — bildet er det som lå i filen, og å gjette på teksten er en egen jobb med egen side og eget språkspørsmål. Ta .sup-filen til PGS-siden hvis du trenger tekst.
Ofte stilte spørsmål
Hvilke videobeholdere kan jeg slippe inn?
MKV, MP4, M4V, AVI, MOV, TS, WebM, WMV, FLV, MPG og OGV. Listen er egentlig en liste over demuxere som den medfølgende ffmpeg-versjonen har, ikke en liste over videokodeker: uansett hva som ligger i beholderen, er undertekssporene den samme slags strøm. En fil med uvanlig endelse men vanlig Matroska-innhold virker vanligvis fortsatt, fordi demuxeren leser headeren i stedet for navnet; en fragmentert eller ufullstendig nedlasting gjør det ofte ikke, fordi det ikke finnes noen indeks å gå gjennom.
Forlater videoen datamaskinen min mens den leses?
Nei. Den eneste nedlastingen er ffmpeg-motoren selv, rundt 31 MB, levert fra dette nettstedet og bufret av nettleseren etter første bruk. Videoen din monteres inn i motorens virtuelle filsystem i fanen og leses derfra; den skrives aldri inn i en forespørsel. Du kan bekrefte det i Nettverkspanelet: mens en fil behandles, er det ingen forespørsel som bærer den. Den egenskapen er grunnen til at siden finnes i det hele tatt — de fleste uttrekkere laster opp først, og materiale under juridisk eller medisinsk hold kan ikke lastes opp.
Hvorfor fikk jeg en .sup-fil i stedet for en .srt?
Fordi det sporet er lagret som bilder, ikke som tekst. PGS-strømmer (kodek hdmv_pgs_subtitle) er en sekvens av bilder, og det ærlige uttrekket av en bildestrøm er en bildestrøm: en .sup, som er nøyaktig det avspillere og undertekstredigerere forventer. Å gjøre den om til tekst betyr å gjenkjenne bokstavene i hvert bilde, som er en annen side med et språkspørsmål og et korrekturlesingstrinn. Uttrekkeren finner aldri opp tekst den ikke har lest.
Hva gjør verktøyet med et spor hvis format ikke har noen egen fil?
Det koder om det ene sporet til SRT og markerer resultatet som omkodet. Det vanlige tilfellet er mov_text, undertekstkodeken som bor inne i MP4: den har ikke noe eget filformat, så å kopiere strømmen ut ville produsere bytes ingen kunne åpne. Omkoding er ikke tapsfri — stil og plassering som mov_text kan bære, overlever ikke — så resultatkortet fører det opp som et tap i stedet for å presentere filen som en urørt kopi av det som lå i beholderen.
Hvordan navngis utdatafilene når det er flere spor?
Etter videoens eget navn og sporets språkkode: en fil som heter dokumentar.mkv med et engelsk spor gir dokumentar.eng.srt. Når to spor deler språk — et vanlig engelsk spor og et engelsk SDH-spor, som er vanlig — blir det andre dokumentar.eng-2.srt i stedet for å overskrive det første. Et spor uten språktag faller tilbake til strømindeksen, så det fortsatt kan skilles. Får du mer enn én fil, tilbys de som en enkelt zip, fordi nettlesere blokkerer at en side starter flere nedlastinger samtidig.
Hvorfor tar første kjøring lengre tid enn den andre?
Første kjøring laster ned ffmpeg-motoren, rundt 31 MB. Fremdriftslinjen dekker den nedlastingen og deretter selve uttrekket. Nettleseren bufrer motoren, så senere kjøringer på samme side starter nesten umiddelbart; det samme gjelder etter en omlasting hvis bufferen ikke er tømt. Motoren leveres i fire biter fordi vertsplattformen avviser enkeltfiler over 25 MiB, og siden setter dem sammen i minnet før den starter — den sammenstillingen er en del av den samme første ventetiden.
Kan jeg avbryte en kjøring som tar for lang tid?
Ja. Avbryt-knappen stopper uttrekket som kjører og terminerer arbeideren som gjør det, så en stor fil ikke holder en kjerne opptatt etter at du har bestemt deg for ikke å vente. Å avbryte er ikke en feil: elementet går tilbake til en tilstand du kan prøve på nytt fra, og neste kjøring starter en ny arbeider. Ingenting delvis tilbys som nedlasting, fordi en halvskrevet undertekstfil som ser komplett ut, er verre enn ingen fil.