Mode Bitrate VP9 secara Mendetail

Pengantar

Meskipun kami memberikan detail tingkat tinggi tentang mode bitrate di halaman Encoding Dasar, halaman tersebut hanya membahas mode CQ (Kualitas Terbatas).

Dokumen ini menjelaskan cara praktis lainnya untuk menyesuaikan bitrate VP9 guna mengoptimalkan berbagai skenario. Contoh di bawah menggunakan FFmpeg.

Kompresi

Teknologi kompresi video seperti VP9 bertujuan untuk mengurangi jumlah data yang diperlukan untuk menyampaikan gambar dan kesan gerakan yang dapat dipahami kepada pengguna akhir.

Salah satu teknik utama yang digunakan untuk mencapai hal ini adalah kuantisasi. Quantizer menyederhanakan berbagai elemen gambar yang didigitalkan secara matematis. Misalnya, hal ini dapat mengurangi rentang warna yang digunakan, dan selanjutnya dapat melakukan fungsi matematika pada data untuk "memuluskan" kurangnya resolusi tinggi yang dirasakan dalam rentang warna yang dikurangi. Ada banyak fungsi seperti itu.

Kuantisasi (atau "Q") dijelaskan dengan baik dalam artikel Wikipedia-nya.

Dalam VP9, kuantisasi dilakukan pada koefisien transformasi. Hal ini mengurangi bitrate yang diperlukan untuk mempertahankan kualitas yang dirasakan, dengan menambahkan ke encoding.

Pada akhirnya, jika ada lebih banyak kuantisasi (angka Q yang lebih tinggi), detail akan hilang dan kualitasnya lebih rendah, tetapi lebih sedikit data yang diperlukan untuk menyimpan frame. Dalam sebagian besar kasus, encoder VP9 mencapai target bitrate-nya dengan mengubah Q dari waktu ke waktu, bergantung pada kompleksitas setiap frame.

Pengoptimalan kasus penggunaan

Untuk memungkinkan pengguna "menyesuaikan" kompresi VP9 dengan kebutuhan spesifik mereka, keseimbangan kualitas dan bitrate dapat disesuaikan pada saat kompresi awal melalui sejumlah antarmuka pemrograman.

Encoder memiliki keseimbangan geser antara kecepatan, kualitas, dan bitrate.

  • Jika pengguna berfokus pada kualitas, mereka harus bersiap untuk waktu encoding yang lebih lama atau menyediakan resource pemrosesan yang lebih cepat dan lebih banyak.

  • Jika pengguna berfokus untuk memastikan file output yang dienkode VP9 berukuran kecil dan dapat dikirim dengan cepat, mereka harus siap mengurangi waktu yang dibutuhkan untuk memproses gambar oleh quantizer, dan hal ini akan menghasilkan detail yang lebih rendah yang dapat diproses oleh quantizer.

  • Jika pengguna hanya berfokus pada kecepatan pengiriman (misalnya, dalam siaran web langsung atau konferensi video dua arah), kuantisasi mungkin sepenuhnya tunduk pada batasan laju data yang dapat digunakan yang dapat dikirimkan melalui jaringan (yaitu, "kecepatan bit").

Pilihan yang tepat akan sangat spesifik untuk setiap kasus penggunaan. Untuk mempermudah penyesuaian keseimbangan ini dengan kasus penggunaan Anda, VP9 mendukung konfigurasi langsung dalam empat "mode bitrate".

Mode kecepatan bit VP9

Mari kita mulai dengan melihat mode bitrate utama yang didukung VP9:

Mode
Penguantisasi Konstan (Q) Memungkinkan Anda menentukan nilai penguantisasi tetap; bitrate akan bervariasi
Kualitas Terbatas (CQ) Memungkinkan Anda menetapkan tingkat kualitas maksimum. Kualitas dapat bervariasi dalam parameter bitrate
Kecepatan Bit Variabel (VBR) Menyeimbangkan kualitas dan kecepatan bit dari waktu ke waktu dalam batasan kecepatan bit
Kecepatan Bit Konstan (CBR) Berusaha menjaga bitrate tetap konstan sementara kualitas bervariasi

T

Diagram mode Q

Mode Penguantisasi Konstan adalah pilihan yang baik untuk skenario di mana kekhawatiran tentang ukuran file dan bitrate sepenuhnya tunduk pada kualitas akhir.

Kasus penggunaan setelan Q dapat ditemukan di bioskop digital, rangkaian pengeditan digital, atau aplikasi papan iklan digital, tempat konten dapat dikirimkan pada media penyimpanan fisik atau selama waktu yang tidak dibatasi -- jauh sebelum konten benar-benar digunakan, dan tempat output yang diinginkan harus memiliki kualitas visual tertinggi.

Pengoptimalan bitrate mode Q VP9

Mode Constant Quantizer memerlukan konfigurasi minimal. Seperti namanya, Mode Q berfokus pada mempertahankan penguantisasi pada tingkat "kualitas" target, dan memungkinkan penguantisasi menentukan alur data yang ingin diprosesnya. Yang perlu ditentukan pengguna hanyalah kualitas target.

Ada informasi selengkapnya tentang spesifikasi kualitas target dari fokus pemrosesan gambar (bukan fokus bitrate) dalam artikel Encoding Dasar.

Gunakan parameter command line FFmpeg berikut untuk pengoptimalan bitrate mode Q:

ffmpeg
-b:v 0 Dengan menandai kecepatan bit video sebagai 0, kita secara eksplisit menetapkan mode "Q"
-g <arg> Menetapkan Interval Bingkai Utama dalam frame (defaultnya 240)
-crf <arg> Menetapkan tingkat kualitas maksimum. Nilai yang valid adalah 0-63. Angka yang lebih rendah menunjukkan kualitas yang lebih tinggi
-quality good -speed 0 Default dan direkomendasikan untuk sebagian besar aplikasi. best lebih merupakan alat riset, dengan peningkatan kecil dibandingkan -quality good -speed 0
-lossless Mode lossless

Kecepatan bit mode Q : Contoh FFmpeg

Contoh pertama adalah setelan mode Q yang sangat ekstrem dan disediakan hanya untuk ilustrasi. (Bahkan pemrosesan klip 120 detik dalam contoh ini akan memakan waktu beberapa jam, dan file output yang dihasilkan biasanya jauh lebih besar daripada sumber aslinya.)

ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -g 1 -b:v 0 -crf 0 -quality good \
  -speed 0 -lossless 1 -c:a libvorbis Q_g_1_crf_0_120s_tears_of_steel_1080p.webm.webm

Untuk membandingkan efek -crf, contoh berikut hanya memvariasikan -crf. Perhatikan bahwa -g tidak ditentukan, sehingga akan ditetapkan secara default ke 240, dan pada praktiknya -crf secara default ditetapkan ke 10, sehingga kita akan mendapatkan hasil yang sama tanpa menyertakan salah satu parameter dalam contoh kedua dari tiga contoh:

ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -b:v 0 -crf 0 -quality good \
  -speed 0 -c:a libvorbis Q_crf_0_120s_tears_of_steel_1080p.webm
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -b:v 0 -crf 10 -quality good \
  -speed 0 -c:a libvorbis Q_crf_10_120s_tears_of_steel_1080p.webm
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -b:v 0 -crf 63 -quality good \
  -speed 0 -c:a libvorbis Q_crf_63_120s_tears_of_steel_1080p.webm

Output contoh ini berbeda dalam ukuran di disk. Dengan -crf ditetapkan ke 0, ukuran file adalah 711,8 MB, dengan -crf ditetapkan ke 10, ukuran file adalah 125,3 MB, dan dengan -crf ditetapkan ke 63, ukuran file adalah 4,5 MB. Secara sederhana, hal ini menunjukkan bahwa kita telah mengurangi kualitas file yang dihasilkan yang dienkode VP9 dengan menaikkan nilai argumen -crf. Ringkasan lengkap semua file output ada di Tabel Hasil di bawah.

Sekarang kita akan membandingkan efek dari perubahan setelan -g.

ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -g 1 -b:v 0 -quality good \
  -speed 0  -c:a libvorbis Q_g_1_120s_tears_of_steel_1080p.webm
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -g 240 -b:v 0 -quality good \
  -speed 0 -c:a libvorbis Q_g_240_120s_tears_of_steel_1080p.webm
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -g 480 -b:v 0 -quality good \
  -speed 0 -c:a libvorbis Q_g_480_120s_tears_of_steel_1080p.webm

Kami mendapati bahwa setelan -g 1 menghasilkan file yang sangat besar, yaitu 25,9 MB. Bandingkan hal ini dengan mengubah -g 240 (secara eksplisit menyetel sama dengan default) yang menghasilkan file 4,5 MB, dan -g 480 yang menghasilkan file 4,4 MB.

CQ

CQ adalah mode yang direkomendasikan untuk video berbasis file.

Diagram mode CQ

Untuk sebagian besar jenis konten, sebaiknya gunakan mode kualitas terbatas (CQ), dengan batas bitrate. Sebagian besar video berisi campuran adegan dengan gerakan tinggi (misalnya, urutan adegan aksi) dan adegan dengan lebih sedikit detail (misalnya, percakapan). Mode CQ memungkinkan encoder mempertahankan tingkat kualitas yang wajar selama adegan yang lebih panjang dan lebih mudah (tanpa membuang bit), sekaligus mengalokasikan lebih banyak bit untuk urutan yang sulit.

Namun, kita tetap harus membatasi proses dengan memberikan rentang atas -- jika tidak, kompresi mungkin tidak akan terjadi sama sekali. Kita juga dapat menetapkan rentang yang lebih rendah, yang meskipun gambar berwarna hitam dan proses encoding hampir tidak ada hubungannya, kita tetap akan memproses data tersebut, mungkin kurang efisien daripada yang bisa kita lakukan, tetapi dengan hasil akhir bahwa bahkan warna hitam tidak dikompresi secara signifikan dan terlihat "sangat hitam".

Selain itu, kita juga harus menetapkan quantizer threshold. Di VP9, nilai minimum quantizer dapat bervariasi dari 0 hingga 63.

Parameter command line FFmpeg berikut digunakan untuk mode CQ:
ffmpeg
-b:v <arg> Menetapkan kecepatan bit target (misalnya, 500k)
-minrate <arg>
-maxrate <arg>
Menetapkan kecepatan bit minimum dan maksimum.
-crf <arg> Menetapkan tingkat kualitas maksimum. Nilai yang valid adalah 0 hingga 63, dengan angka yang lebih rendah menunjukkan kualitas yang lebih tinggi.
Mode kecepatan bit CQ: Contoh FFmpeg

Contoh pertama memberikan batasan yang cukup lebar. Namun, jika dibandingkan dengan contoh Q di atas, kita mendapati bahwa hal ini memaksa kecepatan bit ke rentang yang lebih tinggi dan kualitas outputnya jauh lebih tinggi. Ukuran file jauh lebih besar.

ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -b:v 2000k \
  -minrate 1000k -maxrate 4000k -crf 10  -c:a libvorbis \
  CQ_4000_1000_crf_10_120s_tears_of_steel_1080p.webm

File output dalam contoh ini berukuran 20,2 MB di disk -- jauh lebih kecil daripada encoding mode Q dalam contoh di atas.

Sebaliknya, untuk contoh berikutnya, kita telah membatasi bitrate ke rentang yang ditentukan dengan lebih cermat.

ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -b:v 2000k \
  -minrate 1500k -maxrate 2500k -crf 10  -c:a libvorbis \
  CQ_2500_1500_crf_10_120s_tears_of_steel_1080p.webm

Dalam contoh ini, ukuran file output adalah 24,1 MB, dan pada saat kompleksitas dan gerakan tinggi, kualitas video berkurang secara terlihat dibandingkan dengan contoh sebelumnya.

ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -b:v 1000k \
  -minrate 750k -maxrate 1400k -crf 10  -c:a libvorbis \
  CQ_1400_750_crf_10_120s_tears_of_steel_1080p.webm

Dalam contoh terakhir ini, ukuran output berkurang secara signifikan, turun menjadi 13,2 MB di disk.

VBR

Mode kecepatan bit variabel (VBR) direkomendasikan untuk streaming file video on demand dengan konten gerakan tinggi (misalnya olahraga). Dagger sangat cocok untuk pengiriman berbasis HTTP.

Diagram mode VBR

Dalam model VBR, adegan aksi dapat dienkode dengan bitrate yang lebih tinggi daripada adegan yang "lebih mudah", yang konsisten dengan keyframe.

Untuk model penayangan streaming besar, manfaat VBR dapat bertambah secara signifikan dalam hal distribusi dan infrastruktur. Jika banyak streaming VBR dikirimkan oleh infrastruktur yang sama, hal ini dapat memberikan manfaat bagi semua penonton yang menggunakan sistem.

VBR VP9 juga direkomendasikan untuk mengenkode olahraga dan konten lain dengan gerakan tinggi. Untuk konten dengan kompleksitas tinggi seperti itu, VBR mencapai kualitas yang lebih tinggi selama periode gerakan yang lebih rendah.

Parameter command line FFmpeg berikut digunakan untuk mode VBR:
ffmpeg
-quality good Kualitas good sesuai untuk video on demand
-speed <arg> Untuk VIDEO ON DEMAND, nilai yang valid adalah 0-5, dengan 0 sebagai kualitas tertinggi dan 5 sebagai kualitas terendah. (Untuk Live streaming, rentangnya adalah 5-9 - Lihat CBR di bawah)
Mode kecepatan bit VBR: Contoh FFmpeg
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -b:v 2000k \
  -minrate 1500k -maxrate 2500k -quality good -speed 0  -c:a libvorbis \
  VBR_good_0_120s_tears_of_steel_1080p.webm
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -b:v 2000k \
  -minrate 1500k -maxrate 2500k -quality good -speed 5  -c:a libvorbis \
  VBR_good_5_120s_tears_of_steel_1080p.webm

CBR

Mode Kecepatan Bit Konstan (CBR) direkomendasikan untuk live streaming dengan VP9.

Diagram mode CBR

CBR pada dasarnya menetapkan bitrate atas sebagai "batas atas". Artinya, proses encoding tidak dapat menghasilkan data pada kecepatan yang tidak dapat ditangani oleh jaringan.

Misalnya, untuk aliran komunikasi real-time (konferensi video), penting agar aplikasi encoding tidak membanjiri jaringan dengan lebih banyak data daripada yang dapat ditampung. Jika hal itu terjadi, masalah sinkronisasi audio/video atau frame yang macet akan memengaruhi pengalaman pengguna secara signifikan, lebih signifikan daripada penurunan efisiensi kompresi. Dengan memastikan batas atas yang ditentukan, VP9 akan mengurangi kualitas saat batas atas tersebut tercapai.

Parameter command line FFmpeg berikut digunakan untuk mode CBR:
ffmpeg
-quality realtime Kualitas realtime sesuai untuk live streaming
-speed <arg> Untuk live streaming, nilai yang valid adalah 5 hingga 9, dengan 5 sebagai kualitas tertinggi dan 9 sebagai kualitas terendah. (Untuk Video On Demand, nilainya adalah 0 hingga 5. Lihat VBR di atas.)
-minrate <arg>
-maxrate <arg>
Menetapkan kecepatan bit minimum dan maksimum ** Nilai ini harus ditetapkan ke nilai kecepatan bit -b:v yang sama untuk mode CBR** .

Secara sederhana, kita menetapkan target, bitrate minimum, dan maksimum ke nilai yang sama, serta memberi tahu penguantisasi bahwa operasi tersebut sensitif terhadap waktu.

Mode kecepatan bit CBR: Contoh FFmpeg

Contoh di bawah ini mengeksplorasi cara menyetel target bitrate ke 2 Mbps dan 500 kbps:

ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -b:v 2000k \
  -minrate 2000k -maxrate 2000k -quality realtime -speed 5 -c:a libvorbis \
  CBR_2000_realtime_speed_5_120s_tears_of_steel_1080p.webm
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -b:v 2000k \
  -minrate 2000k -maxrate 2000k -quality realtime -speed 8 -c:a libvorbis \
  CBR_2000_realtime__8_120s_tears_of_steel_1080p.webm
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -b:v 500k \
  -minrate 500k -maxrate 500k -quality realtime -speed 5 -c:a libvorbis \
  CBR_500_realtime_speed_5_120s_tears_of_steel_1080p.webm
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -b:v 500k \
  -minrate 500k -maxrate 500k -quality realtime -speed 8 -c:a libvorbis \
  CBR_500_realtime_speed_8_120s_tears_of_steel_1080p.webm

Hasil

Setiap encoding di atas dilakukan pada sistem Ubuntu Linux dengan spesifikasi berikut:

  • Prosesor: 4x Intel(R) Core(TM) i5-6500 CPU @ 3.20GHz
  • Memori (RAM): 8060 MB (1492 MB digunakan)
  • Grafis: Intel HD Graphics 530 (Skylake GT2)
  • OS: Ubuntu 16.04 LTS

Dalam semua kasus, file sumbernya adalah klip berdurasi satu menit dua puluh detik (1:20) yang diambil dari Tears Of Steel.

File Mnt Encode Ukuran File Pada Disk
Q_g_1_crf_0_120s_tears_of_steel_1080p.webm 81 1,06 GB
Q_crf_0_120s_tears_of_steel_1080p.webm 131 711,8 MB
Q_crf_10_120s_tears_of_steel_1080p.webm 118 125,3 MB
Q_crf_63_120s_tears_of_steel_1080p.webm 27 4,5 MB
Q_g_1_120s_tears_of_steel_1080p.webm 51 25,9 MB
Q_g_240_120s_tears_of_steel_1080p.webm 28 4,5 MB
Q_g_480_120s_tears_of_steel_1080p.webm 10 4,4 MB
CQ_4000_1000_crf_10_120s_tears_of_steel_1080p.webm 11 20,2 MB
CQ_2500_1500_crf_10_120s_tears_of_steel_1080p.webm 9 24,1 MB
CQ_1400_750_crf_10_120s_tears_of_steel_1080p.webm 50 13,2 MB
VBR_good_0_120s_tears_of_steel_1080p.webm 3 23,4 MB
VBR_good_5_120s_tears_of_steel_1080p.webm 4 23,9 MB
CBR_2000_realtime_speed_5_120s_tears_of_steel_1080p.webm 2 24,8 MB
CBR_2000_realtime_speed_8_120s_tears_of_steel_1080p.webm 1 21MB
CBR_500_realtime_speed_5_120s_tears_of_steel_1080p.webm 1 8,5 MB
CBR_500_realtime_speed_8_120s_tears_of_steel_1080p.webm 1 7,1 MB

Terlihat bahwa menyetel nilai -speed di atas 5 akan mengubah kecepatan pemrosesan VP9. Meskipun peningkatan kuantisasi ini cukup besar (terlihat dari efek "dither" yang kuat pada kecepatan bit cepat berkualitas sangat rendah), VP9 masih dapat menghasilkan output 1080p kecepatan bit rendah yang sangat baik, meskipun lebih cocok untuk perangkat seluler yang lebih kecil daripada layar yang lebih besar.

Pertimbangan untuk kasus penggunaan dengan penskalaan ulang (pengubahan ukuran)

Mode bitrate VP9 jelas tidak terisolasi, dan dapat digabungkan dengan banyak argumen dan parameter lain untuk menargetkan kasus penggunaan tertentu. Salah satu kasus penggunaan umum adalah mengubah skala dimensi video output, untuk menargetkan perangkat tertentu.

Contoh klasiknya adalah mengubah streaming HD menjadi output SD. Sekali lagi, hal ini akan berdampak signifikan pada waktu pemrosesan dan bitrate output. Dalam skenario ketika dua perintah FFmpeg identik, hanya menyesuaikan ukuran video output akan mengubah ukuran file yang dihasilkan, dan memang bitratenya dalam model streaming.

Untuk mencontohkan hal ini, kami telah mengambil contoh titik tengah dari setiap mode bitrate dan hanya menambahkan parameter penskalaan ulang.

Mode Q
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -b:v 0 -crf 10 -quality good \
  -speed 0 -vf scale=640x480 -c:a libvorbis 640x480_Q_crf_10_120s_tears_of_steel_1080p.webm
Mode CQ
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -b:v 2000k \
  -minrate 1500k -maxrate 2500k -crf 10 -vf scale=640x480 -c:a libvorbis \
  640x480_CQ_crf_0_120s_tears_of_steel_1080p.webm
Mode VBR
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -b:v 2000k \
  -minrate 1500k -maxrate 2500k -quality good -speed 5 -vf  scale=640x480 \
  -c:a libvorbis 640x480_VBR_good_5_120s_tears_of_steel_1080p.webm
Mode CBR
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -b:v 2000k \
  -minrate 2000k -maxrate 2000k -quality realtime -speed 5 -vf  scale=640x480 \
  -c:a libvorbis 640x480_CBR_2000_realtime_5_120s_tears_of_steel_1080p.webm

Tabel hasil untuk penskalaan ulang

File Mnt Encode Ukuran File Pada Disk
640x480_Q_crf_10_120s_tears_of_steel_1080p.webm 5 3,4 MB
640x480_CQ_crf_0_120s_tears_of_steel_1080p.webm 2 22,4 MB
640x480_VBR_good_5_120s_tears_of_steel_1080p.webm 1 22,6 MB
640x480_CBR_2000_realtime_5_120s_tears_of_steel_1080p.webm 4 23MB

Untuk memudahkan perbandingan, perintah FFmpeg ini sama dengan contoh sebelumnya, tetapi tanpa penskalaan:

File Mnt Encode Ukuran File Pada Disk
Q_crf_10_120s_tears_of_steel_1080p.webm 56 126MB
CQ_2500_1500_crf_10_120s_tears_of_steel_1080p.webm 9 24,1 MB
VBR_good_5_120s_tears_of_steel_1080p.webm 4 23,9 MB
CBR_2000_realtime_speed_5_120s_tears_of_steel_1080p.webm 1 24,8 MB

Seperti yang akan Anda lihat, ada pengurangan ukuran file output yang signifikan untuk setiap mode, dan meskipun ada pengurangan waktu encoding dalam sebagian besar contoh, dalam mode Q, waktu encoding justru meningkat. Mengompresi video "lebih" memerlukan lebih banyak upaya, jadi meskipun file output diperkirakan lebih kecil jika kualitas tidak dibatasi (seperti pada mode Q), hal ini justru dapat meningkatkan waktu yang diperlukan untuk menghasilkan file output. Jangan berasumsi bahwa file yang lebih kecil selalu dapat dikirim lebih cepat oleh proses encoding.

Mengubah skala dan mengurangi kecepatan bit secara bersamaan

Sebagai perbandingan akhir, contoh berikut menjalankan ulang contoh CQ, VBR, dan CBR dari penskalaan ulang, tetapi kali ini kita membatasi target bitrate ke tingkat 500 kbps -- kira-kira seperempat (sesuai dengan penskalaan ukuran gambar).

Mode CQ
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -b:v 500k \
  -minrate 350k -maxrate 550k -crf 10 -vf scale=640x480 -c:a libvorbis \
  640x480_CQ_crf_0_120s_tears_of_steel_1080p.webm
Mode VBR
ffmpeg -i "120s_tears_of_steel_1080p.webm" -c:v libvpx-vp9 -b:v 500k \
  -minrate 350k -maxrate 500k -quality good -speed 5 -vf scale=640x480 -c:a libvorbis \
  640x480_VBR_good_5_120s_tears_of_steel_1080p.webm
Mode CBR
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -b:v 500k \
  -minrate 500k -maxrate 500k -quality realtime -speed 5 -vf scale=640x480 -c:a libvorbis \
  640x480_CBR_2000_realtime_5_120s_tears_of_steel_1080p.webm

Tabel hasil untuk mengubah skala dan menurunkan target bitrate

File Mnt Encode Ukuran File Pada Disk
640x480_CQ_500_crf_0_120s_tears_of_steel_1080p.webm 1 7MB
640x480_VBR_500_good_5_120s_tears_of_steel_1080p.webm 1 7MB
640x480_CBR_500_realtime_5_120s_tears_of_steel_1080p.webm 1 7,6 MB

Seperti yang Anda lihat, waktu encoding telah dipersingkat lebih lanjut.