Encoding ng video sa mga mobile app: ano ito, mga codec at parameter

May-akda: IT Sectr Nai-publish: 2026-05-24 Oras ng pagbabasa: 8 min

Ang video encoding ay ang proseso ng pag-compress ng digital video signal sa isang format na angkop para sa pag-imbak at pagpapadala sa network na may kaunting pagkawala ng kalidad. Kung walang encoding, isang minuto ng uncompressed na video sa 4K na resolution ay tumatagal ng humigit-kumulang 30 GB, na ginagawang imposible ang pagpapadala sa internet. Ayon sa ulat ng Sandvine Global Internet Phenomena (2025), ang video ay bumubuo ng 65% ng lahat ng trapiko sa internet, at ang encoding ay ang pangunahing teknolohiya na ginagawang posible ito.

Mga Pangunahing Punto

  • Encoding — pag-compress ng video signal gamit ang mga codec upang bawasan ang dami ng data.
  • Mga codec na H.264 at H.265 — ang pangunahing pamantayan: ang AVC ay nagbibigay ng compatibility, ang HEVC ay mas mahusay na compression.
  • VP9 at AV1 — mga open codec mula sa Google at Alliance for Open Media, libre sa royalty.
  • Bitrate ang tumutukoy sa laki at kalidad: 2–5 Mbps para sa 1080p, 15–40 Mbps para sa 4K.
  • Mga audio codec na AAC at Opus — pamantayan para sa mga mobile app na may mababang latency at mataas na kalidad.

Ano ang video encoding?

Video encoding ay ang proseso ng pag-convert ng uncompressed video signal sa digital format gamit ang compression algorithms. Ang mga algorithm na ipinatupad sa mga video codec ay nag-aalis ng kalabisan na impormasyon sa spatial domain (sa loob ng isang frame) at sa temporal domain (sa pagitan ng magkakasunod na mga frame).

Ang uncompressed video ay isang pagkakasunod-sunod ng mga frame, kung saan ang bawat isa ay nakaimbak bilang isang array ng mga pixel sa RGB o YUV format. Kung walang compression, isang segundo ng 1080p video sa 30 FPS ay nangangailangan ng humigit-kumulang 1.5 GB ng memorya. Ang H.264 codec ay nag-compress ng stream na ito sa 3–5 Mbps, 2500 beses na mas maliit kaysa sa orihinal na volume.

Mga prinsipyo ng video compression

Ang mga video codec ay gumagamit ng dalawang uri ng compression: intra-frame at inter-frame. Intra-frame compression ay inilalapat sa bawat frame nang nakapag-iisa gamit ang mga algorithm na katulad ng JPEG: discrete cosine transform (DCT), quantization, at entropy encoding.

Inter-frame compression ay sinusuri ang pagkakaiba sa pagitan ng magkakasunod na mga frame at nag-e-encode lamang ng mga pagbabago. Kung static ang background, ang codec ay nagpapadala ng kumpletong frame nang isang beses (I-frame), at pagkatapos ay ang pagkakaiba lamang (P at B frames), na makabuluhang binabawasan ang dami ng data para sa mga eksenang may mababang dynamika.

Mga video codec: H.264, H.265, VP9, AV1

Ang pagpili ng video codec ay tumutukoy sa ratio ng kalidad-laki, compatibility sa mga device, at mga bayad sa lisensya. Sa merkado ng mobile app, apat na pangunahing codec ang nangingibabaw: H.264 (AVC), H.265 (HEVC), VP9 at AV1.

CodecPamantayanTaonCompression vs H.264Paglisensya
H.264/AVCMPEG-4 Part 1020031x (batayan)Royalty (MPEG LA)
H.265/HEVCMPEG-H Part 2201340–50% mas mahusayRoyalty (dalawang pool)
VP9Google201330–40% mas mahusayLibre
AV1AOM201850–60% mas mahusayLibre (Royalty-free)

H.264 — ang universal na pamantayan

H.264 (AVC — Advanced Video Coding) ay nananatiling pinaka-compatible na video codec: sinusuportahan ito ng lahat ng mobile device, browser at Smart TV mula noong 2005. Ang hardware acceleration ng H.264 decoding ay available kahit sa mga murang device, na ginagawang perpekto ito para sa universal streaming.

Ang pangunahing disbentaha ng H.264 — medyo mababang kahusayan ng compression kumpara sa mga modernong codec. Sa parehong bitrate, ang H.265 at AV1 ay nagbibigay ng kapansin-pansing mas mataas na kalidad, na lalong mahalaga para sa HDR at 4K na nilalaman.

H.265 — kahusayan para sa 4K

H.265 (HEVC — High Efficiency Video Coding) ay nagbibigay ng 40–50% mas mahusay na compression kaysa H.264 na may parehong visual na kalidad. Ito ay nakakamit sa pamamagitan ng mas flexible na paghahati ng frame sa mga bloke (CTU hanggang 64×64 pixels sa halip na 16×16) at pinahusay na mga algorithm ng paghula ng paggalaw.

Ang HEVC ay sinusuportahan sa lahat ng Apple device (simula sa iPhone 6), sa Android (simula sa bersyon 5.0 na may hardware decoding) at sa karamihan ng Smart TV. Ang mga bayad sa lisensya ng HEVC ay mas mataas kaysa H.264 at pinamamahalaan ng dalawang patent pool, na nagpapahirap sa legal na paggamit.

AV1 — ang open standard ng hinaharap

AV1 — video codec na binuo ng Alliance for Open Media (AOM), isang consortium na pinamumunuan ng Google, Netflix, Amazon, Intel at Mozilla. Ang AV1 ay nagbibigay ng 50–60% mas mahusay na compression kaysa H.264 at ganap na libre sa royalty, na ginagawang kaakit-akit para sa mga serbisyo ng streaming.

Ang pangunahing disbentaha ng AV1 — mataas na pagiging kumplikado ng pagtutuos ng encoding. Ang AV1 encoding ay maaaring 5–10 beses na mas mabagal kaysa H.264 sa parehong hardware, bagaman ang hardware decoding ay lumalabas na sa mga device noong 2024–2025 (Snapdragon 8 Gen 3, Apple A17 Pro).

Mga audio codec: AAC, MP3, Opus

Ang mga audio codec sa mga mobile app ay hindi gaanong mahalaga kaysa sa mga video codec. Para sa video streaming, kinakailangan ang audio na may kaunting latency, mataas na kalidad, at compatibility sa MP4 at WebM container. Tatlong pangunahing audio codec ang sumasaklaw sa 99% ng mga mobile streaming app.

AAC — pamantayan ng Apple at YouTube

AAC (Advanced Audio Coding) — ang kahalili ng MP3, binuo ng MPEG noong 1997 at naging standard na audio codec para sa iTunes, YouTube at Android. Ang AAC ay nagbibigay ng parehong kalidad ng MP3 sa 30% mas mababang bitrate at sumusuporta sa multi-channel na audio hanggang 7.1.

Para sa mga mobile app, inirerekomenda ang AAC-LC sa bitrate na 128–192 kbps para sa stereo at AAC-HE para sa mababang bitrate na 32–64 kbps. Ang hardware decoding ng AAC ay available sa lahat ng modernong device, na nagpapaliit sa pagkonsumo ng kuryente.

Opus — modernong audio codec

Opus — open audio codec mula sa IETF (RFC 6716), na nagbibigay ng pinakamahusay na kalidad sa lahat ng audio codec sa bitrate mula 6 hanggang 510 kbps. Pinagsasama ng Opus ang SILK (algorithm para sa pagsasalita) at CELT (para sa musika) at awtomatikong nagpapalipat ng mga mode depende sa nilalaman.

Ginagamit ang Opus sa WebRTC para sa mga video call, sa mga app na Spotify at Discord, at sinusuportahan sa HLS simula sa iOS 11 at Android 5.0. Ang mababang latency ng Opus (5–26 ms kumpara sa 40–100 ms sa AAC) ay ginagawa itong mas pinipiling pagpipilian para sa mga live broadcast at video conference.

Mga parameter ng encoding: bitrate, resolution, FPS

Ang mga parameter ng encoding ay tumutukoy sa huling laki ng file, kalidad ng video, at compatibility sa mga device. Ang developer ng mobile app ay dapat pumili ng pinakamainam na setting para sa bawat uri ng nilalaman: pelikula, sports broadcast, nilalaman ng user.

Bitrate at mga uri nito

Bitrate — ang bilang ng mga bit na ginamit para mag-encode ng isang segundo ng video. Pinagkaiba ang CBR (Constant Bitrate) — pare-parehong bitrate para sa mga live broadcast, VBR (Variable Bitrate) — variable na may target na kalidad para sa archival storage, at ABR (Average Bitrate) — average para sa streaming.

ResolusyonH.264 (inirerekomenda)H.265/HEVCAV1
360p400–800 kbps250–500 kbps200–400 kbps
720p1.5–4 Mbps1–2.5 Mbps0.8–2 Mbps
1080p3–8 Mbps2–5 Mbps1.5–4 Mbps
4K (2160p)15–40 Mbps10–25 Mbps8–20 Mbps

CRF — kontrol ng kalidad

CRF (Constant Rate Factor) — parameter ng encoding sa x264 at x265 na nagtatakda ng target na kalidad sa halip na fixed bitrate. Ang CRF scale mula 0 (lossless) hanggang 51 (pinakamasamang kalidad), kung saan 18–28 ang working range. Para sa mga mobile app, inirerekomenda ang CRF 23 para sa x264 at CRF 25 para sa x265.

Ang CRF 18–20 ay nagbibigay ng mataas na kalidad para sa presentation content at offline viewing. Ang CRF 24–28 ay angkop para sa streaming at nilalaman ng user, kung saan ang laki ng file ay mas mahalaga kaysa sa absolute na kalidad.

Mga profile at antas ng codec

Ang H.264 standard ay tumutukoy ng mga profile (Baseline, Main, High) at mga antas (Level 1–5.2) na naglilimita sa maximum na mga parameter ng video. Ang Baseline Profile ay compatible sa lahat ng device ngunit hindi sumusuporta sa mga B frame. Ang High Profile ay nagbibigay ng maximum na kalidad at ginagamit para sa 1080p na nilalaman.

Para sa 4K streaming, kinakailangan ang Level 5.1 at mas mataas, na sinusuportahan ng karamihan ng mga mobile device mula noong 2018. Ang antas ng codec ay tumutukoy sa maximum na resolution, bitrate, at laki ng buffer, na ginagarantiyahan ang tamang decoding sa lahat ng sertipikadong device.

Encoding para sa streaming

Encoding para sa streaming ay naiiba sa archival encoding sa pangangailangang lumikha ng maramihang variant ng kalidad (ABR ladder) at pag-optimize para sa network transmission. Ang mga provider ng nilalaman ay gumagamit ng real-time transcoding o paunang encoding para sa VOD.

Ang tipikal na ABR set para sa mga mobile app ay may kasamang 4–6 na variant: mula 144p (200 kbps) para sa mahina na network hanggang 1080p (8 Mbps) para sa Wi-Fi. Mga inirerekomendang resolusyon: 144p, 240p, 360p, 480p, 720p, 1080p. Para sa 4K na nilalaman, idinadagdag ang 1440p at 2160p.

Transcoding sa mobile device

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 para sa live broadcast

Para sa mga live broadcast, mahalaga ang mababang latency. Ang mga setting ng encoding ay dapat mabawasan ang input/output latency ng codec: inirerekomenda ang laki ng GOP na 1–2 segundo (bawat 30–60 frame), ang mga B frame ay naka-off o minimized, para sa H.264 ginagamit ang Baseline Profile.

Ang mga modernong protocol para sa mababang latency — LL-HLS at CMAF-Low Latency — ay nangangailangan ng fragmented encoding na may mga segment na 1–2 segundo at kakayahang bahagyang mag-load (Partial Segments). Ang codec ay dapat sumuporta sa moof-box sa bawat segment para sa fragmented MP4.

Pag-optimize ng encoding pipeline

  • Hardware encoding sa pamamagitan ng MediaCodec (Android) o VideoToolbox (iOS) ay mandatory para sa real-time.
  • Multi-thread encoding sa server gamit ang libx264/libx265 sa ultrafast o veryfast mode.
  • Encoding presets: placebo — pinakamasama para sa VOD (maximum compression), ultrafast — para sa live broadcast.
  • Two-pass VBR — ginustong mode para sa VOD, na nagbibigay ng predictable na laki at kalidad.

Mga Madalas Itanong

Ano ang video encoding sa mga mobile app?

Video encoding — proseso ng pag-compress ng digital video signal gamit ang mga codec upang bawasan ang dami ng data. Sa mga mobile app, pinapayagan ng encoding ang pagpapadala at pag-imbak ng video, na binabawasan ang laki ng daan-daang beses nang walang kapansin-pansing pagkawala ng kalidad sa screen ng device.

Aling codec ang mas mahusay: H.264 o H.265?

H.264 ay nagbibigay ng maximum na compatibility sa mga lumang device, at ang H.265 ay 40–50% mas mahusay sa parehong kalidad. Para sa 1080p na nilalaman at pababa, sapat na ang H.264, para sa 4K inirerekomenda ang H.265 o AV1 kung sinusuportahan ng device.

Ano ang bitrate at paano ito pipiliin?

Bitrate — dami ng data bawat segundo ng video. Para sa 1080p, ang optimal na bitrate ay 3–8 Mbps para sa H.264, 2–5 Mbps para sa H.265. Ang pagpili ay depende sa nilalaman: ang mga dynamic na eksena (sports) ay nangangailangan ng mas mataas na bitrate, ang mga static na eksena (panayam) — mas mababang bitrate.

Paano naiiba ang VP9 sa AV1?

VP9 — hinalinhan ng AV1 mula sa Google, na nagbibigay ng compression sa antas ng H.265. Ang AV1 ay nag-compress ng 20–30% mas mahusay kaysa VP9, ngunit nangangailangan ng 5–10 beses na mas maraming mapagkukunan para sa encoding. Mas mahusay ang VP9 para sa YouTube, AV1 — para sa Netflix at modernong serbisyo ng streaming.

Paano i-set up ang encoding para sa live broadcast?

Para sa live broadcast, gamitin ang H.264 Baseline Profile na may GOP 1–2 segundo, walang B frame, bitrate 2–4 Mbps para sa 1080p. I-activate ang fragmented MP4 (CMAF) para sa LL-HLS at gamitin ang hardware encoding sa pamamagitan ng MediaCodec o VideoToolbox.

Buod

  • Encoding — pangunahing teknolohiya na kung wala ang pagpapadala ng video sa internet ay imposible dahil sa napakalaking dami ng uncompressed na data.
  • H.264 ay nananatiling pamantayan ng compatibility at inirerekomenda para sa universal streaming sa mga mobile app.
  • H.265 at AV1 ay nagbibigay ng 40–60% mas mahusay na compression, ngunit nangangailangan ng hardware support para sa mahusay na decoding.
  • Bitrate at CRF — pangunahing parameter: para sa 1080p H.264 gamitin ang 3–8 Mbps, para sa 4K H.265 — 10–25 Mbps.
  • AAC — standard audio codec, ang Opus ay mas mainam para sa live broadcast dahil sa minimal na latency.
  • ABR set para sa streaming ay may kasamang 4–6 na variant mula 144p hanggang 1080p na may iba't ibang bitrate.
  • Hardware encoding ay mandatory para sa real-time sa mga mobile device.

Gagawa kami ng mobile application na turnkey

Gumagawa ang IT Sectr ng mga iOS at Android application para sa mga startup at negosyo mula noong 2017. Magpapayo kami sa iyo at magmumungkahi ng pinakamahusay na solusyon.

Pag-usapan ang proyekto

Basahin din