.

Libaom-AV1 memiliki mode kualitas konstan (CQ) (seperti CRF di x264 dan x265) yang akan memastikan bahwa setiap bingkai mendapatkan jumlah bit yang layak untuk mencapai tingkat kualitas (persepsi) tertentu, daripada mengkode setiap bingkai untuk memenuhi a target laju bit. . .

Panduan Pengkodean Video AV1

AV1 adalah codec video open source & royalty-free yang dikembangkan oleh Alliance for Open Media (Aomedia), konsorsium industri nirlaba. Tergantung pada kasus penggunaan, AV1 dapat mencapai efisiensi kompresi sekitar 30% lebih tinggi daripada VP9, ​​dan sekitar 50% efisiensi lebih tinggi dari h.264.

. Panduan ini saat ini berfokus pada Libaom dan SVT-AV1.

Libaom

. Itu juga digunakan untuk penelitian selama pengembangan AV1. Libaom didasarkan pada libvpx dan dengan demikian berbagi banyak karakteristiknya dalam hal fitur, kinerja, dan penggunaan.

.

Libaom menawarkan mode kontrol tingkat berikut yang menentukan kualitas dan ukuran file yang diperoleh:

  • Kualitas konstan
  • Bitrate rata-rata 1-pass

Untuk daftar opsi, jalankan ffmpeg -h encoder = libaom -av1 atau periksa dokumentasi online ffmpeg. Untuk opsi yang dapat diteruskan melalui -AOM -params, memeriksa -output aplikasi AOMENC direkomendasikan, karena saat ini tidak ada referensi online resmi untuk mereka.

Pengguna Libaom Lebih Tua Dari Versi 2.0.0 akan perlu menambah eksperimental -strict (atau alias -strict -2).

. . .

Untuk memicu mode ini, cukup gunakan sakelar -crf bersama dengan nilai numerik yang diinginkan.

FFMPEG -I INPUT.MP4 -C: V LIBAOM -AV1 -CRF 30 AV1_TEST.mkv

Nilai CRF bisa dari 0–63. . 0 berarti lossless. .

Perhatikan bahwa dalam versi FFMPEG sebelum 4.3, memicu mode CRF juga membutuhkan pengaturan bitrat ke 0 dengan -B: V 0 . Jika ini tidak dilakukan, sakelar -crf memicu mode kualitas terbatas dengan bitrates default 256kbps.

Kualitas terbatas

Libaom-AV1 juga memiliki mode kualitas terbatas (CQ) yang akan memastikan bahwa kualitas konstan (persepsi) tercapai sambil menjaga bitrat di bawah batas atas yang ditentukan atau dalam batas tertentu. Metode ini berguna untuk video pengkodean massal secara umum konsisten.

FFMPEG -I INPUT..mkv

HARUS menjadi bukan nol.

Anda juga dapat menentukan bitrate minimum dan maksimum alih -alih target kualitas:

FFMPEG -I INPUT..MP4

Catatan: Saat muxing ke mp4, Anda mungkin ingin menambahkan -movflags +faststart ke parameter output jika penggunaan yang dimaksudkan untuk file yang dihasilkan sedang streaming.

Dua pass

Untuk membuat encodes yang lebih efisien ketika bitrate target tertentu harus dicapai, Anda harus memilih penyandian dua-pass. . Untuk dua-pass, Anda perlu menjalankan FFMPEG dua kali, dengan pengaturan yang hampir sama, kecuali untuk:

  • .
  • Dalam Pass 1, output ke deskriptor file null, bukan file yang sebenarnya. (Ini akan menghasilkan logfile yang dibutuhkan FFMPEG untuk pass kedua.
  • In pass 1, Anda dapat meninggalkan audio dengan menentukan -an .
FFMPEG -I INPUT.mp4 -c: v libaom -av1 -b: v 2m -pass 1 -an -f null /dev /null && \ ffmpeg -i input.MP4 -C: V LIBAOM -AV1 -B: V 2M -PASS 2 -C: Output libopus.mkv

Catatan: .

Bitrate rata -rata (ABR)

Libaom-AV1 juga menawarkan mode “bitrate rata-rata” atau “target bitrate” sederhana. Dalam mode ini, itu hanya akan mencoba mencapai laju bit yang ditentukan rata -rata, e.G. 2 mbit/s.

FFMPEG -I INPUT.MP4 -C: V LIBAOM -AV1 -B: V 2M Output.mkv

Dan . .

-. . Nilai yang lebih rendah berarti penyandian yang lebih lambat dengan kualitas yang lebih baik, dan sebaliknya. Nilai yang valid dari 0 hingga 8 inklusif.

-. Untuk mengaktifkan kinerja decoding cepat, juga tambahkan ubin (i.. -Ubin 4×1 atau -tiles 2×2 untuk 4 ubin). .

-Penggunaan Realtime mengaktifkan mode realtime, dimaksudkan untuk kasus penggunaan pengkodean langsung (livestreaming, konferensi video, dll). -.

Secara default, interval ketukan maksimum Libaom adalah 9999 frame. .

Opsi -g dapat digunakan untuk mengatur interval frame maksimum. .

. Perhatikan bahwa saat ini -keyint_min diabaikan kecuali itu sama dengan -g, jadi interval minimum keyframe tidak dapat diatur sendiri.

.

.

-ColorsPace BT2020NC -Color_TRC SMPTE2084 -Color_Primaries BT2020

AV1 mencakup dukungan 10-bit di profil utamanya. .

Untuk memanfaatkan 10 -bit di profil utama, gunakan -pix_fmt yuv420p10le . . . Lihat FFMPEG -Help Encoder = Libaom -AV1 untuk format piksel yang didukung.

Pengkodean Lossless

Gunakan -crf 0 untuk pengkodean lossless. .4, bingkai pertama tidak akan dilestarikan tanpa kerugian (masalah ini ditetapkan pada 21 Maret 2021). ..

SVT-AV1

SVT-AV1 (LIBSVTAV1) adalah enkoder yang awalnya dikembangkan oleh Intel bekerja sama dengan Netflix. . Encoder mendukung berbagai pengorbanan dan skala efisiensi kecepatan dengan cukup baik di banyak core CPU.

Untuk mengaktifkan dukungan, FFMPEG perlu dibangun dengan –enable-libsvtav1 . Untuk opsi yang tersedia di build spesifik FFMPEG Anda, lihat FFMPEG -Help encoder = LIBSVTAV1 . .

Banyak opsi diteruskan ke encoder dengan -svtav1 -params . .9…

.

CRF

.

..MP4

. Dalam versi sebelum ini, nilai CRF diatur dengan -qp .

. Nilai yang lebih rendah sesuai dengan kualitas yang lebih tinggi dan ukuran file yang lebih besar. Pengkodean lossless saat ini tidak didukung.

. .9..

Perhatikan bahwa Preset 13 hanya dimaksudkan untuk men-debug dan menjalankan pengkodean cembung cepat cepat. Dalam versi sebelum 0.9.0, preset yang valid adalah 0 hingga 8.

Sebagai contoh, perintah ini mengkodekan video menggunakan Preset 8 dan CRF 35 saat menyalin audio:

.MP4 -C: Salinan -C: V LIBSVTAV1 -Preset 8 -Crf 35 SVTAV1_TEST.

Sejak SVT-AV1 0.9.. . Nilai default adalah 1, yang menyetel enkoder untuk PSNR.

.9.. Sejak SVT-AV1 1.0.0, fitur ini dipanggil dengan -svtav1-params cepat-dekode = 1 .

Di 0… .9.1, penyetelan decoder hanya didukung untuk preset dari 5 hingga 10, dan tingkat penyetelan dekoder bervariasi di antara preset.

Penempatan Kunci Kunci

. Pertimbangkan untuk mengubah ini hingga 5 detik (atau lebih tinggi) dengan opsi -g (atau keyint di svtav1 -params); -g 120 untuk konten 24 fps, -g 150 untuk 30 fps, dll.

.2.1, SVT-AV1 tidak mendukung memasukkan keyframe pada perubahan adegan. . .9.1 dan sebelumnya, fungsionalitasnya hadir tetapi dianggap berada dalam keadaan suboptimal dan dinonaktifkan secara default.

SVT-AV1 Mendukung Sintesis Butir Film, fitur AV1 untuk melestarikan tampilan video kasar sambil menghabiskan sedikit bitrate untuk melakukannya. Butir dihapus dari gambar dengan denoising, tampilannya diperkirakan dan disintesis, dan kemudian ditambahkan di atas video pada waktu decode sebagai filter.

. .

Proses denoising biji -bijian dapat menghilangkan detail juga, terutama pada nilai tinggi yang diperlukan untuk menjaga tampilan film yang sangat kasar. Ini dapat dikurangi dengan opsi film-gandum = 0, dilewatkan melalui svtav1-params . Sementara secara default bingkai denoised diturunkan untuk dikodekan sebagai gambar terakhir (film-butiran-denoise = 1), mematikan ini akan mengarah ke bingkai asli yang akan digunakan sebagai gantinya.

Librav1e adalah encoder xiph untuk AV1. Dikompilasi dengan –enable-librav1e . Lihat FFMPEG Doc dan opsi CLI hulu.

RAV1E mengklaim sebagai encoder AV1 perangkat lunak tercepat, tetapi itu benar -benar tergantung pada pengaturannya.

AMD AMF AV1

The Advanced Media Framework (AMF) memberi pengembang akses optimal ke AMD GPU untuk pemrosesan multimedia. AMD AMF AV1 Encoder adalah encoder video profesional yang menyediakan kemampuan pengkodean video yang kuat dan berbagai opsi kustomisasi. . Pengguna dapat menyesuaikan pengaturan parameter encoder untuk memenuhi persyaratan penyandian yang berbeda, seperti resolusi, laju bit, bingkai laju, kualitas pengkodean, dan banyak lagi. Pengaturan parameter ini dapat disesuaikan berdasarkan kebutuhan pengguna untuk memenuhi berbagai skenario pengkodean video dan persyaratan perangkat.

Penggunaan

. . .

  • Transcoding: Konversi video resolusi tinggi atau bitrat tinggi menjadi video resolusi rendah atau bitrat rendah untuk transmisi atau penyimpanan di lingkungan jaringan terbatas bandwidth.
  • Lowlatency: Untuk aplikasi streaming video, latensi yang lebih rendah dan kualitas video yang lebih tinggi diperlukan.

Untuk setiap penggunaan, AMF telah mengoptimalkan dan mengatur parameter encoder berdasarkan skenario yang sesuai. Optimalisasi dan preset parameter ini mencakup sebagian besar parameter, termasuk tetapi tidak terbatas pada:

  • Profil dan level pengkodean
  • Ukuran dan Struktur GOP
  • Mode dan Strategi Kontrol Tingkat
  • Metode estimasi gerak dan presisi
  • Pengkodean multi-pass
  • Kendala Bitrate dan Resolusi

.

ffmpeg -s 1920x1080 -pix_fmt yuv420p -i input.YUV -C: V H264_AMF -USAGE Transcoding Output.MP4

Skenario penggunaan untuk lowlatency

ffmpeg -s 1920x1080 -pix_fmt yuv420p -i input..MP4

Parameter ini digunakan untuk memilih antara kualitas video dan kecepatan. Parameter ini memiliki dampak yang signifikan pada kecepatan pengkodean. Ini memiliki tiga nilai yang valid:

  • Kualitas: Preset ini dioptimalkan untuk output video berkualitas tinggi, cocok untuk aplikasi seperti produksi video, penyiaran, dan streaming langsung.
  • Balanced: Preset ini menyeimbangkan pertukaran antara kualitas dan kecepatan, membuatnya cocok untuk berbagai aplikasi yang membutuhkan keseimbangan antara keduanya, seperti konferensi video dan game online.
  • Kecepatan: Preset ini memprioritaskan kecepatan melebihi kualitas, membuatnya cocok untuk aplikasi yang memerlukan pengkodean video real-time dengan latensi rendah, seperti game online dan aplikasi desktop jarak jauh.

FFMPEG -I INPUT..MP4 FFMPEG -I INPUT.MP4 -C: V AV1_AMF -output kualitas berkualitas..MP4 -C: V AV1_AMF -Output Kecepatan Kualitas.

Decoder Referensi Hipotetis (HRD) membantu mencegah buffer overflow dan underflow, yang dapat menyebabkan masalah seperti kegagapan atau pembekuan dalam pemutaran video. HRD dapat mengorbankan tingkat kualitas gambar tertentu. Parameter “Enforce_hrd” tidak selalu diperlukan atau sesuai untuk semua jenis skenario. Itu harus digunakan secara selektif dan dengan pertimbangan yang cermat terhadap karakteristik spesifik dari konten video yang dikodekan.

FFMPEG -I INPUT.mp4 -c: v av1_amf -enforce_hrd output sejati.MP4

VBAQ

VBAQ adalah teknik yang digunakan untuk meningkatkan kualitas visual dari video yang dikodekan. Ini mencapai ini dengan mengadaptasi parameter kuantisasi untuk blok berdasarkan kompleksitas visual konten. . FFMPEG -I INPUT.mp4 -c: v av1_amf -vbaq output true.MP4

Meluruskan

AV1 Bitstream Specification tidak mengandung informasi pemangkasan untuk decoder untuk menampilkan resolusi akurat piksel yang spesifik. Diharapkan bahwa informasi penanaman yang tepat harus disajikan dalam wadah. AMF AV1 Encoder memperkenalkan parameter “align” untuk mengatasi persyaratan penyelarasan perangkat keras sedemikian rupa sehingga bitstream yang dikodekan dapat diterjemahkan dan disajikan dengan benar. Nilai untuk mengatur “align”:

  • 64×16: Input Video yang resolusinya disejajarkan dengan 64×16 akan diberi kode; Input video yang resolusinya tidak selaras dengan 64×16 tidak akan diberi kode; Semua video resolusi lainnya tidak akan didukung.
  • . . Dua garis tambahan empuk di bagian bawah bingkai, diisi dengan piksel hitam.
  • Tidak ada: Video dengan resolusi apa pun dapat diberi kode. . Pengecualian adalah untuk resolusi 1080p, yang akan di -empuk hingga 1082p, seperti dalam kasus nilai “1080p”.

FFMPEG -I INPUT.MP4 -C: V AV1_AMF -output 1080p.MP4

Penempatan Kunci Kunci

Secara default, interval Keyframe AVF AV1 adalah 250 frame, yang merupakan nilai seimbang untuk sebagian besar kasus penggunaan. Opsi “-g” dapat digunakan untuk mengatur interval frame kunci. . Kunci key 2 detik banyak digunakan sebagai pengaturan umum untuk tujuan ini. Jadi, untuk konten dengan frame rate 30 frame per detik, orang akan menggunakan perintah “-g 60”.

.MP4 -C: V AV1_AMF -G 60 Output.

Sumber daya tambahan

  • Dokumentasi parameter SVT-AV1
  • Panduan Pengguna SVT-AV1
  • Pelacak masalah Libaom
  • Pelacak edisi rav1e

Nvidia mengklaim memiliki encoder AV1 yang lebih baik daripada AMD dan Intel

Nvidia mengatakan encoder AV1 mereka lebih baik daripada AMD dan Intel

Kemarin versi stabil OBS Studio 29.1 dirilis. Sama seperti beta, versi ini mendukung pengkodean AV1 untuk streaming youtube. .

. Dalam lebih dari dua tahun, codec video ini telah muncul sebagai alternatif sejati untuk H264 dan H265/HEVC yang bukan open source. Format bebas royalti akan menjadi faktor besar dalam menjadikan AV1 masa depan streaming video, dan semua merek GPU utama sekarang berada di papan dan secara aktif mengembangkan GPU dengan dukungan untuk format video ini.

Seperti yang kita ketahui, pengkodean AV1 sekarang didukung oleh semua arsitektur GPU modern: GeForce RTX 40 (ADA), Radeon RX 7000 (RDNA3) dan ARC Alchemist (XE-HPG). .

Dirancang untuk mendukung kerasnya pembuat konten profesional, NVENC menjaga kualitas video dengan akurasi yang lebih tinggi daripada encoder kompetitif. Pengguna GeForce RTX dapat mengalirkan gambar berkualitas lebih tinggi pada bitrate yang sama dengan produk kompetitif atau mengkode bitrate yang lebih rendah sambil mempertahankan kualitas gambar yang sama.

– nvidia

NVIDIA telah merilis perbandingan video yang masih menampilkan AMD RX 7900 XTX, ARC A770 dan RTX 4080 GPU dalam AV1 4K dan 12 Mbps Pengkodean Perbandingan.

Perbandingan Pengkodean AV1 4K, Sumber: NVIDIA

NVIDIA RTX 40 GPU mengandalkan Encoder Gen NVenc ke -8, yang memungkinkan pengkodean hingga 8k60 (FPS) dengan membagi bingkai menjadi jalur horizontal pada beberapa GPU. .264 aliran pada 20 Mbps, tetapi keseluruhan NVIDIA mengklaim pengkodean AV1 memberikan sekitar 40% efisiensi penyandian yang lebih baik.

Studio OBS 29.1 sekarang tersedia untuk diunduh dari situs web resmi. .

. ?

Keuntungan dari codec AV1

AV1 adalah (relatif) codec video baru yang dirancang untuk stream video. Ini menawarkan keunggulan signifikan dibandingkan AVC (h..265) Codec lebih umum digunakan saat ini. . Aomedia memiliki tujuh anggota pendiri – Amazon, Cisco, Intel, Microsoft, Mozilla, dan Netflix – yang telah bergabung dengan lusinan anggota lain seperti Google dan Apple di sepanjang jalan.

Perlu lebih dari sekedar sumber gratis dan terbuka untuk berhasil. Ini jauh dari upaya pertama di ruang angkasa dan sebenarnya dibangun di atas pundak pendahulunya yang open-source, VP9, ​​dan lainnya sebelumnya. VP9 telah memperoleh adopsi yang wajar termasuk dukungan pengkodean perangkat keras pada banyak platform, tetapi pada akhirnya dianggap kurang efisien daripada h.265 dengan kinerja yang sama. Tarif av1 jauh lebih baik.

?

AV1 menggunakan “transformasi frekuensi berbasis blok” untuk pengkodean seperti banyak format lainnya. Akibatnya, metode ini membagi bingkai menjadi “blok” kecil kelompok piksel, kemudian melakukan beberapa matematika terkait transformasi Fourier untuk menyimpan data dengan cara yang dapat direkonstruksi secara dapat diterima, tanpa banyak data yang diperlukan untuk menggambarkan setiap bit dari setiap piksel. .

Dalam kasus AV1, ia menggunakan apa yang disebut superblocks 128×128 atau 64×64 piksel yang dapat dibagi lagi menjadi blok yang lebih kecil sekecil 4×4 piksel. Saat dikombinasikan dengan cara-cara baru untuk mempartisi blok, seperti bentuk-T, proses pengkodean dapat lebih mewakili tepi objek dengan artefak yang lebih sedikit blocky. .

Fitur Kualitas Gambar AV1 HDR UHD

Keuntungan efisiensi berarti AV1 mampu mendukung lebih banyak fitur. AV1 membuat streaming video HDR 4K dengan gamut warna lebar jauh lebih layak. Meskipun belum ada banyak permintaan untuk itu, codec bahkan cocok untuk konten 8k saat waktunya tiba. Ini juga dapat digunakan untuk video 360 derajat dengan tuntutan data yang sama tinggi.

Mengalihkan konten video ke AV1 belum menjadi tugas yang mudah, meskipun, meskipun sifatnya bebas dan terbuka. Pengkodean dan decoding AV1 dapat dicapai dengan brute memaksanya pada CPU melalui perangkat lunak, tetapi lebih intensif secara komputasi daripada h.265 HEVC. Ini menempatkannya di luar jangkauan untuk ditangani perangkat keras ujung bawah, belum lagi dampaknya pada masa pakai baterai untuk perangkat seluler.

Namun, baru -baru ini, beberapa platform telah mulai menggabungkan pengkodean dan decoding perangkat keras untuk AV1. Sirkuit khusus ini secara signifikan lebih efisien daripada perangkat lunak yang dapat dilakukan. Seperti kebanyakan codec, decoding perangkat keras telah diimplementasikan secara lebih luas terlebih dahulu. . Kami berasumsi ini akan meluas ke platform terfokus langsung seperti Twitch juga sekali encoder khusus berada di tangan lebih banyak pembuat konten.

AV1 Decode sudah ada di sini tetapi pengkodean adalah trik baru

Decoding AV1 didukung dalam perangkat keras pada AMD RDNA 2 GPU (di luar Navi 24 berbasis 6500 XT), Nvidia GeForce 30- dan 40-seri GPU, Intel XE dan ARC GPU, bersama dengan chip seluler seperti Samsung Exynos 2100 dan 2200, Berbagai Mediatek Dimensity Soc, dan Prosesor Tensor Google. Qualcomm terutama absen dari daftar ini tetapi telah mengindikasikan codec akan didukung dalam chip Snapdragonnya mulai tahun 2023. Dukungan decoding sangat bagus untuk konsumen konten, tetapi tanpa dukungan pengkodean perangkat keras, konten AV1 jauh lebih langka.

Perbandingan Intel AV1 dengan H264

Untuk itu, pemain silikon utama sekarang juga berteriak -teriak untuk mendukung pengkodean AV1 untuk mendukung pembuatan konten. Intel adalah orang pertama yang benar -benar melangkah keluar dalam ruang konsumen yang penggemar dengan dukungan pengkodean perangkat keras AV1 pada alkemis alkimia kartu grafis seri. Sementara ini sulit untuk sumber di Amerika Serikat sampai saat ini, inklusi telah mengumpulkan pujian yang signifikan. Suite berikut, RTX 40-Series ADA Lovelace GPU yang baru di NVIDIA juga membawa otot pengkodean AV1, yang akan segera kami uji. Kami hanya dapat mengasumsikan AMD yang akan segera diumumkan RDNA3 GPU juga tidak akan ditinggalkan dari partai.

Masa depan terlihat cerah untuk codec AV1. Selain menumbuhkan dukungan perangkat keras untuk codec untuk menguntungkan aliran video, codec menggunakan teknik pengkodean layering yang disebut skalable video coding (SVC), yang membuatnya sangat cocok untuk konferensi video. Masalah umum, terutama dalam panggilan konferensi yang lebih padat, adalah bahwa kualitas koneksi berbeda dari satu pengguna ke pengguna berikutnya.

. Tidak hanya aliran bitrate yang lebih rendah dapat mengambil bentuk resolusi yang dikurangi, tetapi juga dapat menghapus bingkai untuk mengurangi framerate untuk mengurangi bandwidth juga. Ini bukan satu -satunya codec yang menggunakan teknik ini, tetapi ini merupakan pertimbangan yang sangat penting, tetap saja.

. Bagian terbaiknya adalah sebagian besar konsumen tidak perlu melakukan sesuatu yang istimewa untuk memanfaatkannya. Terserah pembuat konten dan platform pengiriman untuk memanfaatkan teknologi, sementara siapa pun yang memiliki perangkat yang cukup modern akan dapat menuai manfaat dari peningkatan kualitas gambar dan penggunaan data yang lebih rendah.