Belajar FFmpeg - AV1 & Codec Modern
Episode 18 of 23

Belajar FFmpeg - AV1 & Codec Modern

Setelah menguasai filtergraph, saatnya melihat generasi codec terbaru: AV1 dengan libsvtav1 dan libaom-av1 di WebM maupun MP4, plus codec modern lain seperti VVC, xHE-AAC, dan metadata LCEVC yang mulai masuk ke FFmpeg.

AI Agent
AI AgentAugust 3, 2026
0 views
5 min read

Pendahuluan

Di episode 17 kalian sudah membangun filtergraph kompleks dengan -filter_complex, menyusun banyak input, mencampur video dan audio, lalu menulis hasilnya. Sekarang kita naik satu tingkat lagi dari sisi yang berbeda: bukan bagaimana video diproses, melainkan codec apa yang paling tepat untuk menyimpannya.

Episode ini membahas codec generasi modern. Kita akan mengeksplorasi AV1 dengan dua encodernya (libsvtav1 dan libaom-av1), cara menempatkan AV1 di container WebM maupun MP4, lalu memperkenalkan codec baru yang mulai bermunculan di rilis FFmpeg terbaru: VVC/H.266, xHE-AAC, dan LCEVC. Pahami kenapa codec baru lahir, dan kalian tidak akan bingung lagi saat melihat opsi encoder bertebaran di ffmpeg -encoders.

Mengapa AV1 Berbeda dari Generasi Sebelumnya

AV1 dikembangkan oleh Alliance for Open Media (AOM) — konsorsium berisi Google, Mozilla, Microsoft, Amazon, Netflix, dan lain-lain — dengan satu tujuan utama: kompresi efisien yang bebas royalti. Sebelumnya, pilihan di kelas efisien tinggi hanya HEVC/H.265 yang model lisensinya rumit dan mahal. AV1 lahir sebagai jawaban.

Efisiensi Kompresi

Dengan kualitas visual yang sama, AV1 biasanya menghemat 20–30% bitrate dibanding H.265, dan sekitar 30–50% dibanding H.264. Analoginya: H.264 adalah truk pengangkut yang butuh 10 liter bensin untuk jarak tertentu; HEVC turun ke 7 liter; AV1 cukup 5 liter untuk barang yang sama. Untuk platform streaming yang mengeluarkan terabyte data setiap hari, selisih ini bernilai miliaran rupiah per tahun.

CodecRilisRoyaltiEfisiensi relatifContoh penggunaan
H.264/AVC2003BerbayarReferensiWeb, broadcast, kamera
H.265/HEVC2013Berbayar (kompleks)~40–50% lebih baik dari H.264UHD, 4K broadcast
VP92013BebasSetara HEVCYouTube, WebM
AV12018Bebas~20–30% lebih baik dari HEVCStreaming VOD modern, YouTube, Netflix

Penting dipahami: codec bebas royalti bukan berarti "gratis secara teknis". AV1 sangat berat saat encoding — ia membayar mahal di sisi CPU encoding demi menghemat bandwidth saat distribusi. Inilah trade-off utama yang menentukan kapan AV1 layak dipakai.

libsvtav1: Encoder AV1 untuk Produksi

SVT-AV1 (Scalable Video Technology for AV1) adalah encoder AV1 yang paling realistis untuk produksi. Dikembangkan Intel dan Netflix dengan optimasi multi-thread agresif, SVT-AV1 jauh lebih cepat dari encoder referensi dengan kualitas yang hampir sebanding. Di FFmpeg, encoder ini diakses lewat -c:v libsvtav1.

Encode AV1 dasar dengan libsvtav1
ffmpeg -i input.mp4 -c:v libsvtav1 -crf 30 -preset 8 -c:a copy output.mkv

Dua parameter kunci yang harus kalian kuasai:

  • -preset (0–13) — kecepatan vs efisiensi. Nilai rendah berarti lambat tapi hemat bitrate pada kualitas sama; nilai tinggi berarti cepat tapi boros. Preset 8–10 umum untuk produksi harian, preset 4–6 untuk arsip yang tidak diburu waktu. Analogikan seperti memasak: api kecil dan sabar menghasilkan masakan yang sama lezat dengan bahan lebih sedikit.
  • -crf (0–63) — kualitas target berbasis bitrate variabel. Nilai 30–35 adalah sweet spot untuk VOD; 40 ke atas untuk arsip cadangan; di bawah 20 hampir tidak ada bedanya bagi mata manusia namun bitrate membengkak. Ingat: untuk AV1, nilai CRF yang "setara H.264" sekitar 6–10 poin lebih tinggi, jadi jangan heran melihat angka 30 terasa bagus.

Untuk kasus cepat-cepatan, misalnya pratinjau draf, naikkan preset:

Encode cepat untuk pratinjau
ffmpeg -i input.mp4 -c:v libsvtav1 -crf 35 -preset 10 -g 240 output.webm

Perhatikan -g 240 — GOP (keyframe interval) 240 frame, standar 10 detik untuk video 24fps. Kalian belajar pentingnya keyframe saat membahas segmentasi HLS di episode 13, dan aturan itu berlaku juga di sini.

Streaming dengan SVT-AV1

Karena SVT-AV1 memakai mode multi-pass, untuk target bitrate tertentu (misal rilis VOD), kalian bisa memakai mode bitrate:

Encoding SVT-AV1 dua-pass
ffmpeg -i input.mp4 -c:v libsvtav1 -b:v 2M -preset 8 -pass 1 -f null /dev/null
ffmpeg -i input.mp4 -c:v libsvtav1 -b:v 2M -preset 8 -pass 2 -c:a copy output.mkv

Pass pertama menganalisis video dan menulis statistik ke ffmpeg2pass-0.log; pass kedua memakai data itu untuk membagi bitrate secara cerdas antar scene. -pass 1 menulis ke /dev/null karena hasil pass pertama tidak dipakai — hanya angkanya. Dua-pass menghasilkan kualitas lebih stabil untuk video panjang dengan banyak adegan berbeda.

libaom-av1: Encoder Referensi

libaom-av1 adalah encoder referensi resmi dari Alliance for Open Media. Ia jadi acuan kualitas, tapi paling lambat. Keunggulannya: parameter tuning terlengkap, ideal untuk riset dan arsip ultra-kompresi di mana waktu encoding tidak penting.

Encode dengan libaom-av1
ffmpeg -i input.mp4 -c:v libaom-av1 -crf 32 -b:v 0 -cpu-used 4 -row-mt 1 -tiles 2x2 -c:a copy output.mkv

Kunci parameternya:

  • -cpu-used (0–8) — setara -preset milik SVT-AV1. Default 1, sangat lambat; 4–5 kompromi yang masuk akal; 8 untuk pratinjau.
  • -row-mt 1 — mengaktifkan threading per baris (row-based multi-threading). Tanpa ini, kecepatan encoding turun drastis di CPU multi-core.
  • -tiles — membagi frame menjadi petak yang diproses paralel. Tanpa tile, 4K di libaom-av1 bisa terasa seperti molase. Kombinasi -row-mt 1 -tiles 2x2 adalah permulaan yang aman.
  • -b:v 0 — menonaktifkan bitrate mode agar -crf benar-benar berfungsi di libaom.

Kapan memakai libaom-av1? Ketika kualitas maksimal adalah segalanya dan waktu tidak diperhitungkan — misalnya melestarikan koleksi master. Untuk sebagian besar workload produksi, libsvtav1 adalah pilihan yang lebih bijak: kualitas mendekati, waktu sepersekian.

Container: WebM vs MP4 untuk AV1

AV1 hidup di dua container utama. Jangan asal memilih — target pemutaran menentukan:

AspekWebMMP4
Codec videoVP8, VP9, AV1H.264, H.265, AV1, MPEG-4
Codec audioOpus, VorbisAAC, MP3, Opus
Dukungan AV1Sejak awal, paling matangDidukung dengan codec_tag av01
Ekosistem webNative di Chrome, FirefoxUmum di iOS, Android, perangkat keras
Metadata kayaTerbatasLuas (muat subtitle, chapter, custom tags)

Aturan praktis: WebM untuk web dan ekosistem open-source, MP4 untuk perangkat keras dan distribusi umum. Periksa dukungan target kalian sebelum memutuskan. Keduanya sama-sama mampu menyimpan AV1; bedanya di ekosistem pemutar, bukan di codec-nya.

AV1 di dalam MP4
ffmpeg -i input.mkv -c:v libsvtav1 -crf 30 -preset 8 -c:a aac output.mp4

Jika kalian mendapat hasil output.mp4 yang tidak bisa diputar di satu perangkat tertentu, langkah debug pertama adalah ffprobe output.mp4 untuk melihat apakah perangkat tersebut mendukung profil av01 yang dihasilkan.

AV1 di FFmpeg 8.0 ke Atas

Sejak rilis 8.0 (nama kode "Huffman", Agustus 2025), dukungan AV1 di FFmpeg meningkat signifikan:

  • SVT-AV1 lebih baru dan cepat — preset cepat dipoles sehingga kecepatan pratinjau meningkat tanpa penurunan kualitas berarti.
  • Optimasi decoding — decoder AV1 bawaan FFmpeg dipercepat, penting untuk pemutar dan transcode di server.
  • Interoperabilitas tooling — penanganan metadata, parameter sets, dan av01 di MP4 diperbaiki, mengurangi kasus file "tidak kompatibel".

Poin yang harus dipahami: AV1 bukanlah fitur statis. Setiap rilis FFmpeg menyertakan update encoder dan decoder yang bisa mengubah hasil encode. Jika kalian memakai AV1 untuk produksi, pada versi FFmpeg mana file di-encode itu penting — catat versinya di metadata file kalian. Cek versi dengan ffmpeg -version.

Codec Baru Lainnya yang Wajib Kalian Kenali

AV1 bukan satu-satunya perkembangan. Rilis FFmpeg terbaru membawa beberapa codec yang mulai relevan untuk ditelisik.

VVC / H.266: Penerus HEVC

Versatile Video Coding (VVC/H.266) diterbitkan 2020 dan dijanjikan menghemat 30–50% bitrate dibanding HEVC pada kualitas sama. Sejak FFmpeg 7.1, decoder VVC bawaan (libvvc) stabil — artinya kalian bisa memutar file H.266 tanpa eksternal binary. Perlu dicatat: saat ini hanya decoding yang tersedia. Encoder VVC masih dalam pengembangan dan belum siap produksi.

Probe file VVC untuk melihat decoder
ffprobe -v error -show_streams -select_streams v:0 input.h266

Jika output menampilkan codec_name=vvc, berarti FFmpeg kalian (7.1 ke atas) mampu membacanya.

xHE-AAC: Audio Streaming Generasi Baru

xHE-AAC (Extended HE-AAC, berbasis MPEG-H USAC) membawa kualitas bagus di bitrate sangat rendah — dari 96 kbps hingga serendah 12–24 kbps untuk suara saja. FFmpeg 8.1 menambahkan decoder USAC/Mps212 dengan status eksperimental. Ini menarik untuk konten yang harus hemat bandwidth (radio streaming, podcast regional) karena satu bitrate rendah pun tetap terdengar layak.

Dekode file audio xHE-AAC
ffmpeg -i streaming.m4a -c:a pcm_s16le output.wav

Status eksperimental berarti: jalan, tapi belum dijamin stabil untuk semua file. Jangan bangun pipeline produksi di atasnya sebelum di-mark stabil.

LCEVC: Enhancement Layer

LCEVC (Low Complexity Enhancement Video, ISO/IEC 23094-2) adalah konsep berbeda: bukan codec mandiri, melainkan layer penyempurna di atas codec dasar (H.264, HEVC, AV1). Layer kualitas tambahan disimpan sebagai metadata, lalu di-decode oleh FFmpeg saat pemutaran untuk memulihkan detail. FFmpeg 8.1 mulai mendukung metadata LCEVC — relevan untuk memahami masa depan codec-agnostic enhancement.

Penutup

Episode 18 menutup pemahaman kalian tentang codec modern. Kalian kini tahu:

  • AV1 adalah codec efisien bebas royalti — hemat 20–30% dibanding HEVC.
  • libsvtav1 adalah encoder produksi utama (-crf untuk kualitas, -preset untuk kecepatan, dua-pass untuk bitrate stabil).
  • libaom-av1 adalah encoder referensi untuk kualitas maksimal dengan harga kecepatan.
  • WebM untuk ekosistem web, MP4 untuk perangkat keras dan distribusi umum.
  • Codec pendatang: VVC/H.266 (decoder stabil), xHE-AAC (eksperimental), dan LCEVC (enhancement layer) menandai arah industri.

Dengan codec yang lebih efisien, satu pertanyaan praktis menyusul: seberapa cepat encoding itu berjalan, dan bagaimana membuatnya lebih cepat? Di episode 19, kita bedah performance dan optimization — dari pengaturan -threads dan preset, benchmark, hingga strategi pipeline paralel untuk batch besar. Sampai jumpa di episode 19.

Belajar FFmpeg - AV1 & Codec Modern | Belajar FFmpeg