Videoencoding i mobila appar: vad det är, codecs och parametrar

Författare: IT Sectr Publicerad: 2026-05-24 Lästid: 8 min

Videoencoding (encoding) är processen att komprimera en digital videosignal till ett format som är lämpligt för lagring och överföring över nätverk med minimal kvalitetsförlust. Utan encoding tar en minut okomprimerad video i 4K-upplösning cirka 30 GB i anspråk, vilket gör överföring över internet omöjlig. Enligt Sandvine Global Internet Phenomena-rapporten (2025) utgör video 65% av all internettrafik, och encoding är nyckelteknologin som gör detta möjligt.

Sammanfattning

  • Encoding — komprimering av videosignal med hjälp av codecs för att minska datamängden.
  • Codecs H.264 och H.265 — huvudstandarderna: AVC säkerställer kompatibilitet, HEVC ger bättre komprimering.
  • VP9 och AV1 — öppna codecs från Google och Alliance for Open Media, royaltyfria.
  • Bitrate bestämmer storlek och kvalitet: 2–5 Mbit/s för 1080p, 15–40 Mbit/s för 4K.
  • Ljudcodecs AAC och Opus — standarder för mobila appar med låg latens och hög kvalitet.

Vad är videoencoding?

Videoencoding (encoding) är processen att omvandla en okomprimerad videosignal till digitalt format med hjälp av komprimeringsalgoritmer. Algoritmerna som implementeras i videocodecs tar bort redundant information både i den rumsliga domänen (inom en bildruta) och i den tidsmässiga domänen (mellan på varandra följande bildrutor).

Okomprimerad video är en sekvens av bildrutor, där varje bildruta lagras som en pixelmatris i RGB- eller YUV-format. Utan komprimering kräver en sekund 1080p-video vid 30 FPS cirka 1,5 GB minne. H.264-codecen komprimerar denna ström till 3–5 Mbit/s, vilket är 2500 gånger mindre än den ursprungliga volymen.

Principer för videokomprimering

Videocodecs använder två typer av komprimering: intra-frame och inter-frame. Intra-frame-komprimering tillämpas på varje bildruta oberoende med hjälp av algoritmer som liknar JPEG: diskret cosinustransform (DCT), kvantisering och entropikodning.

Inter-frame-komprimering analyserar skillnaden mellan på varandra följande bildrutor och kodar endast förändringarna. Om bakgrunden är statisk skickar codecen den fullständiga bildrutan endast en gång (I-frame) och sedan endast skillnaden (P- och B-bildrutor), vilket avsevärt minskar datamängden för scener med låg dynamik.

Videocodecs: H.264, H.265, VP9, AV1

Valet av videocodec bestämmer förhållandet mellan kvalitet och filstorlek, kompatibilitet med enheter och licensavgifter. På marknaden för mobila appar dominerar fyra huvudsakliga codecs: H.264 (AVC), H.265 (HEVC), VP9 och AV1.

CodecStandardÅrKomprimering vs H.264Licensiering
H.264/AVCMPEG-4 Part 1020031x (grundläggande)Royaltybelagd (MPEG LA)
H.265/HEVCMPEG-H Part 2201340–50% effektivareRoyaltybelagd (två pooler)
VP9Google201330–40% effektivareGratis
AV1AOM201850–60% effektivareGratis (Royaltyfri)

H.264 — den universella standarden

H.264 (AVC — Advanced Video Coding) förblir den mest kompatibla videocodecen: den stöds av alla mobila enheter, webbläsare och smart-TV sedan 2005. Hårdvaruacceleration av H.264-avkodning finns även på budgetenheter, vilket gör den idealisk för universell strömning.

Den största nackdelen med H.264 — relativt låg komprimeringseffektivitet jämfört med moderna codecs. Vid samma bitrate ger H.265 och AV1 märkbart högre kvalitet, vilket är särskilt viktigt för HDR- och 4K-innehåll.

H.265 — effektivitet för 4K

H.265 (HEVC — High Efficiency Video Coding) ger 40–50% bättre komprimering än H.264 vid samma visuella kvalitet. Detta uppnås genom en mer flexibel uppdelning av bildrutan i block (CTU upp till 64×64 pixlar istället för 16×16) och förbättrade algoritmer för rörelseprediktion.

HEVC stöds på alla Apple-enheter (från iPhone 6), på Android (från version 5.0 med hårdvaruavkodning) och på de flesta smart-TV-apparater. Licensavgifterna för HEVC är högre än för H.264 och hanteras av två patentpooler, vilket komplicerar laglig användning.

AV1 — den öppna standarden för framtiden

AV1 — videocodec utvecklad av Alliance for Open Media (AOM), ett konsortium lett av Google, Netflix, Amazon, Intel och Mozilla. AV1 ger 50–60% bättre komprimering än H.264 och är helt royaltyfri, vilket gör den attraktiv för streamingtjänster.

Den största nackdelen med AV1 — hög beräkningskomplexitet vid kodning. AV1-kodning kan vara 5–10 gånger långsammare än H.264 på samma hårdvara, även om hårdvaruavkodning redan börjar dyka upp på enheter från 2024–2025 (Snapdragon 8 Gen 3, Apple A17 Pro).

Ljudcodecs: AAC, MP3, Opus

Ljudcodecs i mobila appar är inte mindre viktiga än videocodecs. För videostreaming krävs ljud med minimal latens, hög kvalitet och kompatibilitet med MP4- och WebM-behållare. Tre huvudsakliga ljudcodecs täcker 99% av mobila streamingappar.

AAC — standarden från Apple och YouTube

AAC (Advanced Audio Coding) — efterträdaren till MP3, utvecklad av MPEG 1997 och blev standard ljudcodec för iTunes, YouTube och Android. AAC ger samma kvalitet som MP3 vid 30% lägre bitrate och stöder flerkanaligt ljud upp till 7.1.

För mobila appar rekommenderas AAC-LC vid bitrate 128–192 kbps för stereo och AAC-HE för låga bitrates 32–64 kbps. Hårdvaruavkodning av AAC finns på alla moderna enheter, vilket minimerar energiförbrukningen.

Opus — modern ljudcodec

Opus — öppen ljudcodec från IETF (RFC 6716), som ger bästa kvalitet bland alla ljudcodecs vid bitrates från 6 till 510 kbps. Opus kombinerar SILK (algoritm för tal) och CELT (för musik) och växlar automatiskt lägen beroende på innehåll.

Opus används i WebRTC för videosamtal, i apparna Spotify och Discord, och stöds i HLS från iOS 11 och Android 5.0. Opus låga latens (5–26 ms jämfört med 40–100 ms för AAC) gör den till det föredragna valet för livesändningar och videokonferenser.

Encodeparametrar: bitrate, upplösning, FPS

Encodeparametrar bestämmer slutlig filstorlek, videokvalitet och kompatibilitet med enheter. Utvecklaren av en mobil app måste välja optimala inställningar för varje typ av innehåll: filmer, sportevenemang, användargenererat innehåll.

Bitrate och dess typer

Bitrate — antalet bitar som används för att koda en sekund video. Man skiljer på CBR (Constant Bitrate) — konstant bitrate för livesändningar, VBR (Variable Bitrate) — variabel med målkvalitet för arkivlagring och ABR (Average Bitrate) — genomsnittlig för streaming.

UpplösningH.264 (rekommenderas)H.265/HEVCAV1
360p400–800 kbps250–500 kbps200–400 kbps
720p1,5–4 Mbit/s1–2,5 Mbit/s0,8–2 Mbit/s
1080p3–8 Mbit/s2–5 Mbit/s1,5–4 Mbit/s
4K (2160p)15–40 Mbit/s10–25 Mbit/s8–20 Mbit/s

CRF — kvalitetskontroll

CRF (Constant Rate Factor) — encodeparameter i x264 och x265 som ställer in målkvalitet istället för fast bitrate. CRF-skalan från 0 (förlustfri) till 51 (sämsta kvalitet), där 18–28 är arbetsområdet. För mobila appar rekommenderas CRF 23 för x264 och CRF 25 för x265.

CRF 18–20 ger hög kvalitet för presentationsinnehåll och offline-visning. CRF 24–28 passar för streaming och användargenererat innehåll, där filstorlek är viktigare än absolut kvalitet.

Codec-profiler och nivåer

H.264-standarden definierar profiler (Baseline, Main, High) och nivåer (Level 1–5.2) som begränsar maximala videoparametrar. Baseline Profile är kompatibel med alla enheter men stöder inte B-bildrutor. High Profile ger maximal kvalitet och används för 1080p-innehåll.

För 4K-streaming krävs Level 5.1 och högre, vilket stöds av de flesta mobila enheter sedan 2018. Codec-nivån bestämmer maximal upplösning, bitrate och buffertstorlek, vilket garanterar korrekt avkodning på alla certifierade enheter.

Encoding för streaming

Encoding för streaming skiljer sig från arkivencoding genom behovet att skapa flera kvalitetsvarianter (ABR-stege) och optimering för nätverksöverföring. Innehållsleverantörer använder realtidstranskodning eller förberedande encoding för VOD.

En typisk ABR-uppsättning för mobila appar innehåller 4–6 varianter: från 144p (200 kbps) för svaga nätverk till 1080p (8 Mbit/s) för Wi-Fi. Rekommenderade upplösningar: 144p, 240p, 360p, 480p, 720p, 1080p. För 4K-innehåll läggs 1440p och 2160p till.

Transkodning på mobila enheter

kotlin
val mediaCodec = MediaCodec.createEncoderByType(
    MediaFormat.MIMETYPE_VIDEO_AVC
)
val format = MediaFormat.createVideoFormat(
    MediaFormat.MIMETYPE_VIDEO_AVC,
    1280, 720
).apply {
    setInteger(MediaFormat.KEY_BIT_RATE, 3_000_000)
    setInteger(MediaFormat.KEY_FRAME_RATE, 30)
    setInteger(MediaFormat.KEY_I_FRAME_INTERVAL, 2)
    setInteger(MediaFormat.KEY_PROFILE,
        MediaCodecInfo.CodecProfileLevel.AVCProfileHigh)
    setInteger(MediaFormat.KEY_LEVEL,
        MediaCodecInfo.CodecProfileLevel.AVCLevel31)
}
mediaCodec.configure(format, null, null, MediaCodec.CONFIGURE_FLAG_ENCODE)

Encoding för livesändningar

För livesändningar är låg latens särskilt viktig. Encoding-inställningar bör minimera codecens in-/utgångsfördröjning: rekommenderad GOP-storlek på 1–2 sekunder (var 30–60 bildruta), B-bildrutor avstängda eller minimerade, för H.264 används Baseline Profile.

Moderna protokoll för låg latens — LL-HLS och CMAF-Low Latency — kräver fragmenterad encoding med segment på 1–2 sekunder och möjlighet till partiell laddning (Partial Segments). Codecen måste stödja moof-box i varje segment för fragmenterad MP4.

Optimering av encoding-pipeline

  • Hårdvaruencoding via MediaCodec (Android) eller VideoToolbox (iOS) är obligatorisk för realtid.
  • Flertrådad encoding på servern med libx264/libx265 i ultrafast eller veryfast läge.
  • Encodingförinställningar: placebo — sämst för VOD (maximal komprimering), ultrafast — för livesändningar.
  • Two-pass VBR — föredraget läge för VOD, som ger förutsägbar storlek och kvalitet.

Vanliga frågor

Vad är videoencoding i mobila appar?

Videoencoding — processen att komprimera en digital videosignal med hjälp av codecs för att minska datamängden. I mobila appar möjliggör encoding överföring och lagring av video, där storleken minskas hundratals gånger utan märkbar kvalitetsförlust på enhetens skärm.

Vilken codec är bättre: H.264 eller H.265?

H.264 ger maximal kompatibilitet med äldre enheter, medan H.265 är 40–50% effektivare vid samma kvalitet. För 1080p-innehåll och lägre räcker H.264, för 4K rekommenderas H.265 eller AV1 om enheten stöder det.

Vad är bitrate och hur väljer man det?

Bitrate — mängden data per sekund video. För 1080p är optimal bitrate 3–8 Mbit/s för H.264, 2–5 Mbit/s för H.265. Valet beror på innehållet: dynamiska scener (sport) kräver högre bitrate, statiska scener (intervjuer) lägre bitrate.

Hur skiljer sig VP9 från AV1?

VP9 — föregångaren till AV1 från Google, som ger komprimering på H.265-nivå. AV1 komprimerar 20–30% effektivare än VP9 men kräver 5–10 gånger mer resurser för encoding. VP9 är bättre för YouTube, AV1 — för Netflix och moderna streamingtjänster.

Hur ställer man in encoding för livesändningar?

För livesändningar, använd H.264 Baseline Profile med GOP 1–2 sekunder, utan B-bildrutor, bitrate 2–4 Mbit/s för 1080p. Aktivera fragmenterad MP4 (CMAF) för LL-HLS och använd hårdvaruencoding via MediaCodec eller VideoToolbox.

Slutsats

  • Encoding — grundläggande teknik utan vilken videoöverföring över internet är omöjlig på grund av den enorma mängden okomprimerad data.
  • H.264 förblir kompatibilitetsstandarden och rekommenderas för universell strömning i mobila appar.
  • H.265 och AV1 ger 40–60% bättre komprimering men kräver hårdvarustöd för effektiv avkodning.
  • Bitrate och CRF — nyckelparametrar: för 1080p H.264 använd 3–8 Mbit/s, för 4K H.265 — 10–25 Mbit/s.
  • AAC — standard ljudcodec, Opus är att föredra för livesändningar på grund av minimal latens.
  • ABR-uppsättning för streaming innehåller 4–6 varianter från 144p till 1080p med olika bitrate.
  • Hårdvaruencoding är obligatorisk för realtid på mobila enheter.

Vi utvecklar en mobil applikation nyckelfärdigt

IT Sectr skapar iOS- och Android-applikationer för startups och företag sedan 2017. Vi ger dig råd och föreslår den bästa lösningen.

Diskutera projektet

Läs också