MP4 eller WebM: hva bør du eksportere?
Et nettsted vil ha MP4, og filen min er WebM. Er det en konvertering, eller bare et navnebytte?
Spørsmålet er egentlig to spørsmål
MP4 og WebM er containere. En container er et arkivsystem: den holder ett eller flere spor, registrerer tidsforløpet deres, lagrer indeksen som lar en avspiller hoppe i filen, og bærer metadata. Den komprimerer ingenting. Komprimeringen gjøres av en kodek, og den kodede bitstrømmen er det containeren bærer.
«MP4 eller WebM» er altså et spørsmål om innpakning, og «H.264, VP9 eller AV1» er spørsmålet om komprimering. At de blandes sammen, er grunnen til at folk koder om filer som bare trengte ny innpakning, og mister en generasjon kvalitet til ingen nytte.
Hva som vanligvis ligger i hver av dem
| Egenskap | MP4 | WebM |
|---|---|---|
| Grunnformat | ISO base media file format (ISO/IEC 14496-12) | En profil av Matroska |
| Vanlige videokodeker | H.264, HEVC, AV1 | VP8, VP9, AV1 |
| Vanlige lydkodeker | AAC, noen ganger AC-3 eller FLAC | Opus, Vorbis |
| Lisensprofil | Patenterte kodeker er vanlig | Bygget rundt royaltyfrie kodeker |
| Der det er det trygge standardvalget | Mobiler, avspillere på PC, redigeringsprogrammer, sosiale plattformer | Nettet, særlig med VP9 eller AV1 |
Ingen av listene er en regel. En container er stort sett kodekuavhengig, og begge kan bære AV1. Det som varierer, er hva programvaren i den andre enden er innstilt på å ta imot.
Hvor hver av dem faktisk spilles av
MP4 med H.264 og AAC er det nærmeste vi kommer en universell videofil. Den spilles av på mobiler, på TV-er, i redigeringsprogrammer, i meldingsapper, og den er det opplastingsskjemaer som regel mener når de sier «video». Dominansen er grunnen til at maskinvaredekodere for H.264 finnes i praktisk talt alle enheter som er levert de siste femten årene, noe som betyr like mye for batteritiden som for kompatibiliteten.
WebM ble bygget for nettet, med kodeker som ikke medfører royaltyforpliktelser ved strømming. Nettlesere håndterer det godt. Programvare utenfor nettleseren er mindre pålitelig: enkelte redigeringsverktøy, enkelte TV-er og enkelte bildegallerier på mobil vil ikke åpne det, og en kollega som dobbeltklikker på filen, ser kanskje ingenting i det hele tatt.
Ompakking mot omkoding
Er kodeken inne i filen din allerede akseptabel for mottakeren, er en containerbytte en ompakking, en remux: de kodede bildene kopieres over uendret, og bare innpakningen skrives om. Det går raskt, det er tapsfritt, og bildet er bit-identisk. Er kodeken ikke akseptabel – VP9 inn i en MP4 for en avspiller som bare leser H.264 – må bildene dekodes og kodes på nytt, noe som tar reell tid og koster en generasjon kvalitet.
Derfor er det nyttige første spørsmålet «hvilken kodek ligger der inne», ikke «hvilken filendelse har den». FileSlimmers videoverktøy inspiserer sporene først og pakker om i stedet for å kode om når mottakeren tillater det.
Ikke glem lydsporet
Et containerbytte som overser lyden, gir en stum fil på feil avspiller. MP4 bærer tradisjonelt AAC; WebM bærer tradisjonelt Opus eller Vorbis. Å legge Opus i en MP4 er tillatt etter spesifikasjonen og støttes ikke av svært mye programvare der ute, så en ærlig konvertering til MP4 betyr som regel at lyden også kodes til AAC.
Har et klipp ingen lyd i det hele tatt, si det uttrykkelig i det du eksporterer. Enkelte avspillere stopper opp når de venter på et spor som ikke er der.
En kort beslutningsliste
- Sender du filen til en person, en plattform eller et opplastingsskjema: MP4 med H.264 og AAC.
- Serverer du filen selv, fra dine egne sider, til nettlesere: WebM med VP9, eller AV1 i hvilken som helst av de to containerne, med en MP4 som reserve hvis publikummet ditt er bredt.
- Skal du redigere senere: behold den originalen med høyest kvalitet du har, i den containeren den kom i.
- Er bare containeren feil og kodekene allerede riktige: pakk om, ikke kod om.
- Er du usikker på hva som ligger inni: sjekk kodekene før du velger, for svaret avgjør om dette koster deg sekunder eller en time.
Begrensninger det er verdt å kjenne
Videokoding i nettleseren avhenger av hva enheten eksponerer. Maskinvarekodere er formatspesifikke: en maskin kan kode H.264 raskt og VP9 sakte, eller nekte en kodek helt. Støtten er også ulik mellom nettlesere på samme maskin, og mellom en nettleser og den samme nettleseren på en mobil. En konvertering som tar sekunder på en bærbar PC, kan ta langt lengre tid på en mobil som samtidig prøver å styre sin egen temperatur.
Valg av container kan ikke redde en fil som er stor på grunn av innholdet. Et langt klipp, i høy oppløsning, med mye bevegelse, er stort i enhver container. Oppløsning, bitrate og varighet avgjør det, og ingen ompakking endrer dem.
Verktøy for dette
Kilder
- ISO/IEC 14496-12 — ISO base media file format
- The WebM Project — container guidelines
- ITU-T H.264 — Advanced Video Coding
- MDN — Media container formats and codec support