Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 17009|Svar: 4

Använd GPU-accelererat ffmpeg för att bearbeta uppgifter under Windows

[Kopiera länk]
Publicerad den 2019-11-7 21:08:29 | | | |
FFMPEG nedladdning

Officiell webbplats för nedladdning:
Inloggningen med hyperlänken är synlig.
Det rekommenderas att ladda ner den kompilerade versionen och ladda ner sidan:
Inloggningen med hyperlänken är synlig.
Jag föredrar generellt att ladda ner den senaste versionen (namngiven efter datumet) och det finns förstås en stabil version (uppkallad efter versionsnumret).



CUDA-nedladdning

CUDA är en drivrutin som tillåter GPU:n att utföra relaterade operationer, eftersom vi utvecklar applikationer som inte styr GPU:n direkt, utan fungerar via drivrutinen.
Inloggningen med hyperlänken är synlig.
Här väljer jag versionen som visas nedan:
Självklart kan du också klicka på länken nedan för att gå direkt till inställningarna när jag laddade ner.
Inloggningen med hyperlänken är synlig.


Efter nedladdningen, kom ihåg att installera det, så jag introducerar det inte, trots allt utvecklar de alla mjukvara.

befallning

Sökkommandon
Kolla om den nedladdade ffmpeg stöder CUDA, om den inte gör det (jag laddade ner den), ladda ner den igen eller kompilera själv.




Testkommandon

Konvertera 0.mp4 i den aktuella katalogen till 00.mp4
Konvertera 0.mp4 i den aktuella katalogen till 00.mp4 och ange utgångsbildfrekvensen 15 (-r 15) och bithastigheten 500k (-b 500k).
-hwaccel cuvid: Specificerar användningen av cuvid-hårdvaruacceleration
-c:v h264_cuvid: Videoavkodning med h264_cuvid
-c:v h264_nvenc: Videokodning med h264_nvenc
-vf scale_npp=1280:-1: Ange bredden och höjden på utdatavideon, observera att detta skiljer sig från -vf-skalan=x:x som används för mjuk avkodning

Flera grafikkortkommandon

GPU-transkodningseffektivitetstest
På en server med två Intel-E5-2630v3-processorer och två Nvidia Tesla M4-grafikkort utfördes h264-videotranskodningstestet enligt följande:

Genomsnittlig GPU-transkodningstid: 8 sekunder
Genomsnittlig CPU-transkodningstid: 25 sekunder

Vid parallell transkodning förbättras effektiviteten i CPU:s mjuka konvertering, och alla 32 kärnor är upptagna när de tre transkodningsuppgifterna är parallella

Genomsnittlig GPU-transkodningstid: 8 sekunder
Genomsnittlig CPU-transkodningstid: 18 sekunder

Det är inte svårt att se att GPU:ns transkodningshastighet inte ökar när den är parallell, vilket visar att en GPU bara kan utföra en transkodningsuppgift åt gången. Så, om flera grafikkort är insatta på servern, kommer ffmpeg att använda flera GPU:er för parallell transkodning?
Tyvärr är svaret nej.
ffmpeg har inte möjlighet att automatiskt tilldela transkodningsuppgifter till olika GPU:er, men efter viss undersökning upptäcktes att GPU:n som används för transkodningsuppgiften kan specificeras med parametern -hwaccel_device!
Skicka transkodningsuppgifter till olika GPU:er

Grafik 0


Grafikkort1

Illustrera:

-hwaccel_device N: Ange en GPU för att utföra en transkodningsuppgift, N är ett tal





Föregående:[Praktisk strid] Skapa en Docker-image baserad på Nginx
Nästa:Logotypprototyper från 2000
 Hyresvärd| Publicerad den 2019-11-7 21:18:35 |
//参数说明
/*
    * -i filnamn(indata) källfilkatalog
    * -y Skriver ut nya filer, oavsett om man tvingar att skriva över befintliga filer
    * -c Specificerar kodaren
    * -fs limit_size(outinput) sätter gränsen för filstorleken, uttryckt i bytes. Inga fler byteblock skrivs efter att gränsen överskridits. Storleken på utdatafilen är något större än den begärda filstorleken.
    * -s videoförhållande 4:3 320x240/640x480/800x600 16:9 1280x720, standardvärde 'wxh', samma som originalets videostorlek
    * -vframes number(output) sätter antalet videoramar till outputen. Alias: -frames:v
    * -dframes antal (output) anger antalet dataframes till outputen. Alias: -frames:d
    * -frames[:stream_specifier] framecount(output, per-stream) slutar skriva till streamen för antalet frames.
    * -bsf[:stream_specifier] bitstream_filters (output,per-stream) specificerar formatet för utdataströmmen,
Till exempel, skriv ut en MP4-fil kodad av h264: ffmpeg -i h264.mp4 -c:v kopiera -bsf:v h264_mp4toannexb -an out.h264
    * -r 29,97 Zhen-hastighet (kan ändras, se till att icke-standard Zhen-frekvens gör att ljud och bild blir ur synk, så den kan bara ställas in på 15 eller 29,97)
    *
    */
 Hyresvärd| Publicerad den 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 --version

CUVID är ett CUDA-baserat videoavkodningsbibliotek som använder CUVID för avkodning


Misslyckades med att skapa en Direct3D-enhet
Enhetsskapandet misslyckades: -1313558101.

FFMPEG-versionen måste motsvara den synkrona grafikkortsdrivrutinen för att möjliggöra hårdvaruacceleration korrekt.


Kolla in NVIDIA:s hårdvaruaccelerationscodec:

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

Prefixet har följande betydelser:

Prefixets betydelse
D….. = Avkodning stöds
. E.... = Kodning stöds
.. V... = Videocodec
.. A... = Ljudcodec
.. S... = Undertextkod
… I.. = Intra-frame-only codec
....L. = Förlustkomprimering
….. S = Förlustfri kompression



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\bin\Debug\ A16.avi


https://developer.nvidia.com/ffmpeg
Publicerad den 26 februari 2023 12:11:24 |
Snabb:Författare är bannlysta eller borttaget innehåll blockeras automatiskt
Publicerad den 2023-2-26 12:13:35 |
Snabb:Författare är bannlysta eller borttaget innehåll blockeras automatiskt
Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com