Encoding video adalah proses kompresi sinyal video digital ke format yang cocok untuk penyimpanan dan transmisi melalui jaringan dengan kehilangan kualitas minimal. Tanpa encoding, satu menit video tidak terkompresi dalam resolusi 4K memakan sekitar 30 GB, membuat transmisi melalui internet menjadi tidak mungkin. Menurut laporan Sandvine Global Internet Phenomena (2025), video merupakan 65% dari seluruh lalu lintas internet, dan encoding adalah teknologi kunci yang memungkinkan hal ini.
Poin Penting
Encoding video adalah proses mengubah sinyal video tidak terkompresi ke format digital menggunakan algoritma kompresi. Algoritma yang diimplementasikan dalam codec video menghilangkan informasi redundan baik dalam domain spasial (di dalam satu frame) maupun temporal (antara frame berurutan).
Video tidak terkompresi adalah urutan frame, di mana masing-masing disimpan sebagai array piksel dalam format RGB atau YUV. Tanpa kompresi, satu detik video 1080p pada 30 FPS membutuhkan sekitar 1,5 GB memori. Codec H.264 mengompresi aliran ini menjadi 3–5 Mbps, 2500 kali lebih kecil dari volume aslinya.
Codec video menggunakan dua jenis kompresi: intra-frame dan inter-frame. Kompresi intra-frame diterapkan pada setiap frame secara independen menggunakan algoritma yang mirip dengan JPEG: transformasi kosinus diskrit (DCT), kuantisasi, dan pengkodean entropi.
Kompresi inter-frame menganalisis perbedaan antara frame berurutan dan hanya mengodekan perubahan. Jika latar belakang statis, codec mengirimkan frame lengkap hanya sekali (I-frame), lalu hanya perbedaannya (frame P dan B), yang secara signifikan mengurangi volume data untuk adegan dengan dinamika rendah.
Pemilihan codec video menentukan rasio kualitas-ukuran, kompatibilitas dengan perangkat, dan biaya lisensi. Di pasar aplikasi mobile, empat codec utama mendominasi: H.264 (AVC), H.265 (HEVC), VP9, dan AV1.
| Codec | Standar | Tahun | Kompresi vs H.264 | Lisensi |
|---|---|---|---|---|
| H.264/AVC | MPEG-4 Part 10 | 2003 | 1x (dasar) | Berbayar (MPEG LA) |
| H.265/HEVC | MPEG-H Part 2 | 2013 | 40–50% lebih efisien | Berbayar (dua pool) |
| VP9 | 2013 | 30–40% lebih efisien | Gratis | |
| AV1 | AOM | 2018 | 50–60% lebih efisien | Gratis (Bebas royalti) |
H.264 (AVC — Advanced Video Coding) tetap menjadi codec video paling kompatibel: didukung oleh semua perangkat mobile, browser, dan Smart TV sejak 2005. Akselerasi hardware decoding H.264 tersedia bahkan di perangkat murah, menjadikannya ideal untuk streaming universal.
Kekurangan utama H.264 — efisiensi kompresi yang relatif rendah dibandingkan codec modern. Pada bitrate yang sama, H.265 dan AV1 memberikan kualitas yang lebih tinggi, yang sangat penting untuk konten HDR dan 4K.
H.265 (HEVC — High Efficiency Video Coding) memberikan kompresi 40–50% lebih baik daripada H.264 dengan kualitas visual yang sama. Ini dicapai melalui pembagian frame yang lebih fleksibel menjadi blok (CTU hingga 64×64 piksel, bukan 16×16) dan algoritma prediksi gerakan yang ditingkatkan.
HEVC didukung di semua perangkat Apple (mulai iPhone 6), di Android (mulai versi 5.0 dengan decoding hardware) dan di sebagian besar Smart TV. Biaya lisensi HEVC lebih tinggi daripada H.264 dan dikelola oleh dua pool paten, yang mempersulit penggunaan hukum.
AV1 — codec video yang dikembangkan oleh Alliance for Open Media (AOM), konsorsium yang dipimpin oleh Google, Netflix, Amazon, Intel, dan Mozilla. AV1 memberikan kompresi 50–60% lebih baik daripada H.264 dan sepenuhnya bebas royalti, menjadikannya menarik untuk layanan streaming.
Kekurangan utama AV1 — kompleksitas komputasi yang tinggi dalam encoding. Encoding AV1 bisa 5–10 kali lebih lambat daripada H.264 pada perangkat keras yang sama, meskipun decoding hardware sudah mulai muncul di perangkat 2024–2025 (Snapdragon 8 Gen 3, Apple A17 Pro).
Codec audio dalam aplikasi mobile tidak kalah pentingnya dengan codec video. Untuk streaming video, diperlukan audio dengan latensi minimal, kualitas tinggi, dan kompatibilitas dengan container MP4 dan WebM. Tiga codec audio utama mencakup 99% aplikasi streaming mobile.
AAC (Advanced Audio Coding) — penerus MP3, dikembangkan oleh MPEG pada tahun 1997 dan menjadi codec audio standar untuk iTunes, YouTube, dan Android. AAC memberikan kualitas yang sama dengan MP3 pada bitrate 30% lebih rendah dan mendukung audio multi-channel hingga 7.1.
Untuk aplikasi mobile, disarankan AAC-LC pada bitrate 128–192 kbps untuk stereo dan AAC-HE untuk bitrate rendah 32–64 kbps. Decoding hardware AAC tersedia di semua perangkat modern, meminimalkan konsumsi daya.
Opus — codec audio terbuka dari IETF (RFC 6716), yang memberikan kualitas terbaik di antara semua codec audio pada bitrate 6 hingga 510 kbps. Opus menggabungkan SILK (algoritma untuk bicara) dan CELT (untuk musik) dan secara otomatis mengganti mode tergantung konten.
Opus digunakan di WebRTC untuk panggilan video, di aplikasi Spotify dan Discord, dan didukung di HLS mulai iOS 11 dan Android 5.0. Latensi rendah Opus (5–26 ms vs 40–100 ms pada AAC) menjadikannya pilihan utama untuk siaran langsung dan konferensi video.
Parameter encoding menentukan ukuran file akhir, kualitas video, dan kompatibilitas dengan perangkat. Pengembang aplikasi mobile harus memilih pengaturan optimal untuk setiap jenis konten: film, siaran olahraga, konten pengguna.
Bitrate — jumlah bit yang digunakan untuk mengodekan satu detik video. Dibedakan CBR (Constant Bitrate) — bitrate konstan untuk siaran langsung, VBR (Variable Bitrate) — bervariasi dengan kualitas target untuk penyimpanan arsip, dan ABR (Average Bitrate) — rata-rata untuk streaming.
| Resolusi | H.264 (disarankan) | H.265/HEVC | AV1 |
|---|---|---|---|
| 360p | 400–800 kbps | 250–500 kbps | 200–400 kbps |
| 720p | 1,5–4 Mbps | 1–2,5 Mbps | 0,8–2 Mbps |
| 1080p | 3–8 Mbps | 2–5 Mbps | 1,5–4 Mbps |
| 4K (2160p) | 15–40 Mbps | 10–25 Mbps | 8–20 Mbps |
CRF (Constant Rate Factor) — parameter encoding di x264 dan x265 yang menetapkan kualitas target alih-alih bitrate tetap. Skala CRF dari 0 (lossless) hingga 51 (kualitas terburuk), di mana 18–28 adalah rentang kerja. Untuk aplikasi mobile, disarankan CRF 23 untuk x264 dan CRF 25 untuk x265.
CRF 18–20 memberikan kualitas tinggi untuk konten presentasi dan tontonan offline. CRF 24–28 cocok untuk streaming dan konten pengguna, di mana ukuran file lebih penting daripada kualitas absolut.
Standar H.264 mendefinisikan profil (Baseline, Main, High) dan level (Level 1–5.2) yang membatasi parameter video maksimum. Baseline Profile kompatibel dengan semua perangkat tetapi tidak mendukung frame B. High Profile memberikan kualitas maksimal dan digunakan untuk konten 1080p.
Untuk streaming 4K, diperlukan Level 5.1 dan lebih tinggi, yang didukung oleh sebagian besar perangkat mobile sejak 2018. Level codec menentukan resolusi maksimum, bitrate, dan ukuran buffer, menjamin decoding yang benar di semua perangkat bersertifikat.
Encoding untuk streaming berbeda dari encoding arsip dalam kebutuhan untuk membuat beberapa varian kualitas (ABR ladder) dan optimasi untuk transmisi jaringan. Penyedia konten menggunakan transcoding real-time atau encoding awal untuk VOD.
Set ABR tipikal untuk aplikasi mobile mencakup 4–6 varian: dari 144p (200 kbps) untuk jaringan lemah hingga 1080p (8 Mbps) untuk Wi-Fi. Resolusi yang disarankan: 144p, 240p, 360p, 480p, 720p, 1080p. Untuk konten 4K, ditambahkan 1440p dan 2160p.
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)
Untuk siaran langsung, latensi rendah sangat penting. Pengaturan encoding harus meminimalkan latensi input/output codec: disarankan ukuran GOP 1–2 detik (setiap 30–60 frame), frame B dimatikan atau diminimalkan, untuk H.264 gunakan Baseline Profile.
Protokol modern untuk latensi rendah — LL-HLS dan CMAF-Low Latency — memerlukan encoding terfragmentasi dengan segmen 1–2 detik dan kemampuan pemuatan parsial (Partial Segments). Codec harus mendukung moof-box di setiap segmen untuk MP4 terfragmentasi.
Pertanyaan Umum
Encoding video — proses kompresi sinyal video digital menggunakan codec untuk mengurangi volume data. Di aplikasi mobile, encoding memungkinkan transmisi dan penyimpanan video, mengurangi ukuran ratusan kali lipat tanpa kehilangan kualitas yang terlihat di layar perangkat.
H.264 memberikan kompatibilitas maksimal dengan perangkat lama, dan H.265 40–50% lebih efisien pada kualitas yang sama. Untuk konten 1080p dan di bawahnya, H.264 sudah cukup, untuk 4K disarankan H.265 atau AV1 jika perangkat mendukung.
Bitrate — jumlah data per detik video. Untuk 1080p, bitrate optimal adalah 3–8 Mbps untuk H.264, 2–5 Mbps untuk H.265. Pemilihan tergantung konten: adegan dinamis (olahraga) memerlukan bitrate lebih tinggi, adegan statis (wawancara) — bitrate lebih rendah.
VP9 — pendahulu AV1 dari Google, memberikan kompresi setara H.265. AV1 mengompresi 20–30% lebih efisien daripada VP9, tetapi membutuhkan 5–10 kali lebih banyak sumber daya untuk encoding. VP9 lebih baik untuk YouTube, AV1 — untuk Netflix dan layanan streaming modern.
Untuk siaran langsung, gunakan H.264 Baseline Profile dengan GOP 1–2 detik, tanpa frame B, bitrate 2–4 Mbps untuk 1080p. Aktifkan MP4 terfragmentasi (CMAF) untuk LL-HLS dan gunakan encoding hardware melalui MediaCodec atau VideoToolbox.
Kesimpulan
Kami akan mengembangkan aplikasi seluler turnkey
IT Sectr membuat aplikasi iOS dan Android untuk startup dan bisnis sejak 2017. Kami akan memberi saran dan mengusulkan solusi terbaik.
Baca juga