MP4 eller WebM: vilket ska du exportera?
En sajt vill ha MP4 och min fil är WebM. Är det en konvertering, eller bara ett namnbyte?
Frågan är egentligen två frågor
MP4 och WebM är containrar. En container är ett arkivsystem: den håller ett eller flera spår, registrerar deras tidskodning, lagrar indexet som låter en spelare söka i filen och bär metadata. Den komprimerar ingenting. Komprimeringen sköts av en codec, och den kodade bitströmmen är det som containern bär.
”MP4 eller WebM” är alltså en förpackningsfråga, och ”H.264, VP9 eller AV1” är komprimeringsfrågan. Att blanda ihop dem är anledningen till att folk kodar om filer som bara behövde packas om, och förlorar en generation kvalitet i onödan.
Vad som normalt ligger i respektive container
| Egenskap | MP4 | WebM |
|---|---|---|
| Grundformat | ISO base media file format (ISO/IEC 14496-12) | En profil av Matroska |
| Vanliga videocodecar | H.264, HEVC, AV1 | VP8, VP9, AV1 |
| Vanliga ljudcodecar | AAC, ibland AC-3 eller FLAC | Opus, Vorbis |
| Licenskaraktär | Patenterade codecar är vanliga | Byggt kring royaltyfria codecar |
| Där det är det trygga förvalet | Telefoner, mediespelare på datorn, redigeringsprogram, sociala plattformar | Webben, särskilt med VP9 eller AV1 |
Ingen av listorna är en regel. En container är i hög grad codec-agnostisk, och båda kan bära AV1. Det som varierar är vad programvaran i andra änden är beredd att ta emot.
Var respektive format faktiskt spelas upp
MP4 med H.264 och AAC är det närmaste man kommer en universell videofil. Den spelas på telefoner, på tv-apparater, i redigeringsprogram och i meddelandeappar, och det är den uppladdningsformulär oftast menar när de säger ”video”. Dess dominans är anledningen till att hårdvaruavkodare för H.264 finns i praktiskt taget varje enhet som levererats de senaste femton åren, vilket spelar roll för batteritiden lika mycket som för kompatibiliteten.
WebM byggdes för webben, med codecar som inte medför några royaltyåtaganden för strömning. Webbläsare hanterar det bra. Programvara utanför webbläsaren är mindre pålitlig: vissa redigeringsverktyg, vissa tv-apparater och vissa telefongallerier öppnar det inte, och en kollega som dubbelklickar på filen kanske inte ser någonting alls.
Ompaketering mot omkodning
Om codecen inne i din fil redan är acceptabel för destinationen är ett containerbyte en ompaketering: de kodade bildrutorna kopieras över oförändrade och bara förpackningen skrivs om. Det går snabbt, det är förlustfritt och bilden är bitidentisk. Om codecen inte är acceptabel — VP9 in i en MP4 för en spelare som bara läser H.264 — måste bildrutorna avkodas och kodas om igen, vilket tar verklig tid och kostar en generation kvalitet.
Det är därför den användbara första frågan är ”vilken codec ligger där inne”, inte ”vilken filändelse har den”. FileSlimmers videoverktyg inspekterar spåren först och packar om i stället för att koda om närhelst destinationen tillåter det.
Glöm inte ljudspåret
Ett containerbyte som struntar i ljudet ger en tyst fil i fel spelare. MP4 bär konventionellt AAC; WebM bär konventionellt Opus eller Vorbis. Att lägga Opus i en MP4 är tillåtet enligt specifikationen och saknar stöd i väldigt mycket programvara ute i verkligheten, så en ärlig konvertering till MP4 innebär oftast att ljudet också kodas om till AAC.
Om ett klipp inte har något ljud alls, säg det uttryckligen i det du exporterar. Vissa spelare hakar upp sig när de väntar sig ett spår som inte finns.
En kort beslutslista
- Ska filen till en person, en plattform eller ett uppladdningsformulär: MP4 med H.264 och AAC.
- Levererar du filen själv, från dina egna sidor, till webbläsare: WebM med VP9, eller AV1 i endera containern, med en MP4 som reserv om publiken är bred.
- Ska den redigeras senare: behåll det original med högst kvalitet du har, i den container det kom i.
- Bara containern är fel och codecarna redan är rätt: packa om, koda inte om.
- Är du osäker på vad som finns inuti: kontrollera codecarna innan du väljer, för svaret avgör om det här kostar dig sekunder eller en timme.
Gränser värda att känna till
Videokodning i webbläsaren beror på vad enheten erbjuder. Hårdvarukodare är formatspecifika: en maskin kan koda H.264 snabbt och VP9 långsamt, eller vägra en codec helt. Stödet skiljer sig också mellan webbläsare på samma maskin, och mellan en webbläsare och samma webbläsare på en telefon. En konvertering som tar sekunder på en laptop kan ta betydligt längre tid på en telefon som samtidigt hanterar sin egen temperatur.
Valet av container kan inte rädda en fil som är stor på grund av sitt innehåll. Ett långt klipp, i hög upplösning, med mycket rörelse, är stort i vilken container som helst. Upplösning, bithastighet och speltid avgör det, och ingen ompaketering ändrar dem.
Verktyg för det här
Källor
- 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