Denne artikkelen er en speilartikkel om maskinoversettelse, vennligst klikk her for å hoppe til originalartikkelen.

Utsikt: 17009|Svare: 4

Bruk GPU-akselerert ffmpeg for å behandle oppgaver under Windows

[Kopier lenke]
Publisert 7.11.2019 21:08:29 | | | |
Nedlasting av ffmpeg

Offisiell nettside for nedlasting:
Innloggingen med hyperkoblingen er synlig.
Det anbefales å laste ned den kompilerte versjonen og laste ned siden:
Innloggingen med hyperkoblingen er synlig.
Jeg foretrekker vanligvis å laste ned den nyeste versjonen (oppkalt etter datoen), og selvfølgelig finnes det en stabil versjon (oppkalt etter versjonsnummeret).



CUDA-nedlasting

CUDA er en driver som lar GPU-en utføre relaterte operasjoner, fordi vi utvikler applikasjoner som ikke styrer GPU-en direkte, men opererer via driveren.
Innloggingen med hyperkoblingen er synlig.
Her velger jeg versjonen som vist nedenfor:
Selvfølgelig kan du også klikke på lenken nedenfor for å gå direkte til innstillingene når jeg lastet ned.
Innloggingen med hyperkoblingen er synlig.


Etter nedlasting, husk å installere det, så jeg ikke introduserer det, tross alt utvikler de alle programvare.

kommando

Spørringskommandoer
Sjekk om den nedlastede ffmpeg støtter CUDA, hvis den ikke gjør det (jeg lastet den ned), så last den ned igjen eller kompiler den selv.




Testkommandoer

Konverter 0.mp4 i den nåværende katalogen til 00.mp4
Konverter 0.mp4 i den nåværende katalogen til 00.mp4 og spesifiser utgangsbildefrekvensen på 15 (-r 15) og bitraten på 500k (-b 500k).
-hwaccel cuvid: Spesifiserer bruk av cuvid maskinvareakselerasjon
-c:v h264_cuvid: Videodekoding med h264_cuvid
-c:v h264_nvenc: Videokoding med h264_nvenc
-vf scale_npp=1280:-1: Spesifiser bredden og høyden på utgangsvideoen, merk at dette er forskjellig fra -vf-skalaen=x:x som brukes for myk dekoding

Flere kommandoer for grafikkortet

GPU-transkodingseffektivitetstest
På en server med to Intel-E5-2630v3 CPU-er og to Nvidia Tesla M4 grafikkort ble h264 videotranskodingstesten utført som følger:

Gjennomsnittlig GPU-transkodingstid: 8 sekunder
Gjennomsnittlig CPU-transkodingstid: 25 sekunder

Ved parallell transkoding forbedres effektiviteten til CPU-myk konvertering, og alle 32 kjernene er opptatt når de tre transkodingsoppgavene er parallelle

Gjennomsnittlig GPU-transkodingstid: 8 sekunder
Gjennomsnittlig CPU-transkodingstid: 18 sekunder

Det er ikke vanskelig å se at transkodingshastigheten til GPU-en ikke øker når den er parallell, noe som viser at en GPU kun kan utføre én transkodingsoppgave samtidig. Så, hvis flere grafikkort settes inn på serveren, vil ffmpeg bruke flere GPU-er for parallell transkoding?
Dessverre er svaret nei.
ffmpeg har ikke mulighet til automatisk å tildele transkodingsoppgaver til forskjellige GPU-er, men etter litt undersøkelser ble det funnet at GPU-en som brukes til transkodingsoppgaven kan spesifiseres med parameteren -hwaccel_device!
Send transkodingsoppgaver til forskjellige GPU-er

Grafikk 0


Grafikkort1

Illustrere:

-hwaccel_device N: Spesifiser en GPU til å utføre en transkodingsoppgave, N er et tall





Foregående:[Praktisk kamp] Lag et Docker-bilde basert på Nginx
Neste:2000-logoprototyper
 Vert| Publisert 7.11.2019 kl. 21:18:35 |
//参数说明
/*
    * -i filnavn(input) kildefilmappe
    * -y Sender ut nye filer, om man skal tvinge til å overskrive eksisterende filer
    * -c Spesifiserer koderen
    * -fs limit_size(utdata) setter grensen for filstørrelsen, uttrykt i bytes. Ingen flere byteblokker skrives etter at grensen er overskredet. Størrelsen på utdatafilen er litt større enn den ønskede filstørrelsen.
    * -s videoformat 4:3 320x240/640x480/800x600 16:9 1280x720, standardverdi 'wxh', samme som original videostørrelse
    * -vframes number(output) setter antall videorammer til utgangen. Alias: -frames:v
    * -dframes antall (output) setter antall datarammer til output. Alias: -frames:d
    * -frames[:stream_specifier] framecount(output, per-stream) slutter å skrive til streamen for antall frames.
    * -bsf[:stream_specifier] bitstream_filters (output,per-stream) spesifiserer formatet for outputfilstrømmen,
For eksempel, eksporter en MP4-fil kodet med h264: ffmpeg -i h264.mp4 -c:v kopier -bsf:v h264_mp4toannexb -an out.h264
    * -r 29,97 Zhen-hastighet (kan endres, sørg for at ikke-standard Zhen-frekvens vil føre til at lyd og bilde er ute av synk, så den kan bare settes til 15 eller 29,97)
    *
    */
 Vert| Publisert 2019-11-8 15:07:05 |
ffmpeg.exe -hwaccel_device 1 -hwaccel cuvid -i C:\Users\DELL\Desktop\VideoDemo\VideoDemo\bin\Debug A14.mp4\ -y C:\Users\DELL\Desktop\VideoDemo\VideoDemo\bin\Debug\A16.avi

https://blog.csdn.net/Tosonw/article/details/90178195


NVCC --versjon

CUVID er et CUDA-basert videodekodingsbibliotek som bruker CUVID til dekoding


Mislyktes i å opprette Direct3D-enhet
Enhetsopprettelse mislyktes: -1313558101.

FFMPEG-versjonen må tilsvare den synkrone grafikkortdriveren for å aktivere maskinvareakselerasjon korrekt.


Sjekk ut NVIDIA maskinvareakselerasjonskodeken:

.\ffmpeg.exe -kodeker | SLS NVENC
.\ffmpeg.exe -kodeker | SLS Cuvid

Prefikset har følgende betydninger:

Prefiks betydning
D….. = Dekoding støttes
. E.... = Koding støttes
.. V... = Videokodek
.. A... = Lydkodek
.. S... = Undertekstkodek
… I.. = Intra-frame-only kodek
....L. = Tapskomprimering
….. S = Tapsfri kompresjon



ffmpeg.exe -hwaccel_device 1 -hwaccel cuvid -c:v h264_cuvid -i C:\Users\DELL\Desktop\VideoDemo\VideoDemo\bin\Debug\A14.mp4 -c:v h264_nvenc -y C:\Users\DELL\Desktop\VideoDemo\ VideoDemo\bin\Debug\A16.avi

ffmpeg.exe -hwaccel cuvid -c:v h264_cuvid -i C:\Users\DELL\Desktop\VideoDemo\VideoDemo\bin\Debug\A14.mp4 -c:v h264_nvenc -y C:\Users\DELL\Desktop\VideoDemo\VideoDemo\bin\Debug\ A16.avi


https://developer.nvidia.com/ffmpeg
Publisert 26.02.2023 12:11:24 |
Omgående:Forfattere blir utestengt eller fjernet innhold blokkeres automatisk
Publisert 26.02.2023 kl. 12:13:35 |
Omgående:Forfattere blir utestengt eller fjernet innhold blokkeres automatisk
Ansvarsfraskrivelse:
All programvare, programmeringsmateriell eller artikler publisert av Code Farmer Network er kun for lærings- og forskningsformål; Innholdet ovenfor skal ikke brukes til kommersielle eller ulovlige formål, ellers skal brukerne bære alle konsekvenser. Informasjonen på dette nettstedet kommer fra Internett, og opphavsrettstvister har ingenting med dette nettstedet å gjøre. Du må fullstendig slette innholdet ovenfor fra datamaskinen din innen 24 timer etter nedlasting. Hvis du liker programmet, vennligst støtt ekte programvare, kjøp registrering, og få bedre ekte tjenester. Hvis det foreligger noen krenkelse, vennligst kontakt oss på e-post.

Mail To:help@itsvse.com