Mode Kecepatan Bit VP9 Secara Detail

Pengantar

Meskipun kami memberikan detail tingkat tinggi tentang mode kecepatan bit di halaman Encoding Dasar kami, mode ini hanya membahas mode CQ (Kualitas Terlatih).

Dokumen ini menjelaskan cara praktis lain untuk menyesuaikan kecepatan bit VP9 untuk dioptimalkan untuk berbagai skenario. Contoh di bawah ini menggunakan FFmpeg.

Kompresi

Teknologi kompresi video seperti VP9 bertujuan untuk mengurangi jumlah data yang diperlukan untuk menyampaikan gambaran yang jelas dan kesan gerak kepada pengguna akhir.

Salah satu teknik utama yang digunakan untuk mencapai hal ini adalah kuantisasi. Kuantizer secara matematis menyederhanakan berbagai elemen digital dari gambar. Misalnya, hal ini dapat mengurangi rentang warna yang digunakan, dan selanjutnya dapat menjalankan fungsi matematika pada data untuk kelancaran yang dirasakan kurangnya resolusi halus dalam rentang warna yang berkurang. Ada banyak fungsi seperti itu.

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

Di VP9, kuantisasi dilakukan pada koefisien transformasi. Tindakan ini akan mengurangi kecepatan bit yang diperlukan untuk mempertahankan kualitas yang dirasakan, dengan menambahkan ke encoding.

Pada akhirnya jika ada kuantisasi yang lebih banyak (angka Q yang lebih tinggi), detail akan hilang dan kualitasnya lebih rendah, tetapi data yang diperlukan untuk menyimpan frame lebih sedikit. Pada umumnya, encoder VP9 mencapai sasaran kecepatan bitnya dengan mengubah Q dari waktu ke waktu, bergantung pada kompleksitas setiap frame.

Pengoptimalan kasus penggunaan

Untuk memungkinkan pengguna "tune" kompresi VP9 sesuai kebutuhan khusus mereka, Anda dapat menyesuaikan keseimbangan kualitas dan kecepatan bit pada saat kompresi awal melalui sejumlah antarmuka pemrograman.

Encoder memiliki keseimbangan antara kecepatan, kualitas, dan kecepatan bit.

  • Jika pengguna berfokus pada kualitas, mereka harus siap menjalani waktu encoding yang lebih lama atau menyediakan resource pemrosesan yang lebih cepat dan lebih berlimpah.

  • Jika pengguna berfokus untuk memastikan file berenkode VP9 output berukuran kecil dan dapat dikirim dengan cepat, file tersebut harus siap untuk mengurangi jumlah waktu untuk dapat memproses gambar oleh kuantisasi, dan ini akan menghasilkan detail yang lebih rendah tempat kuantisasi dapat bekerja.

  • Jika pengguna hanya berfokus pada kecepatan pengiriman (misalnya dalam webcast live atau konferensi video dua arah), kuantisasi mungkin sepenuhnya berada di bawah batasan kecepatan yang dapat digunakan untuk menyampaikan byte data yang dapat digunakan melalui jaringan (yaitu, "bitrate").

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

Mode kecepatan bit VP9

Mari kita mulai dengan melihat mode kecepatan bit utama yang didukung VP9:

Mode
Quantizer Konstan (Q) Memungkinkan Anda menentukan nilai kuantisasi tetap; kecepatan bit akan bervariasi
Kualitas Dibatasi (CQ) Memungkinkan Anda menetapkan tingkat kualitas maksimum. Kualitas dapat bervariasi dalam parameter kecepatan bit
Kecepatan Bit Variabel (VBR) Menyeimbangkan kualitas dan kecepatan bit dari waktu ke waktu dalam batasan kecepatan bit
Kecepatan Bit Konstan (CBR) Berupaya menjaga kecepatan bit tetap konstan, tetapi kualitasnya bervariasi

T

Diagram mode Q

Mode Quantizer konstan adalah pilihan tepat untuk skenario ketika permasalahan ukuran file dan kecepatan bit sepenuhnya berada di bawah kualitas akhir.

Kasus penggunaan untuk setelan Q dapat ditemukan di bioskop digital, suite pengeditan digital, atau aplikasi reklame digital, tempat konten dapat ditayangkan di media penyimpanan fisik atau dalam waktu yang tidak terbatas -- jauh sebelum konten yang sebenarnya digunakan dan output yang diinginkan harus memiliki kualitas visual tertinggi.

Pengoptimalan kecepatan bit mode Q VP9

Mode Quantizer konstan memerlukan konfigurasi minimal. Sesuai dengan namanya, mode Q berfokus untuk mempertahankan kuantisasi pada tingkat "kualitas" target, dan memungkinkan kuantum menentukan alur data yang ingin diproses. Yang ditentukan pengguna hanyalah kualitas target.

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

Gunakan parameter command line FFmpeg berikut untuk pengoptimalan kecepatan bit mode Q:

Fffeg
-b:v 0 Dengan menandai kecepatan bit video sebagai 0, kami secara eksplisit menyetel mode "Q"
-g <arg> Menetapkan Interval Keyframe dalam frame (setelan defaultnya adalah 240)
-crf <arg> Menetapkan tingkat kualitas maksimum. Nilai yang valid adalah 0-63. Angka yang lebih rendah berkualitas lebih tinggi
-quality good -speed 0 Default dan direkomendasikan untuk sebagian besar aplikasi. best lebih merupakan alat riset, dengan peningkatan marginal lebih dari -quality good -speed 0
-lossless Mode tanpa kerugian

Kecepatan bit mode Q : Contoh FFmpeg

Contoh pertama adalah setelan mode Q yang sangat ekstrem dan hanya disediakan 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 asli.)

ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v 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 bervariasi menurut -crf. Perlu diketahui bahwa -g tidak ditentukan, sehingga secara default akan ditetapkan ke 240, dan dalam praktiknya, -crf ditetapkan secara default ke 10, sehingga kita akan memiliki hasil yang sama tanpa menyertakan kedua parameter tersebut pada contoh kedua dari tiga contoh:

ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v 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 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 vp9 -b:v 0 -crf 63 -quality good \
  -speed 0 -c:a libvorbis Q_crf_63_120s_tears_of_steel_1080p.webm

Ukuran output contoh ini berbeda-beda di disk. Dengan -crf disetel ke 0, file berukuran 711.8 MB, dengan -crf disetel ke 10, ukuran file adalah 125,3 MB, dan dengan -crf yang disetel ke 63, file berukuran 4,5 MB. Secara sangat sederhana, hal ini memperjelas bahwa kami telah mengurangi kualitas file berenkode VP9 yang dihasilkan dengan meningkatkan nilai argumen -crf. Ringkasan lengkap semua file output terdapat di Tabel Hasil di bawah.

Sekarang kita akan membandingkan efek dari mengubah setelan -g.

ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v 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 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 vp9  -g 480 -b:v 0 -quality good \
  -speed 0 -c:a libvorbis Q_g_480_120s_tears_of_steel_1080p.webm

Kita dapat melihat bahwa setelan -g 1 menghasilkan file yang sangat besar, berukuran 25,9 MB. Bandingkan hal ini dengan mengubah -g 240 (secara eksplisit disetel sama dengan default) yang akan menghasilkan file 4,5 MB dan -g 480 yang akan berakhir dengan 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 kecepatan bit. Sebagian besar video berisi campuran adegan gerak tinggi (misalnya, urutan tindakan) dan adegan dengan lebih sedikit detail (misalnya, percakapan). Dengan mode CQ, encoder dapat mempertahankan level kualitas yang wajar selama scene yang lebih panjang dan lebih mudah (tanpa membuang-buang bit), sekaligus mengalokasikan lebih banyak bit untuk urutan yang sulit.

Meskipun demikian, kita tetap harus membatasi proses dengan menyediakan rentang atas -- jika tidak, tidak ada kompresi sama sekali. Kita juga dapat menetapkan rentang yang lebih rendah, meskipun gambar berwarna hitam dan proses encoding hampir tidak melakukan apa pun, tetapi kita tetap akan meneruskan data tersebut, mungkin kurang efisien daripada, tetapi dengan hasil akhir bahwa hitamnya tidak dikompresi secara signifikan dan terlihat "sangat hitam".

Selain itu, kita juga harus menetapkan nilai minimum pengukuran. Dalam VP9, ambang kuantisasi dapat bervariasi dari 0 hingga 63.

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

Contoh pertama memberikan batasan yang cukup lebar. Dibandingkan dengan contoh yang diberikan di atas untuk Q, bagaimanapun, kami menemukan bahwa ini memaksa kecepatan bit ke dalam rentang yang lebih tinggi dan kualitas output sangat tinggi. Ukuran file terutama lebih besar.

ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v 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 instance ini berukuran 20,2 MB pada disk -- lebih kecil dari enkode mode Q dalam contoh di atas.

Sebaliknya untuk contoh berikutnya, kami telah membatasi kecepatan bit ke rentang yang jauh lebih ditentukan.

ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v 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 hal ini, ukuran file output adalah 24,1 MB, dan pada saat kompleksitas dan gerakan yang tinggi, kualitas video turun secara signifikan dibandingkan dengan contoh sebelumnya.

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

Dalam contoh terakhir ini, ukuran output menurun secara signifikan, sehingga menurun menjadi 13,2 MB pada disk.

VBR

Mode kecepatan bit variabel (VBR) direkomendasikan untuk melakukan streaming file video on demand dengan konten gerakan tinggi (misalnya, olahraga). Sangat cocok dengan penayangan berbasis HTTP.

Diagram mode VBR

Pada model VBR, scene tindakan dapat dienkode dengan kecepatan bit yang lebih tinggi daripada scene "lebih mudah" yang konsisten dengan keyframe.

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

VP9 VBR juga direkomendasikan untuk mengenkode olahraga dan konten lainnya 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:
Fffeg
-quality good Jika ini ada, FFmpeg akan mempertimbangkan setelan -speed berikutnya
-speed <arg> Untuk VIDEO ON DEMAND Nilai yang valid adalah 0-4, dengan 0 sebagai kualitas tertinggi dan 4 sebagai yang terendah. (Untuk live streaming, rentangnya adalah 5-8 - Lihat CBR di bawah)
Mode kecepatan bit VBR: Contoh FFmpeg
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v 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 vp9  -b:v 2000k \
  -minrate 1500k -maxrate 2500k -quality good -speed 5  -c:a libvorbis \
  VBR_good_5_120s_tears_of_steel_1080p.webm
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v vp9  -b:v 2000k \
  -minrate 1500k -maxrate 2500k -quality good -speed 8  -c:a libvorbis \
  VBR_good_8_120s_tears_of_steel_1080pp.webm

CBR

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

Diagram mode CBR

CBR pada dasarnya menetapkan kecepatan bit atas sebagai "plafon keras". Artinya, proses encoding tidak dapat menghasilkan data dengan kecepatan yang tidak dapat dibawa oleh jaringan.

Misalnya, untuk streaming komunikasi real-time (konferensi video), aplikasi encoding tidak boleh membanjiri jaringan dengan lebih banyak data daripada yang dapat dibawa. Jika hal tersebut terjadi, masalah sinkronisasi audio/video atau periode frozen dapat sangat memengaruhi pengalaman pengguna, dibandingkan dengan penurunan efisiensi kompresi. Dengan memastikan plafon tinggi ditentukan, VP9 akan mengurangi kualitas saat plafon dicapai.

Parameter command line FFmpeg berikut digunakan untuk mode CBR:
Fffeg
-quality realtime Jika ini ada, FFmpeg akan mempertimbangkan setelan -speed berikutnya
-speed <arg> Untuk Live streaming, nilai Valid adalah 5 hingga 8, dengan 5 sebagai kualitas tertinggi dan 8 sebagai kualitas terendah. (Untuk Video On Demand, nilainya adalah 0 sampai 4. Lihat VBR di atas.)
-minrate <arg>
-maxrate <arg>
Menetapkan kecepatan bit minimum dan maksimum ** Ini harus disetel ke nilai kecepatan bit -b:v yang sama untuk mode CBR** .

Dalam istilah yang sangat sederhana, kami memperbaiki target kecepatan bit, kecepatan bit minimum, dan nilai maksimum ke nilai yang sama, dan memberi tahu kuantisasi bahwa operasi peka terhadap waktu.

Mode kecepatan bit CBR: Contoh FFmpeg

Contoh di bawah menjelaskan cara menyetel kecepatan bit ke target 2 Mbps dan 500 kbps:

ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v vp9  -b:v 2000k \
  -minrate 2000k -maxrate 2000k -quality realtime -speed 0 -c:a libvorbis \
  CBR_2000_realtime_0_120s_tears_of_steel_1080p.webm
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v vp9  -b:v 2000k \
  -minrate 2000k -maxrate 2000k -quality realtime -speed 5 -c:a libvorbis \
  CBR_2000_realtime_5_120s_tears_of_steel_1080p.webm
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v 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 vp9  -b:v 500k \
  -minrate 500k -maxrate 500k -quality realtime -speed 0 -c:a libvorbis \
  CBR_500_realtime__0_120s_tears_of_steel_1080p.webm
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v vp9  -b:v 500k \
  -minrate 500k -maxrate 500k -quality realtime -speed 5 -c:a libvorbis \
  CBR_500_realtime_5_120s_tears_of_steel_1080p.webm
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v vp9  -b:v 500k \
  -minrate 500k -maxrate 500k -quality realtime -speed 8 -c:a libvorbis \
  CBR_500_realtime_8_120s_tears_of_steel_1080p.webm

Hasil

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

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

File sumber dalam semua kasus adalah klip satu menit dua puluh detik (1.20) yang diambil dari Tears Of Steel.

Upload Encode Mnt 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
VBR_good_8_120s_tears_of_steel_1080p.webm 1 23,9 MB
CBR_2000_realtime_speed_0_120s_tears_of_steel_1080p.webm 98 21MB
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_0_120s_tears_of_steel_1080p.webm 73 6,2 MB
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 ini merupakan peningkatan kuantisasi yang cukup besar (dilihat oleh efek yang sangat "dithered" pada kecepatan bit cepat yang sangat rendah), VP9 masih dapat menghasilkan output 1080p dengan kecepatan bit sangat rendah, meskipun lebih cocok untuk perangkat seluler yang lebih kecil daripada layar yang lebih besar.

Pertimbangan untuk kasus penggunaan pengubahan skala (pengubahan ukuran)

Mode kecepatan bit VP9 jelas tidak terisolasi, dan dapat digabungkan dengan banyak argumen dan parameter lainnya untuk secara khusus menargetkan kasus penggunaan. Salah satu kasus penggunaan yang umum adalah menskalakan 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 kecepatan bit output. Dalam skenario saat dua perintah FFmpeg identik, hanya menyesuaikan ukuran video output akan mengubah ukuran file yang dihasilkan, dan memang kecepatan bitnya dalam model streaming.

Untuk menunjukkannya, kami telah mengambil contoh di titik tengah dari setiap mode kecepatan bit dan hanya menambahkan parameter penskalaan ulang.

Mode Q
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v 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 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 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 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

Upload Encode Mnt 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, berikut adalah perintah FFmpeg yang sama dari contoh sebelumnya, tetapi tanpa penskalaan:

Upload Encode Mnt 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 penting dalam ukuran file output untuk setiap file, dan meskipun dalam sebagian besar contoh pengurangan waktu encoding, dalam mode Q, waktu encoding benar-benar meningkat. Mengompresi video "more" memerlukan lebih banyak upaya, jadi meskipun file output diharapkan lebih kecil jika kualitas tidak dibatasi (seperti dalam mode Q), ini sebenarnya dapat meningkatkan waktu yang diperlukan untuk menghasilkan file output. Jangan berasumsi bahwa file yang lebih kecil selalu dapat dikirim lebih cepat melalui proses encoding.

Penskalaan ulang dan mengurangi kecepatan bit dalam kombinasi

Sebagai perbandingan akhir, contoh berikut menjalankan kembali contoh CQ, VBR, dan CBR untuk penskalaan ulang, tetapi kali ini kami membatasi target kecepatan bit ke tingkat 500 kbps -- sekitar seperempat (sejalan dengan penurunan skala ukuran gambar).

Mode CQ
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v 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 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 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 kecepatan bit

Upload Encode Mnt 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.