Uddannelse

Sådan tilføjes undertekster med FFmpeg (vejledning til kommandolinjen)

af David Nguyen 12 min læsning
I denne artikel

At tilføje undertekster til video burde ikke kræve en uddannelse i datalogi – men det føles ofte sådan, når man for første gang sidder og stirrer på en kommandolinjeterminal. FFmpeg, det gratis open source-værktøj til videobehandling, tilbyder kraftfulde undertekstfunktioner uden licensomkostninger. Uanset om du har brug for at brænde undertekster direkte ind i dit optagede materiale eller indlejre undertekstspor, der kan slås til og fra, klarer FFmpeg begge dele med et par velformulerede kommandoer. For dem, der helst vil undgå kommandolinjen helt, automatiske undertekster Værktøjer kan omdanne en manuel arbejdsgang til blot et par klik – men hvis du forstår FFmpeg, får du fuld kontrol over indlejring og gengivelse af undertekster.

Vigtige pointer

  • FFmpeg understøtter to typer undertekster: »soft«-undertekster, som er spor, der kan slås til og fra, og »hard«-undertekster, som er brændt fast i videoen
  • SRT-filer bruger en enkel formatering af tidsstempler, mens ASS/SSA-filer giver mulighed for avanceret formatering med skrifttyper, farver, placering og effekter
  • Behandling af faste undertekster kræver omkodning af videoen, hvilket er langsommere og mere CPU-krævende
  • Soft-undertekster kan ofte tilføjes, mens de originale video- og lydstrømme kopieres, hvilket gør det muligt at undgå omkodning af videoen
  • FFmpeg 8.0 introducerede et valgfrit Whisper-lydfilter til automatisk transskription, men avai-kompatibiliteten afhænger af, hvordan FFmpeg-binærfilen er kompileret, og kræver en kompatibel model
  • SRT tilbyder bred kompatibilitet på tværs af undertekstværktøjer, afspillere og platforme
  • ASS/SSA-filer giver omfattende kontrol over formateringen, herunder animerede teksteffekter og fremhævning i karaoke-stil
  • Soft-undertekster kan bevare den oprindelige videokvalitet, når videostrømmen kopieres uden omkodning

En introduktion til undertekstformater: SRT, VTT og ASS/SSA

Inden du går i gang med FFmpeg-kommandoer, er det vigtigt at forstå, hvad du har med at gøre. Undertekstfiler findes i flere formater, som hver især tjener forskellige formål og giver forskellige muligheder for at tilpasse indholdet.

Hvad er en SRT-fil?

SRT, også kaldet SubRip Text, er et af de mest udbredte undertekstformater på grund af sin enkelhed. Strukturen følger et ligetil mønster:

1

00:00:01,000 –> 00:00:03,500

Dette er den første undertekst.

2

00:00:03,500 –> 00:00:06,000

Dette er den anden undertekst.

Hver post indeholder et løbenummer, et tidsstempelinterval og den viste tekst. Du kan oprette og redigere SRT-filer i enhver teksteditor – Notepad, TextEdit eller VS Code fungerer alle. Formatet understøtter almindelige linjeskift, men har begrænsede indbyggede formateringsmuligheder.

Det format, du vælger, har indflydelse på, hvilke muligheder du har med dine undertekster:

  • SRT (SubRip): Plain-tekst med tidsstempler, bred kompatibilitet og begrænsede formateringsmuligheder
  • VTT (WebVTT): Et webbaseret format med indstillinger for afspilningsmarkører og grundlæggende formatering, der ofte bruges sammen med HTML5-videoafspillere
  • ASS/SSA (Advanced SubStation Alpha): Omfattende kontrol over designet, herunder skrifttyper, farver, placering, skygger og animationer

Til indhold på sociale medier, der kræver billedtekster med brandnavn, giver ASS-filer fleksibilitet til at tilpasse sig din visuelle identitet. Når det gælder tilgængelighedsarbejdsgange og bred kompatibilitet, er SRT ofte et praktisk valg.

Opsætning af FFmpeg: Installation og grundlæggende brug

FFmpeg kører fra kommandolinjen, hvilket betyder, at du skal indtaste kommandoer i Terminal på macOS eller Linux, eller i Command Prompt eller PowerShell på Windows. Installationen varierer afhængigt af operativsystemet:

Vinduer: Besøg FFmpeg-downloadside og følg et af linkene til en kompatibel Windows-version. Pak filerne ud, og tilføj derefter versionens skraldespand mappen til din PATH-miljøvariabel.

Mac: Åbn Terminal og kør brew install ffmpeg hvis du bruger pakkehåndteringen Homebrew.

Linux: Kør sudo apt install ffmpeg på Ubuntu eller Debian, eller sudo pacman -S ffmpeg på Arch-baserede distributioner.

Kontroller din installation ved at skrive:

ffmpeg -version

En vellykket opsætning viser oplysninger om version og build-konfiguration. For indbrændte undertekster skal du kontrollere, om konfigurationen indeholder –enable-libass, eller kør ffmpeg -filtre og bekræfte, at undertekster filteret er angivet.

Grundlæggende kommandostruktur i FFmpeg

Alle FFmpeg-kommandoer følger et ensartet mønster:

ffmpeg -i input.mp4 [indstillinger] output.mp4

Den -i flag angiver din indlæsningsfil, indstillingerne ændrer behandlingen, og det sidste argument angiver navnet på din udlæsningsfil. Når man forstår denne struktur, bliver selv komplekse kommandoer nemmere at forstå.

Soft-undertekster: Tilføjelse af eksterne undertekstspor til video

Soft-undertekster gemmes som separate spor i en videofil, hvilket giver seerne mulighed for at slå dem til eller fra. Denne fremgangsmåde kan bevare den oprindelige videokvalitet, da videostrømmen ikke behøver at blive omkodet.

Integrering af SRT-filer uden omkodning af video

En grundlæggende kommando til soft-undertekster til MP4 er:

ffmpeg -i video.mp4 -i subtitles.srt -c copy -c:s mov_text -metadata:s:s:0 language=eng output.mp4

Lad os se nærmere på det:

  • -i video.mp4: Din kildevideo
  • -i undertekster.srt: Din undertekstfil
  • -c kopier: Kopier kompatible indgangsstrømme uden at omkode dem
  • -c:s mov_text: Konverter undertekstsporet til et format, der er kompatibelt med MP4 mov_text format
  • -metadata:s:s:0 language=eng: Mærk det første undertekstspor som »engelsk«

Behandlingen foregår som regel meget hurtigere end rendering af faste undertekster, da FFmpeg kan kopiere video- og lydstrømmene, mens kun undertekststrømmen konverteres. For teams, der har brug for at oprette undertekstfiler, før de indlejres, Sonix kan automatisk generere SRT-filer ud fra lyd eller video.

Håndtering af flere undertekstsprog

For indhold, der kræver flere sprogvalg:

ffmpeg -i video.mp4 -i english.srt -i spanish.srt -map 0 -map 1 -map 2 -c copy -c:s mov_text -metadata:s:s:0 language=eng -metadata:s:s:1 language=spa output.mp4

Dette resulterer i en enkelt videofil med valgbare undertekstspor på engelsk og spansk. Den -kort Indstillingerne skal udtrykkeligt omfatte strømmene fra hver indgang.

Indkodning af undertekster: Brænding af undertekster direkte ind i videoen

Indlejrede undertekster bliver en fast del af videobillederne og vises uanset afspillerens indstillinger. Dette kan være med til at sikre, at underteksterne forbliver synlige i visningsmiljøer, hvor separate undertekstspor ikke altid vises korrekt.

Brug af undertekstfilteret til faste undertekster

Den grundlæggende indkøringskommando er:

ffmpeg -i video.mp4 -vf “subtitles=subtitles.srt” -c:v libx264 -c:a copy output.mp4

Den -vf Indstillingen »video-filter« anvender undertekstfiltret, hvorved teksten vises direkte på videobillederne. Da filteret virker på afkodede billeder, skal videoen omkodes. Den -c:en kopi Denne indstilling bevarer den oprindelige lydstrøm, når den er kompatibel med output-container.

Tilpasning af underteksternes udseende

Hvid tekst i Plain passer ikke altid ind i den professionelle videostil. FFmpeg’s force_style Med denne indstilling kan du tilsidesætte ASS-formateringsegenskaberne:

ffmpeg -i video.mp4 -vf “subtitles=subtitles.srt:force_style=’FontName=Roboto,FontSize=18,BackColour=&H40000000,BorderStyle=3′” -c:v libx264 -c:a copy output.mp4

Dette skaber billedtekster med en delvist gennemsigtig baggrund. Stylingmulighederne for Available omfatter:

  • Skrifttypenavn: Et navn på en AVailable-skrifttype
  • Skriftstørrelse: En ASS-værdi for skriftstørrelse; den viste størrelse afhænger af skaleringen af undertekster og video
  • Primærfarve: Tekstfarve i ASS &HAABBGGRR notation
  • Baggrundsfarve: Baggrunds- eller skyggefarve, inklusive alfa
  • BorderStyle: Som regel 1 for en oversigt eller 3 til en baggrund med ramme
  • Oversigt: Stregbredde i ASS-skriptenheder
  • Skygge: Skyggedybde i ASS-script-enheder

Tilgængeligheden af skrifttyper afhænger af systemet og den pågældende FFmpeg-build. Ved bærbare arbejdsgange kan det være nødvendigt at angive en skrifttypemappe via filterets fontsdir valgmulighed.

Almindelige problemer og fejlfinding

Der er flere problemer, som ofte volder begyndere i FFmpeg problemer:

“Der findes ikke et sådant filter: undertekster”: Din FFmpeg-kompilering mangler muligvis støtte til libass. Tjek ffmpeg -filtre, installer en version, der indeholder filteret, eller kompiler FFmpeg med –enable-libass.

Forvrængede tegn: Undertekstfilen bruger muligvis den forkerte tegnkodning. Gem den igen som UTF-8. Hvis du arbejder med en anden kodning, skal du bruge undertekstfilterets charenc mulighed, hvor dette understøttes.

Undertekster er ude af synkronisering: Brug -itsoffset før indlæsningen af underteksterne for at forskydes hele undertekststrømmen. Positive værdier forsinker underteksterne; negative værdier fremskynder dem.

Enorm størrelse på outputfilen: Faste undertekster kræver, at videoen omkodes. Ved H.264-udgivelse kan du styre kvalitet og størrelse ved hjælp af en CRF-kompatibel kodningsenhed, såsom -c:v libx264 -crf 23. Lavere CRF-værdier giver generelt filer af højere kvalitet og større størrelse.

Eksempler på specifikke FFmpeg-kommandoer til almindelige situationer

Tilføjelse af SRT til MP4-video (program)

ffmpeg -i interview.mp4 -i captions.srt -c copy -c:s mov_text output.mp4

Brug denne metode til afspillere og distributionsworkflows, der understøtter valgbare undertekstspor i MP4-filer. For platforme, der tilbyder en dedikeret grænseflade til upload af undertekster, kan det være mere pålideligt at uploade SRT-filen separat.

Konvertering af VTT til MKV-video (svært)

ffmpeg -i webinar.mkv -vf “subtitles=captions.vtt” -c:v libx264 -c:a copy output.mkv

Den -c:en kopi Denne indstilling bevarer den oprindelige lyd uden omkodning, når kodeken er kompatibel med output-formatet.

Designede billedtekster til sociale medier

ffmpeg -i clip.mp4 -vf “subtitles=captions.srt:force_style=’FontName=Arial,FontSize=24,PrimaryColour=&H00FFFFFF,BackColour=&H80000000,BorderStyle=3,Alignment=2′” -c:v libx264 -preset veryfast -c:a copy output.mp4

Justering=2 placerer undertekster nederst i midten i henhold til de almindelige ASS-regler for placering. Den -forudindstilling »veryfast« indstillingen fremskynder libx264 kodning på bekostning af en vis komprimeringseffektivitet.

Avancerede teknikker til undertekster med FFmpeg

Justering af underteksttimingen

Når underteksterne ikke stemmer helt overens med lyden:

ffmpeg -i video.mp4 -itsoffset 2.5 -i subtitles.srt -c copy -c:s mov_text output.mp4

Dette forsinker undertekststrømmen med 2,5 sekunder. For at fremskynde den skal du bruge en negativ værdi, f.eks. -itsoffset -1,5.

Udnyttelse af ASS til avancerede visuelle effekter

ASS-filer giver adgang til funktioner, som plain SRT-filer ikke understøtter som standard:

  • Animerede teksteffekter såsom overgange og bevægelse
  • Fremhævning i karaoke-stil
  • Flere samtidige tekstpositioner
  • Formatering pr. tegn eller pr. ord

Opret ASS-filer ved hjælp af et værktøj til redigering af undertekster, og anvend dem derefter med FFmpegs ASS-filter:

ffmpeg -i video.mp4 -vf “ass=styled_captions.ass” -c:v libx264 -c:a copy output.mp4

Oprettelse af undertekster med FFmpegs Whisper-filter

FFmpeg 8.0 introducerede et valgfrit Whisper-lydfilter, der kan generere transskriptioner, herunder undertekstfiler. Det er dog ikke alle FFmpeg 8.x-binærfiler, der indeholder dette filter.

Kontroller først, om din build indeholder filteret:

ffmpeg -filters | grep whisper

I Windows PowerShell kan du bruge:

ffmpeg -filters | Select-String whisper

Du skal desuden have en kompatibel Whisper-model-fil. Her er et eksempel på en kommandostruktur:

ffmpeg -i input.mp4 -af “whisper=model=/path/to/model.bin:language=auto:destination=output.srt:format=srt” -f null –

De nøjagtige indstillinger kan variere afhængigt af FFmpeg-versionen og -buildet. Kompatible build kan anvende understøttede GPU-backends, men accelerationen afhænger af det tilknyttede Whisper-bibliotek, available-hardware, drivere og buildkonfigurationen.

Filtret kan generere et udkast til undertekster, men nøjagtigheden afhænger af modellen, sproget, accenter, optagelseskvaliteten, baggrundsstøj og ordforrådet. Gennemgå altid automatisk genererede undertekster, inden de offentliggøres.

FFmpeg og videoredigeringssoftware: At bygge bro

FFmpeg er særdeles velegnet til batchbehandling og automatisering, mens specialiserede redigeringsprogrammer giver mulighed for visuel præcision. Den optimale løsning er ofte en kombination af begge værktøjer.

Hvornår skal man bruge FFmpeg frem for dedikerede videoredigeringsprogrammer?

Vælg FFmpeg, når:

  • Behandling af snesevis eller hundreder af videoer
  • Kørsel af automatiserede batch-opgaver
  • Tilføjelse af undertekster ved hjælp af gentagelige scripts
  • Arbejde med CI/CD-pipelines eller servermiljøer

Vælg videoredigeringsprogram, når:

  • Visuel finjustering af timingen for de enkelte undertekster
  • Oprettelse af komplekse animerede billedtekster
  • Arbejde med produktioner, der kræver placering i bestemte billeder
  • Behov for en visuel forhåndsvisning i realtid under justering af undertekster

Eksport af FFmpeg-genererede undertekster til NLE’er

FFmpeg kan udtrække eller konvertere en kompatibel indlejret tekstundertekststrøm:

ffmpeg -i video.mp4 -map 0:s:0 subtitles.srt

Dette vælger det første undertekstspor og konverterer det til SRT, når kildens underteksttype kan gengives som tekst. Billedbaserede undertekstspor kan ikke konverteres direkte til SRT uden tekstgenkendelse. Den resulterende fil kan redigeres i et andet undertekstværktøj eller integreres i et bredere videoproduktionsforløb.

Effektivisering af arbejdsgange for undertekster med Sonix

Kommandolinjeværktøjer giver stor fleksibilitet og mange muligheder, men de kræver en teknisk viden, som ikke alle har eller ønsker at tilegne sig. Når deadlines nærmer sig, og nøjagtighed er afgørende, kan manuel transskription, timing af undertekster og filhåndtering blive flaskehalse.

Sonix har en anderledes tilgang til undertekstningsprocessen ved at anvende AI og browserbaserede værktøjer til de trin, der foregår inden den endelige kodning:

  • Automatisk transskription konverterer lyd og video til redigerbar tekst med tidsstempler
  • Understøttelse af flere sprog tilbyder transskription i 54+ sprog
  • Browserbaseret redigering kombinerer synkroniseret afspilning med kontrolfunktioner til tekst og underteksttiming
  • Eksport af undertekster omfatter SRT, VTT, TTML, FCPXML og andre understøttede produktionsformater
  • Identifikation af højttaler mærker automatisk de forskellige talere i de understøttede transskriberingsarbejdsgange

Sonix oplyser officielt, at generering af undertekster generelt tager omkring fem minutter pr. times video, selvom den faktiske behandlingstid kan variere. Deres undertekstværktøjer understøtter desuden justering af timing, formatering og udskrift af indbrændte undertekster.

For teams, der behandler regelmæssige mængder indhold, er Sonix’s Samarbejdsfunktioner tilbyder delte mapper, visnings- og redigeringsrettigheder, noter på afsnitniveau, versionshistorik og velorganiserede overdragelser. Sonix anvender en fokuseret redigeringsmodel, hvor én person redigerer, mens andre kan se, lytte, søge og skrive noter.

Sonix er også SOC 2 Type II-certificeret, hvor data krypteres under overførsel ved hjælp af TLS og i lagring ved hjælp af AES-256. Organisationer, der håndterer reguleret materiale, bør stadig vurdere de specifikke produkt-, plan-, konfigurations- og kontraktmæssige krav, der gælder for deres konkrete anvendelsessituation.

FFmpeg remains er fremragende til den afsluttende indlejring, konvertering og gengivelse. I de tidligere faser – transskription, gennemgang, oversættelse og samarbejde – kan en browserbaseret platform mindske omfanget af manuel filforberedelse.

Endelig konklusion: Valget mellem FFmpeg og professionelle transskriptionsplatforme

Valget mellem FFmpeg og en dedikeret transskriptionsplatform afhænger af dine krav til arbejdsgangen og dit tekniske kendskab.

Vælg FFmpeg, når du har brug for:

  • Detai-styret kontrol over parametre for kodning og visning af undertekster
  • Batchbehandling til automatiserede videopipelines
  • Integration med eksisterende kommandolinje-arbejdsgange
  • Et open source-værktøj uden løbende abonnementsgebyrer for software
  • Mediebehandlingstrin, der kan programmeres og gentages

Vælg en professionel transskriberingsplatform, når du har brug for:

  • Automatisk omdannelse af tale til tekst uden manuel udarbejdelse af transskriptionen
  • Browserbaseret redigering med synkroniseret afspilning
  • Transskription på flere sprog og oversættelse
  • Samarbejde i teams og arbejdsgange for gennemgang
  • Identifikation og mærkning af højttalere
  • Dokumenterede sikkerheds- og administrationsfunktioner

For mange indholdsteams består en praktisk arbejdsgang af en kombination af begge dele: brug Sonix at generere og gennemgå transskriptioner med tidsstempler, talermærker og samarbejdsværktøjer, og derefter bruge FFmpeg til at indlejre eller brænde underteksterne ind i de endelige videofiler. Denne fremgangsmåde kombinerer en understøttet transskriptionsproces med teknisk kontrol over det endelige resultat.

Ofte stillede spørgsmål

Hvad er forskellen mellem bløde og hårde undertekster?

Soft-undertekster gemmes som separate spor, som seerne kan slå til eller fra via indstillingerne i en kompatibel medieafspiller. Hard-undertekster indlejres permanent i videobillederne og vises uanset, om der er understøttelse af undertekstspor. Soft-undertekster kan bevare den oprindelige videostrøm, når de tilføjes uden omkodning, mens hard-undertekster kræver omkodning af videoen.

Kan FFmpeg automatisk generere undertekster ud fra lyd?

FFmpeg 8.0 introducerede et valgfrit Whisper-lydfilter til tale-til-tekst-transskription, men funktionen er kun tilgængelig i binære filer, der er kompileret med Whisper-understøttelse, og kræver en kompatibel modelfil. Nogle versioner kan benytte understøttede GPU-backends, selvom hardwareacceleration ikke er garanteret. Nøjagtigheden varierer afhængigt af den valgte model, sprog, lydkvalitet, accenter, støj og ordforråd, og standardfilterets output understøtter ikke den samme arbejdsgang til taleridentifikation, som dedikerede transskriptionsplatforme.

Hvordan kan jeg ændre skrifttypen eller farven på indbrændte undertekster med FFmpeg?

Brug force_style indstilling i undertekstfiltret. For eksempel:, -vf “subtitles=captions.srt:force_style=’FontName=Arial,FontSize=20,PrimaryColour=&H0000FFFF'” anvender Arial-tekst med en ASS-farveværdi. ASS-farver bruger &HAABBGGRR notation, hvor AA står for alfa. Du kan også angive Baggrundsfarve, BorderStyle, Oversigt, Skygge, samt justeringsegenskaber.

Hvilke undertekstformater understøtter FFmpeg?

FFmpeg kan læse, skrive, konvertere eller behandle mange undertekstformater, herunder SRT, WebVTT, ASS/SSA og flere billedbaserede undertekstformater. Den nøjagtige understøttelse afhænger af FFmpeg-versionen, inputformatet, outputformatet og den valgte undertekstkodek. For soft-undertekster i MP4, -c:s mov_text bruges ofte. Matroska-afspillere kan gemme tekstkodeker som SRT og ASS mere direkte, mens arbejdsgange med fastlagte undertekster typisk bruger undertekster eller røv filtre til understøttede tekstformater.

Hvordan sikrer jeg, at mine undertekster er perfekt synkroniseret med min video?

Se korte uddrag af videoen, inden du behandler hele videoen. Hvis hele undertekstsporet konsekvent vises for tidligt eller for sent, skal du placere -itsoffset Før indtastning af undertekster: Positive værdier forsinker sporet, mens negative værdier fremskynder det. Hvis der opstår problemer, der kun vedrører enkelte linjer, skal du redigere tidsstemplerne i undertekstfilen eller bruge et visuelt redigeringsprogram til undertekster med bølgeform og afspilningskontroller.

Få præcis transskription på få minutter

Begynd at transskribere smartere. Prøv Sonix gratis, eller udforsk vores priser for at finde det rigtige abonnement til dig.