Af Redaktionen, Alt om Data
Denne artikel er oprindeligt bragt på Alt om Data. Computerworld overtog i november 2022 Alt om Data. Du kan læse mere om overtagelsen her.
Hvorfor skal det være så kompliceret at afspille video? Hvorfor går det godt i et program, men ikke i et andet? Hvorfor fungerer det på denne maskine, men ikke på en anden? Hvorfor streamer det fint, men det virker ikke lokalt? Hvorfor bliver videoen afspillet uden lyd? Hvordan får man undertekster på skærmen? Hvorfor er lyden kun i stereo og ikke i surround? Hvorfor er farverne så kedelige? Alle disse spørgsmål stammer fra folk, der har været så dristige at prøve at afspille video.
Før du smider din pc ud ad vinduet, tilbyder vi dig en masterclass i videoafspilning. Vi forklarer kompleksiteterne ved Windows’ videopipeline (du skal se, hvorfor sagerne er så svære at diagnosticere), og vi kommer ind på, hvilken software du skal bruge for at få den bedste afspilning uden bøvl, og på, hvordan du installerer og justerer den til perfektion. Undervejs skal vi se på, hvilken hardwareacceleration du kan bruge, vi afdækker codec-verdenens vanvid, og vi sørger for, at lyden ikke bliver svigtet. Vi kommer også omkring 4K- og HDR-indhold.
Man kunne meget nemt argumentere for, at lokal videoafspilning er forældet, fordi streamingtjenesterne har lagt deres sager på nettet, og det er her, de fleste mennesker henter deres underholdning. Det ønsker vi ikke at diskutere, men hvis du stadig vil beholde dine dyrt betalte film og videoer, kan du kun gøre det ved at have en lokal kopi – ellers låner du den blot fra en ophavsretshaver under dække af en licens. I øvrigt vil vi ikke kaste os ud i filosofiske diskussioner. I stedet kaster vi os ud i at jonglere med codecs. Det skal nok blive sjovt.
Begrebet videoafspiller giver ingen mening. Det, man betragter som en videoafspiller, er i virkeligheden blot en fiks, sort kasse, der samler et væld af funktioner med det formål at få levende billeder på skærmen og lyd ud af højttalerne. Og det hele er synkroniseret ned til et millisekund.
For at forstå, hvordan denne sorte kasse virker, begynder vi med at se på, hvad der går ind i videopipelinen, fra kilde til slutmål. Det vil hjælpe os med at forstå, hvordan de forskellige elementer arbejder sammen om at afkode, manipulere og levere video og audio. Derefter kan vi bore os ned til pipelinens individuelle blokke og forklare, hvordan man får det bedst mulige ud af hver del, og hvad der faktisk er brug for.
Det sprog, man bruger i denne forbindelse, har en tendens til at være fleksibelt. Microsoft DirectShow er det Windows-system, man bruger til at styre flowet af videodata, og det refererer til codecs som filtre. Det skyldes navnlig, at “codec” er et forældet udtryk – det står for compressor-decompressor eller coder-decoder, og i denne sammenhæng er der blot tale om afkode-filtre.
Vi behandler de forskellige begreber, når vi møder dem. Bortset fra det skal du læse tekstboksen “Det skal du vide ...” og hente den anbefalede codec-pack plus Media Player Classic (MPC) fra https://mpc-hc.org for at være sikker på, at vi alle bruger den samme software, når vi taler om indstillinger og så videre.
Til at begynde med har vi kilden. Den er som regel en enkelt videofil, men selv det er kompliceret. Når man har at gøre med en afspiller som MPC, kan man specificere separate video-, audio- og undertekstfiler, og den kombinerer dem i et sammenhængende output. Video- og audio-tracks i MPC bliver indlæst via ‘File > Open File’, mens undertekster bliver indlæst via ‘File > Subtitles’.
Undertekster bliver dog gemt i en fil, der er styret via Demux- og Subtitle-filtrene, men det vender vi tilbage til. Nu om dage er en enkelt videofil strengt taget et container-filformat. De mest kendte er AVI, MP4 og MKV. Ideelt set bør et containerformat kunne tilbyde en fleksibel måde, hvorpå en enkelt fil kan indeholde flere tracks hvad enten det drejer sig om video, audio eller undertekster.
Det forklarer i det store og hele MKV’s popularitet; den er open source, og den understøtter næsten alle de funktioner, man kan ønske sig – i højere grad end AVI og MP4.
Før vi kan gøre noget med container-filen, skal vi bruge et filter, der kan adskille de forskellige dele i separate streams. Man kalder teknikken demultipleksing eller – med et mere gængs udtryk – en splitter. Hvis du følger vores råd i tekstboksen “Det skal du vide”, gælder det LAV Splitter, men der findes også andre muligheder såsom Haali Media Splitter.
I LAV Splitter kan man stort set vælge standardindstillingerne, medmindre man ikke læser engelsk – i så fald skal man angive sit foretrukne sprog for lyd og undertekster, således at det bliver brugt, hvis det er med på listen.
Undertekster
Vi lægger ud med undertekst-streamen, fordi den er ganske ligetil. Undertekster kan være interne eller eksterne tekster, som man har downloadet. I det sidstnævnte tilfælde består de blot af tekstfiler med tidsmarkeringer og oversatte linjer. Hvis man ønsker det, kan man også lave sine egne komedietekster. K-Lite bruger det velprøvede DirectVobSub-filter, der omfatter placering, skrifttype, aspektratio og indlæsningsstyring.
Den leder efter undertekstfiler med passende navne i den mappe, der også bliver brugt til video, i en ‘\subtitle’-mappe ved siden af videofilen eller i en ‘c:\subtitles’-mappe. Filen skal være navngivet nøjagtig som den originale videofil minus efternavn såsom .mkv eller .mp4.
Hvis du har problemer, kan indstillingerne af placering og størrelse være meget nyttige. Til interne undertekster skal du bruge MPC-indstillingerne. Vælg de ønskede undertekster fra ‘Play > Subtitles track’. Der er tilsvarende indstillinger under ‘View > Options > Subtitles settings.’
Lyd
Det kan være frustrerende at få den korrekte surroundsound fra et Windows-system overført til en ekstern forstærker eller anden enhed. Det skyldes navnlig antallet af ikkeindlysende drivere, forskellige indstillinger ved hvert trin, fysiske output og kompatibilitetsproblemer med digitale rettigheder og moderne digitale audioformater.
Det første trin består i at tjekke, om Windows leverer lyd til den rigtige enhed. Højreklik på ‘Speaker’-ikonet, og vælg ‘Playback devices’. Windows opregner alle de audioenheder, som systemet tror, at det kan sende lyd til. Indbygget audio tilbyder typisk separat analogt og digitalt output. Her finder man også egnede digitale HDMI-enheder, mens der også kan forekomme yderligere enheder med audiooutput.
Hvis man ikke kan høre nogen lyd, er det sandsynligvis den forkerte enhed, der er valgt her. Man kan også konfigurere grundopsætningen og fortælle Windows, om der er tale om et stereosystem eller et surroundsystem. Systemer, der kører Realtek-audio, kan omfatte firmaets eget præferencesystem, hvor man også kan konfigurere alt dette.
Vi halter bagefter med audio, og derfor bruger vi stadig et 5.1-surroundsystem med analoge stereostik – altså et stik pr. højttalerpar og et til håndtering af både subwoofer og centerhøjttalere. Den vigtigste årsag er, at metoden tvinger afkodning af al digital audio til de diskrete surroundkanaler. Alternativet er at sende de rå digitale signaler via den digitale forbindelse, man bruger.
Problemet er, at hvis ens forstærker ikke understøtter dette digitale signal, kan man ikke høre noget, eller også falder outputenheden tilbage til PCM-stereolyd, og det er der ingen, der drømmer om. LAV Audio er en del af K-Lite-pakken. Det er hoved-filterstyringen til ens audio.
Vi skal se på brugen af en digital audioenhed – tænk på en HDMI-forbundet enhed som et tv, eller på en av-forstærker via HDMI eller optisk – ellers er det en analog forbindelse. Til digitale film skal man bruge bit-streaming – forudsat at ens eksterne enheder understøtter disse formater – for at sikre, at den digitale lyd bliver streamet uden problemer.
Sagerne er ikke meget mere komplekse for analoge mål, men man skal specificere den rigtige surroundopsætning under fanen ´Mixer´i LAV Audio. Desuden har MPC udvidede audiokontroller, hvis du får brug for dem, under ‘View > Options > Internal Filters > Audio Switcher’.
Normalisering hjælper med til at booste dialog; der er også en kanalmixer, således at man kan specificere, hvilken kanal der går til hvilken højttaler. Når det gælder afspilning af video, og der er flere audiotracks – for eksempel kommentarer eller en beskrivelse – vælger du alternativerne med ‘Play > Audio track’ .
Det skal du vide ...
![](https://www.computerworld.dk/uploads/aod/2019/01/MPC157.feat_35-1024x793.jpg)
Før i tiden talte vi om en “codec-pakke”, et udvalg af codecs, der var samlet, således at man kunne afspille stort set enhver video, som man udsatte Windows Media Player for. Det var som i det vilde vesten: Alle mulige kombinationer af codecs dukkede op. Heldigvis er sagerne blevet lidt mere oplyste og professionelle. Hvis du ønsker en enkel tilgang til det at få bedre videoafspilning, vil vi foreslå dig at hente K-Lite Codec Pack Standard fra http://codecguide.com. Den har eksisteret siden omkring 2003, men den har for nylig gennemgået en opfriskning.
I K-Lite-pakken finder du det bedste, når det gælder open source-filter-teknologier: LAV video-filter, LAV audio-filter og LAV-splitter foruden en række andre filtre og redskaber. Disse tre første håndterer alle de forskellige påkrævede filtre til afkodning af video- og audio-formater plus containerformater til dem. Man får også et meget udbredt eksternt undertekstfilter, DirectVobSub, den populære Media Player Classic Home Cinema-afspiller plus en ekstern renderer, MadVR. Der er også et par nyttige værktøjer til at resette indstillinger og filter-associationer for det tilfældes skyld, at noget går i fisk.
Man kan ikke uden videre installere inkompatible codecs/filtre; DirectShow træffer det bedste valg af filter til den valgte filtype. Man kan derimod installere flere codecs/filtre, der understøtter det samme format. For eksempel installerer videoredigerings-software sine egne codecs, men du kan godt komme ud for, at disse pakker forårsager problemer eller bizar adfærd.
Video
Underteksterne fungerer, audioen lyder forrygende, og nu kan vi vende os mod video. LAV Video understøtter alle de vigtigste formater, og her er hardware-accelerations-support for Intel Quick Sync, Nvidia CUVID og DXVA2 native/copy-back. Hvis du ikke har en gpu, er Intel Quick Sync bedre end ingenting, men den kan forårsage kvalitetsproblemer på ældre processorer. Nvidia CUVID er lidt bedaget, og DXVA2 er det foretrukne valg.
DXVA2 copy-back-tilstand kan medføre højere videokvalitet end native, fordi man kan bruge flere filtre, men den kan tredoble gpu-belastningen. Native-tilstand er hurtigere, fordi videodataene aldrig forlader gpu-hukommelsen. Man kan finde LAV Video-indstillinger i K-Lite-mappen. Bortset fra hardware-acceleration behøver man ikke justere noget, men vi foretrækker at sætte “RGB Output Levels” til “PC (0 to 255)”, fordi man ellers får meningsløse farverum-konverteringer.
Indtil nu har vi i det store og hele ignoreret behovet for en afspiller, men da vi nu er kommet til afspilning, er det umagen værd at kaste et blik på MPC. Media Player Classic er open source og har været det foretrukne valg af videoafspiller i årevis, men desværre var 2017-udgaven den sidste fra den oprindelige leverandør. Heldigvis ser det ud til at nogle af udviklerne på http://forum.doom9.org vedligeholder den med fejlrettelser.
MPC har masser af instillinger, men til videoafspilning vælger vi ‘Options > Playback > Output’. I DirectShow Video-menuen kan man vælge en renderer.
Enhanced Video Renderer kan bruges, men her skal vi dække 4K HDR-afspilning, der giver problemer, som almindelige pc-afspillere ikke kan klare. Løsningen består i at bruge en renderer ved navn MadVR. Den kan man vælge her, men den har sit eget indstillingsværktøj i K-Lite-mappen.
Vidunderet VideoLan
Vi må afsætte en sektion til VideoLan Client (www.videolan.org), også kaldet VLC. Den er berømt for sin evne til at afspille alt, hvad man udsætter den for, også hvis filen er beskadiget eller delvis gendannet. Der er mange grunde til dens forbløffende evner: For det første er den open source, og den er derfor blevet udviklet åbent, og den er gratis tilgængelig for alle.
For det andet bruger den sine egne indbyggede codec-systemer, og den understøtter stort set alting. VLC holder til i Frankrig, og den kan derfor ignorere de fleste USA-baserede softwarepatenter, der ville forhindre andre programmer i at inddrage bestemte codecs.
Version 3.0, der blev lanceret i begyndelsen af 2018, indførte en række fornyelser, som gjorde VLC up to date. Det drejede sig blandt andet om standard-hardwarekodning, der understøtter 4K- og 8K-afspilning, HDR 12-bit-farve, mulighed for Chromecast, HD-audio-gennemløb, VR-videosupport, 8+ audiokanalsupport, hardware-acceleration på tværs af platforme, AV1-codec og Java Blu-ray-menuer plus mange andre ændringer.
I det store og hele virker VLC bare, og det betyder, at man simpelthen kan downloade den og lade den gå i gang med at afspille materialet. Vores væsentligste anke er, at den er en anelse uskøn; dens indstillinger er på grænsen til det ulæselige, og her hjælper dens Linux-rødder ikke. Det gør af og til valgmulighederne mere komplekse.
En anden ulempe er, at den er tilbøjelig til ikke at udnytte gpu-hardware så godt, som MPC gør. Medmindre man har en processor, der direkte understøtter h.265-acceleration, døjer den med at afspille 4K-materiale.
HDR-hovedpiner
Hvad er det, der er med HDR? Hvis man ser HDR-materiale fra en pc, kan der nemt forekomme et kommunikationsnedbrud mellem skærmen og pc’en, selv med en HDR-opsætning. Det skyldes typisk, at skærmen ikke opdager, at den modtager et HDR-signal, men pc’en kan også være ude at svømme, når man tilslutter en skærm. Løsningen er at bearbejde HDR-videofilen, mens den bliver vist i et standard-farveområde.
Det er ikke nogen enkel proces, idet hver frame skal bearbejdes. Og når man arbejder med en 4K-opløsning, kræver det seriøs cpu/gpu-kraft, og det er netop det, MadVR leverer, foruden en masse andre funktioner.
MadVR’s fulde navn er Madshi Video Renderer, og den er registreret som et DirectShow Renderer Filter. Som nævnt vælger man den i MPC og med andre kompatible afspillere som renderer. Man finder et MadVR-indstillingsværktøj i K-Lite-mappen, og når en video bliver afspillet, fremkommer der et kontrolikon i meddelelsesområdet med genveje til indstillingerne.
Man opnår korrekt HDR-afspilning med MadVR ved at gå ind i ‘Settings > Devices > [your display] > Identification’. Vælg den rigtige enhedstype. ‘Egenskaber’ er formentlig i orden, medmindre du har er skærm med 10-bit farvedybde; ‘RGB levels’ bør som altid være 0 til 255. Gå til ‘HDR’, og lad resten virke som standard.
Du kan holde dig til ‘Let MadVR decide’, så gør den sit bedste for at finde ud af, hvad din gpu og din skærm kan klare. Men hvis farverne er meget nedtonede, skal du manuelt vælge den korrekte tilstand. Hvis du har en HDR-kompatibel skærm og gpu, er det bedst at vælge ‘Passthrough HDR content to the display’, for det giver skærmen mulighed for at klare bearbejdelsen, og det er din eneste mulighed til Dolby Vision-materiale.
‘Convert HDR content to SDR using pixel shader math’ er det mest nærliggende valg, hvis du ikke har en HDR-kompatibel skærm eller gpu.
Du kan stort set lade indstillingerne være, som de er; der er mulighed for at justere det maksimale antal “nits”, men 200 er fornuftigt, også selvom skærmen understøtter noget klarere.
Den sidste funktion, vi vil nævne, er ‘Process HDR content by using pixel shader math’. Brug den, hvis du har en HDR-kompatibel skærm og gpu, men ønsker at lade MadVR klare HDR-arbejdet – det vil ærlig talt være underligt. Vi springer de to LUT-baserede funktioner over, fordi vi ikke dækker oprettelse af en skræddersyet 3D-tabel til skærmen.
Nu kan du nyde 4K HDR-afspilning selv på beskeden hardware med en passende gpu. Hvis du er interesseret i de andre funktioner, drejer de sig hovedsageligt om skalering, udglatning og dithering.
Vi anbefaler som regel DXVA2 som den hurtigste løsning. ‘Smooth Motion’ under ‘Rendering’ er en funktion, der kan hjælpe med at eliminere rysten på grund af forkerte refresh-rates. ‘Only if there would be motion judder’ er det bedste valg.
Vi står på skuldrene af genierne hos http://forum.doom9.org. Hvis du er blot det mindste interesseret i videokvalitet, kodning, afspilning og codec-teknologi i almindelighed, kan du her finde mange års nyttige oplysninger og gode råd.
Hjemmebiografer
Vi har en svaghed for hjemmebiograf-opsætninger. En stilfærdig mediecenter-pc, der driver en projektor, og som er forbundet til en surroundsound-A/V-forstærker, kan levere en formidabel underholdningsløsning. Når det gælder folk fra pc-verdenen, kan det imidlertid knibe med audiosiden, men hvis man drømmer om en stor skærm, skal man også have stor lyd.
Vi vil ikke gennemgå alle mulighederne, men et godt sted at begynde er en passende A/V-forstærker med matchende satellit-surroundhøjttalere plus en subwoofer, hvis du holder af buldrende bas. Et godt eksempel er Dolby Atmos, der føjer lodrette højttalere til sagerne, men selv en enkel 5/6/7.1-
surroundløsning vil levere sød musik til dine ører.
Et potentielt problem for pc-audio er skelnen mellem “genereret” audio – for eksempel fra spil – og forud optaget audio til et film-soundtrack. Sidstnævnte skal typisk ledes til A/V-forstærkeren over en digital forbindelse, ellers sørger de digitale rettigheder for, at resultatet er stilhed. Bagsiden ved at bruge en digital audioforbindelse er, at folk kun får stereo-output til “normal” pc-audio. Løsningen består i at bruge audiostikkets matrix-output og afkode digitale soundtracks til analog. Ja, audiofiler, sådan gør man det.