ENCODE/AV1 – FFMPEG, NVIDIA hevder å ha bedre AV1 -koder enn AMD og Intel.
Nvidia hevder å ha bedre AV1 -kodere enn AMD og Intel
Libaom-Av1 har en Constant Quality (CQ) -modus (som CRF i X264 og X265) som vil sikre at hver ramme får antall biter den fortjener for å oppnå en viss (perseptuell) kvalitetsnivå, i stedet for å kode hver ramme for å møte en Bitfrekvensmål. Dette resulterer i bedre generell kvalitet. Hvis du ikke trenger å oppnå en fast målfilstørrelse, bør dette være din valgte metode.
AV1 Video Encoding Guide
AV1 er en open source & royalty-fri videokodek utviklet av Alliance for Open Media (Aomedia), et non-profit industrikonsortium. Avhengig av brukstilfelle, kan AV1 oppnå omtrent 30% høyere kompresjonseffektivitet enn VP9, og omtrent 50% høyere effektivitet enn H.264.
. Denne guiden fokuserer for tiden på Libaom og SVT-Av1.
Libaom
Libaom (Libaom-Av1) er referansekoderen for AV1-formatet. Det ble også brukt til forskning under utviklingen av AV1. Libaom er basert på libvpx og deler dermed mange av dens egenskaper når det gjelder funksjoner, ytelse og bruk.
For å installere FFMPEG med støtte for Libaom-Av1, se på kompilasjonsveiledningene og kompilere FFMPEG med alternativet-Enable-Libaom.
- Konstant kvalitet
- Begrenset kvalitet
- 2-pass gjennomsnittlig bitrate
- 1-pass gjennomsnittlig bitrate
For en liste over alternativer, kjør FFMPEG -H ENCODER = LIBAOM -Av1 eller sjekk FFMPEGs online dokumentasjon. For alternativer som kan sendes via -AOM -Params, anbefales det å sjekke – -hjelpemidler fra Aomenc -applikasjonen, ettersom det foreløpig ikke er noen offisiell referanse for dem.
Merk: Brukere av Libaom eldre enn versjon 2.0.0 må legge til -streng eksperimentell (eller alias -streng -2).
Konstant kvalitet
Libaom-Av1 har en Constant Quality (CQ) -modus (som CRF i X264 og X265) som vil sikre at hver ramme får antall biter den fortjener for å oppnå en viss (perseptuell) kvalitetsnivå, i stedet for å kode hver ramme for å møte en Bitfrekvensmål. Dette resulterer i bedre generell kvalitet. Hvis du ikke trenger å oppnå en fast målfilstørrelse, bør dette være din valgte metode.
For å utløse denne modusen, bruk bare -CRF -bryteren sammen med ønsket numerisk verdi.
ffmpeg -i input.mp4 -c: v libaom -av1 -crf 30 av1_test.mkv
. Lavere verdier betyr bedre kvalitet og større filstørrelse. 0 betyr tapsfri. En CRF -verdi på 23 gir et kvalitetsnivå som tilsvarer CRF 19 for X264 (kilde), som vil bli ansett som visuelt tapsfri.
Merk at i FFMPEG -versjoner før 4.3, Utløser CRF -modus krever også å sette bitraten til 0 med -B: V 0 . Hvis dette ikke gjøres, utløser -CRF -bryteren den begrensede kvalitetsmodus med et standardbitrate på 256 kbps.
Libaom-Av1 har også en begrenset kvalitetsmodus (CQ) som vil sikre at en konstant (perseptuell) kvalitet er nådd mens du holder bitraten under en spesifisert øvre grense eller innenfor en viss bundet. Denne metoden er nyttig for bulk som koder for videoer på en generelt konsistent måte.
ffmpeg -i input.MP4 -C: V Libaom -Av1 -Crf 30 -b: V 2000K utgang.mkv
Kvaliteten bestemmes av -CRF, og bitrate -grensen av -b: V der bitraten MÅ .
Du kan også spesifisere et minimum og maksimal bitrate i stedet for et kvalitetsmål:
ffmpeg -i input.MP4 -C: V Libaom -Av1 -Minrat 500K -B: V 2000K -MaxRate 2500k Output.MP4
Merk: Når du muxing til MP4, kan det være lurt å legge til -MovFlags +Faststart til utgangsparametrene hvis den tiltenkte bruken for den resulterende filen strømmer.
To-pass
. Topassekoding er også gunstig for kodingseffektivitet når konstant kvalitet brukes uten målbitrate. For to-pass må du kjøre FFMPEG to ganger, med nesten de samme innstillingene, bortsett fra:
- I pass 1 og 2, bruk henholdsvis -Pass 1 og -pass 2 -alternativene.
- . (Dette vil generere en loggfil som FFMPEG trenger for andre passering.)
- .
ffmpeg -i input..MP4 -C: V LIBAOM -Av1 -B: V 2M -Pass 2 -C: En libopus -utgang.mkv
Windows -brukere bør bruke NUL i stedet for /dev /null og ^ i stedet for \ .
Gjennomsnittlig bitrate (ABR)
Libaom-Av1 tilbyr også en enkel “gjennomsnittlig bitrate” eller “målbitrate” -modus. I denne modusen vil den ganske enkelt prøve å nå den spesifiserte bithastigheten i gjennomsnitt, e.g. 2 mbit/s.
ffmpeg -i input..
Bruk bare dette alternativet hvis filstørrelse og Kodingstid er viktigere faktorer enn kvalitet alene. .
Kontrollerende hastighet / kvalitet
-CPU-brukte setter hvor effektiv kompresjonen vil være. Standard er 1. . Gyldige verdier er fra 0 til 8 inkluderende.
-Row-MT 1 muliggjør radbasert flertråding som maksimerer CPU-bruk. For å aktivere rask avkodingsytelse, legg også til fliser (i.e. -fliser 4×1 eller -til til 2×2 for 4 fliser). .
-Bruk av sanntid aktiverer sanntidsmodus, ment for bruk av levende koder for bruk (livestreaming, videokonferanser osv.). -.
KeyFrame -plassering
Som standard er Libaoms maksimale nøkkelrammeintervall 9999 rammer. .
Alternativet -G -alternativet kan brukes til å angi det maksimale nøkkelrammeintervallet. .
. Merk at for øyeblikket -Keyint_min blir ignorert med mindre det er det samme som -g, så det minste nøkkelrammeintervallet kan ikke settes på egen hånd.
.
. For eksempel bruker YouTube HDR
-
AV1 inkluderer 10-biters støtte i hovedprofilen. .
. . . Se FFMPEG -Help Encoder = Libaom -Av1 for de støttede pikselformatene.
. .. .4 versjoner en kan bruke -Aom -params tapsfri = 1 for tapsfri utgang.
SVT-Av1
SVT-Av1 (libsvtav1) er en koder som opprinnelig ble utviklet av Intel i samarbeid med Netflix. . Koderen støtter et bredt spekter av hastighetseffektiv avveininger og skalaer ganske bra på tvers av mange CPU-kjerner.
For å aktivere støtte, må FFMPEG bygges med-kanle-libsvtav1 . . .
Mange alternativer sendes til koderen med -Svtav1 -params . ..1 og har blitt støttet siden ffmpeg 5..
.
CRF
.
ffmpeg -i input.MP4 -C: V LIBSVTAV1 -CRF 35 SVTAV1_TEST.MP4
Merk at alternativet -CRF bare støttes i FFMPEG GIT-bygg siden 2022-02-24. I versjoner før dette er CRF -verdien satt med -QP .
Det gyldige CRF-verdiområdet er 0-63, med standarden 50. Lavere verdier tilsvarer høyere kvalitet og større filstørrelse. Tapfri koding støttes foreløpig ikke.
Forhåndsinnstillinger og melodier
Avveiningen mellom kodingshastighet og kompresjonseffektivitet administreres med alternativet -forpresetten. Siden SVT-Av1 0..0, støttede forhåndsinnstillinger varierer fra 0 til 13, med høyere tall som gir høyere kodingshastighet.
. I versjoner før 0.9.0, gyldige forhåndsinnstillinger er 0 til 8.
Som et eksempel koder denne kommandoen en video ved hjelp av forhåndsinnstilt 8 og en CRF på 35 mens du kopierer lyden:
..MP4
Siden SVT-Av1 0.9.. Dette påberopes med -Svtav1 -params melodi = 0 . .
Også støttet siden 0.9.1 er innstilt koderen for å produsere bitstrømmer som er raskere (mindre CPU -intensiv) for å avkode, lik FastDecode -melodien i X264 og X265. Siden SVT-Av1 1.0.0, denne funksjonen påberopes med -Svtav1-params hurtig-dekode = 1 .
I 0..1, aksepterer alternativet et heltall fra 1 til 3, med høyere tall som resulterer i enklere å ta ut video. I 0..1, dekoderinnstilling støttes bare for forhåndsinnstillinger fra 5 til 10, og nivået på dekoderinnstilling varierer mellom forhåndsinnstillinger.
KeyFrame -plassering
Som standard er SVT-Av1s nøkkelrammeintervall 2-3 sekunder, noe som er ganske kort for de fleste brukssaker. .
..1, SVT-Av1 støtter ikke å sette inn nøkkelrammer ved sceneendringer. I stedet plasseres nøkkelrammer med faste intervaller. ..1 og tidligere var funksjonaliteten til stede, men ansett for å være i en suboptimal tilstand og ble deaktivert som standard.
SVT-Av1 støtter filmkornsyntese, en AV1-funksjon for å bevare utseendet til kornete video mens du bruker veldig lite bitrate for å gjøre det. Kornet fjernes fra bildet med denoising, utseendet er tilnærmet og syntetisert, og legges deretter på toppen av videoen ved dekodetid som et filter.
Filmkornsyntesefunksjonen er påkalt med -Svtav1-Params Film-Grain = X, der X er et heltall fra 1 til 50. Høyere antall tilsvarer høyere nivåer av denoising for kornsynteseprosessen og dermed en større mengde korn.
Kornforsyningsprosessen kan også fjerne detaljer, spesielt ved de høye verdiene som er nødvendige for å bevare utseendet til veldig kornete filmer. . Selv om de denoised rammene som standard blir gitt videre for å bli kodet som de endelige bildene (filmkorn-denoise = 1), vil det å slå av dette føre til at de originale rammene skal brukes i stedet.
Librav1e er Xiph -koderen for AV1. . Se FFMPEG Doc og oppstrøms CLI -alternativer.
RAV1E hevder å være den raskeste programvaren AV1 -koderen, men det avhenger virkelig av innstillingen.
AMD AMF AV1
Advanced Media Framework (AMF) gir utviklere optimal tilgang til AMD GPU for multimediabehandling. AMD AMF AV1 Encoder er en profesjonell videokoder som gir kraftige videokodingsfunksjoner og et bredt spekter av tilpasningsalternativer. . . .
Videokoderen balanserer faktorer som hastighet, kvalitet og latens. AMD har integrert flere typiske forhåndsinnstillinger for brukerscenario i AMF -koderen. Brukere kan bruke disse forhåndsinnstillingene ved å stille inn “bruk” -parameteren. Bruksparameter støtter typiske applikasjonsscenarier, inkludert:
- Transkoding: Konverter høyoppløsnings- eller høybitratevideoer til lavoppløsning eller lavbitratvideoer for overføring eller lagring i båndbreddebegrenset nettverksmiljøer.
- Lowlatency: For videostreaming av live -applikasjoner er det nødvendig med lavere latens og høyere videokvalitet.
For hver bruk har AMF optimalisert og forhåndsinnstilt koderens parametere basert på det tilsvarende scenariet.
- Hastighetskontrollmodus og strategi
- Bevegelsesestimeringsmetode og presisjon
- Multi-pass koding
- Deblocking filterstyrke
- Adaptiv kvantisering og hastighetsforvrengningsoptimalisering
- Bitrate og oppløsningsbegrensninger
Ved å bruke disse forhåndsinnstillingene, kan brukere enkelt og effektivt velge de aktuelle kodingsinnstillingene for deres spesifikke bruksscenario uten behov for dybdekunnskap om koderens parametere og deres innvirkning på videokvalitet og ytelse. Bruksscenariet for koding
ffmpeg -s 1920x1080 -pix_fmt yuv420p -i input.YUV -C: V H264_AMF -Bruker transkodende utgang.MP4
Bruksscenariet for lavlatency
ffmpeg -s 1920x1080 -pix_fmt yuv420p -i input.YUV -C: V AV1_AMF -Bruker lavlatency output.
Denne parameteren brukes til å velge mellom videokvalitet og hastighet. Denne parameteren har en betydelig innvirkning på kodingshastigheten.
- .
- Balansert: Denne forhåndsinnstillingen balanserer avveiningen mellom kvalitet og hastighet, noe som gjør den egnet for en rekke applikasjoner som krever en balanse mellom de to, for eksempel videokonferanser og online spill.
- .
ffmpeg -i input..mp4 ffmpeg -i input.MP4 -C: V AV1_AMF -Kvalitetskvalitetsutgang...MP4
HEFORFOR_HRD
Den hypotetiske referansedekoderen (HRD) hjelper til med å forhindre at bufferoverløp og understrømning, noe som kan forårsake problemer som stamming eller frysing i videoavspilling. . . Det bør brukes selektivt og med nøye vurdering av de spesifikke egenskapene til videoinnholdet som blir kodet.
ffmpeg -i input.MP4 -C: V AV1_AMF -ENFORCE_HRD True Output.MP4
VBAQ
. Det oppnår dette ved å tilpasse kvantiseringsparametrene for blokker basert på innholdets visuelle kompleksitet. Det er spesielt effektivt for å kode video med komplekst visuelt innhold, for eksempel høye bevegelser eller høyehandelsscener. .MP4 -C: V AV1_AMF -VBAQ True Output.
Tilpasse
AV1 BitStream -spesifikasjonen inneholder ikke beskjæringsinformasjonen for dekodere for å vise den spesifikke, pixel -nøyaktige oppløsningen. Det forventes at riktig beskjæring av informasjon skal presenteres i beholderen i stedet. AMF AV1 Encoder introduserer parameteren “Align” for å adressere maskinvarejusteringskravet slik at den kodede bitstrømmen kan dekodes og presenteres riktig. Verdier for innstilling av “Align”:
- 64×16: Inngangsvideoer hvis oppløsning er på linje med 64×16 vil bli kodet; Inngangsvideoer hvis oppløsning ikke er tilpasset 64×16, vil ikke bli kodet; Alle andre oppløsningsvideoer vil ikke bli støttet.
- 1080p: Inngangsvideoer hvis oppløsning er på linje med 64×16, samt 1920×1080 -video, vil bli kodet; Alle andre oppløsningsvideoer vil ikke bli støttet. Legg merke til at for oppløsning fra 1920×1080, ville utgangsvideoen ha en oppløsning på 1920×1082. To ekstra linjer er polstret i bunnen av rammen, fylt med svarte piksler.
- Ingen: Videoer med noen oppløsning kan kodes. For de videoene hvis oppløsning ikke er 64×16 justert, vil imidlertid deres utgangsoppløsning bli ekstrapolert til å være 64×16 justert og polstret med svarte piksler. Unntaket er for oppløsning på 1080p, som vil bli polstret til 1082p, som for verdien “1080p”.
ffmpeg -i input.MP4 -C: V AV1_AMF -ALIGN 1080P Output.
KeyFrame -plassering
Som standard er AMF AV1s nøkkelrammeintervall 250 rammer, noe som er en balansert verdi for de fleste brukssaker. Alternativet “-g” kan brukes til å stille inn nøkkelrammeintervallet. For eksempel, i kringkastede TV -applikasjoner, er det vanligvis ønsket å ha en komfortabel kanalbytte tid for en god brukeropplevelse. . Så for innhold med en bildefrekvens på 30 bilder per sekund, ville man bruke kommandoen “-g 60”.
ffmpeg -i input.MP4 -C: V AV1_AMF -G 60 Output.MP4
Tilleggsressurser
- SVT-Av1-parametere dokumentasjon
- SVT-Av1s FFMPEG-guide
- SVT-Av1: Vanlige spørsmål og emner av interesse
- SVT-Av1s brukerhåndbok
- SVT-Av1 Issue Tracker
- Libaom Issue Tracker
Nvidia sier at AV1 -koderen deres er bedre enn AMDs og Intels
I går den stabile versjonen av OBS Studio 29.1 ble løslatt. Akkurat som betaene, støtter denne versjonen AV1 -koding for YouTube -streaming. Nvidia benyttet anledningen til å diskutere sin overlegenhet i AV1 -koding sammenlignet med konkurrenter.
AV1 er en åpen kildekode fra Alliance for Open Media. . Det royalty-frie formatet vil være en stor faktor for å gjøre AV1 til fremtiden for videostreaming, og alle store GPU-merker er nå ombord og utvikler aktivt GPU-er med støtte for dette videoformatet.
Som vi vet støttes AV1-koding nå av alle moderne GPU-arkitekturer: GeForce RTX 40 (ADA), Radeon RX 7000 (RDNA3) og Arc Alchemist (Xe-HPG). .
. GeForce RTX-brukere kan streame bilder av høyere kvalitet med samme bitrate som konkurrerende produkter eller kode med et lavere bitrate mens de opprettholder en lignende bildekvalitet.
– Nvidia
. Selskapet hevder at deres koder produserer bilder av høyere kvalitet med samme bitrate:
NVIDIA RTX 40 GPUer er avhengige av den 8. Gen Nvenc -koderen, som muliggjør opptil 8K60 (FPS) som koder ved å dele opp rammene i horisontale baner på noen GPU -er. Ved 4K kan det gi lignende videokvalitet ved 10 Mbps sammenlignet med H.264 Strøm ved 20 Mbps, men totalt sett gir NVIDIA hevder AV1 -koding rundt 40% bedre kodingseffektivitet.
OBS Studio 29.1 er nå tilgjengelig for nedlasting fra offisielt nettsted. Prosjektet er sponset av både NVIDIA og AMD.
Teknologibransjen har vært overveldende med Chatter om AV1 -koding nylig. ?
Fordeler med AV1 -kodeken
AV1 er en (relativt) ny videokodek designet for videostrømmer. … For det første er AV1 royaltyfri og åpen kildekode, i motsetning til disse andre alternativene, som det kommer fra Alliance for Open Media (Aomedia) som ble dannet i 2015 for det eksplisitte formålet å skape et åpent alternativ. Aomedia har syv grunnleggende medlemmer – Amazon, Cisco, Intel, Microsoft, Mozilla og Netflix – som har fått selskap av flere titalls andre medlemmer som Google og Apple underveis.
Det må være mer enn bare gratis og åpen kildekode for å lykkes, men. . .. AV1 klarer seg mye bedre.
?
. I virkeligheten deler disse metodene en ramme i små “blokker” av pikselgrupper, og utfører deretter noen Fourier transformasjonsrelatert matematikk for å lagre dataene på en måte som akseptabelt kan rekonstrueres, uten masse data som trengs for å beskrive hver bit av hver piksel. AV1 bruker VP9s løsning som base, men utvider alternativene med flere teknikker.
. . Alt dette resulterer i en videostrøm som krever mindre bithastighet (og derfor båndbredde) for et gitt målkvalitetsmål, eller et bedre utseende bilde med samme bitrate sammenlignet med andre kodeker.
. AV1 lager streaming HDR 4K -video med brede fargespekter mye mer mulig. Selv om det egentlig ikke er mye etterspørsel etter det ennå, er kodeken til og med egnet for 8K -innhold når tiden kommer. .
. AV1 -koding og avkoding kan oppnås ved å tvinge den på en CPU via programvare, men den er mer beregningsintensiv enn til og med H.265 HEVC. .
. . . Voksende støtte for avkoding lar store plattformer som YouTube utnytte AV1 -kodeken for å redusere kravene til båndbredde. Vi antar at dette vil omfatte livestreaming av fokuserte plattformer som Twitch også når dedikerte kodere er i hendene på flere innholdsskapere.
AV1-dekoding støttes i maskinvare på AMD RDNA 2 GPUer (utenfor Navi 24-baserte 6500 XT), Nvidia GeForce 30- og 40-serie GPUer, Intel XE og Arc GPUer, sammen med mobilbrikker som Samsung Exynos 2100 og 2200, Ulike MediaTek Dimensity Soc, og Googles Tensor -prosessor. Qualcomm er spesielt fraværende fra denne listen, men har indikert at kodeken vil bli støttet i Snapdragon -brikkene sine som starter i 2023. .
For det formål er store silisiumspillere nå også for å støtte AV1 -koding for å støtte innholdsoppretting. . Selv om disse har vært vanskelige å kilde til staten inntil nylig, har inkluderingen fått betydelig ros. . Vi kan bare anta at AMDs snart kunngjorde at RDNA3 GPUer ikke vil bli forlatt fra partiet, heller.
. I tillegg til å øke maskinvarestøtte for kodeken til fordel for videostrømmer, bruker Codec en lagdelingskodingsteknikk kalt skalerbar videokoding (SVC), noe som gjør den spesielt godt egnet for videokonferanser. .
. Ikke bare kan de nedre bitratestrømmene ha form av redusert oppløsning, men det kan også fjerne rammer for å redusere rammen for å redusere båndbredden også. .
AV1 har mye løfte, som så mange teknologiske fremskritt gjør. Det beste er at de fleste forbrukere ikke trenger å gjøre noe spesielt for å dra nytte av det. .