Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 17009|Antwoord: 4

Gebruik GPU-versnelde ffmpeg om taken onder Windows te verwerken

[Link kopiëren]
Geplaatst op 2019-11-7 21:08:29 | | | |
FFMPEG download

Officiële downloadpagina van de website:
De hyperlink-login is zichtbaar.
Het wordt aanbevolen om de gecompileerde versie te downloaden en de pagina te downloaden:
De hyperlink-login is zichtbaar.
Ik geef er meestal de voorkeur aan om de nieuwste versie te downloaden (genoemd naar de datum) en natuurlijk is er een stabiele versie (vernoemd naar het versienummer).



CUDA download

CUDA is een driver die de GPU in staat stelt gerelateerde bewerkingen uit te voeren, omdat we applicaties ontwikkelen die de GPU niet direct aansturen, maar via de driver werken.
De hyperlink-login is zichtbaar.
Hier kies ik de onderstaande versie als volgt:
Natuurlijk kun je ook op de onderstaande link klikken om direct naar de instellingen te gaan toen ik het downloadde.
De hyperlink-login is zichtbaar.


Na het downloaden, vergeet niet het te installeren, dus ik introduceer het niet, ze zijn tenslotte allemaal software aan het ontwikkelen.

bevelen

Querycommando's
Controleer of de gedownloade ffmpeg CUDA ondersteunt; als dat niet zo is (ik heb hem gedownload), download hem dan opnieuw of compileer hem zelf.




Testcommando's

Zet de 0.mp4 in de huidige map om naar 00.mp4
Zet de 0.mp4 in de huidige map om naar 00.mp4 en geef de uitvoerframerate van 15 (-r 15) en de bitrate van 500k (-b 500k) op.
-hwaccel cuvid: Specificeert het gebruik van cuvid hardware-versnelling
-c:v h264_cuvid: Videodecodering met h264_cuvid
-c:v h264_nvenc: Videocodering met h264_nvenc
-vf scale_npp=1280:-1: Specificeer de breedte en hoogte van de uitvoervideo, let op dat dit verschilt van de -vf-schaal=x:x die wordt gebruikt voor soft decoding

Meerdere grafische kaartcommando's

GPU-transcodeerefficiëntietest
Op een server met twee Intel-E5-2630v3 CPU's en twee Nvidia Tesla M4 grafische kaarten werd de h264 videotranscodering test als volgt uitgevoerd:

Gemiddelde GPU-transcodeertijd: 8 seconden
Gemiddelde transcodeertijd van de CPU: 25 seconden

Bij parallel transcoderen verbetert de efficiëntie van CPU-softconversie, en zijn alle 32 cores bezet wanneer de drie transcodeertaken parallel zijn

Gemiddelde GPU-transcodeertijd: 8 seconden
Gemiddelde transcodeertijd van de CPU: 18 seconden

Het is niet moeilijk te zien dat de transcodeersnelheid van de GPU niet toeneemt wanneer deze parallel loopt, wat aantoont dat een GPU slechts één transcodeertaak tegelijk kan uitvoeren. Dus, als er meerdere grafische kaarten op de server worden geplaatst, gebruikt ffmpeg dan meerdere GPU's voor parallelle transcodering?
Helaas is het antwoord nee.
ffmpeg kan transcodeertaken niet automatisch aan verschillende GPU's toewijzen, maar na enig onderzoek bleek dat de GPU die voor de transcodeertaak wordt gebruikt, kan worden gespecificeerd door de parameter -hwaccel_device!
Stuur transcodeertaken naar verschillende GPU's

Graphics 0


Grafische kaart1

Illustreren:

-hwaccel_device N: Specificeer een GPU om een transcodeertaak uit te voeren, N is een getal





Vorig:[Praktische gevechten] Maak een Docker-image gebaseerd op Nginx
Volgend:Logoprototypes uit 2000
 Huisbaas| Geplaatst op 7-11-2019 21:18:35 |
//参数说明
/*
    * -i bestandsnaam(invoer) bronbestandsmap
    * -y Geeft nieuwe bestanden uit, of bestaande bestanden nu geforceerd overschrijven moet worden
    * -c Specificeert de encoder
    * -fs limit_size(outinput) stelt de limiet op de bestandsgrootte, uitgedrukt in bytes. Er worden geen verdere byteblokken geschreven nadat de limiet is overschreden. De grootte van het uitvoerbestand is iets groter dan de gevraagde bestandsgrootte.
    * -s videoverhouding 4:3 320x240/640x480/800x600 16:9 1280x720, standaardwaarde 'wxh', hetzelfde als het originele videoformaat
    * -vframes number(output) stelt het aantal videoframes in voor de output. Alias: -frames:v
    * -dframes aantal (output) stelt het aantal dataframes voor de output vast. Alias: -frames:d
    * -frames[:stream_specifier] framecount(output,per-stream) stopt met schrijven naar de stream voor het aantal frames.
    * -bsf[:stream_specifier] bitstream_filters (output,per-stream) specificeert het outputbestandsstroomformaat,
Voer bijvoorbeeld een MP4-bestand uit dat gecodeerd is door h264: ffmpeg -i h264.mp4 -c:v, kopieer -bsf:v h264_mp4toannexb -an out.h264
    * -r 29,97 Zhen-snelheid (kan worden aangepast, zorg dat niet-standaard Zhen-frequentie ervoor zorgt dat geluid en beeld niet synchroon lopen, dus het kan alleen worden ingesteld op 15 of 29,97)
    *
    */
 Huisbaas| Geplaatst op 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\VideoDemo\bin\Debug\A16.avi

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


NVCC --versie

CUVID is een op CUDA gebaseerde videodecodeerbibliotheek die CUVID gebruikt voor het decoderen


Er is niet gelukt om een Direct3D-apparaat aan te maken
Apparaatcreatie mislukt: -1313558101.

De ffmpeg-versie moet overeenkomen met de synchrone grafische kaartdriver om hardware-versnelling correct mogelijk te maken.


Bekijk de NVIDIA hardwareversnellingscodec:

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

Het voorvoegsel heeft de volgende betekenissen:

Betekenis van het voorvoegsel
D….. = Decodeerondersteuning
. E.... = Codering ondersteund
.. V... = Videocodec
.. A... = Audiocodec
.. S... = Ondertitelcodec
… Ik.. = Intra-frame-only codec
....L. = Lossy compressie
….. S = Verliesloze compressie



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
Geplaatst op 26-2-2023 12:11:24 |
Prompt:Auteurs worden verbannen of verwijderde inhoud wordt automatisch geblokkeerd
Geplaatst op 26-2-2023 12:13:35 |
Prompt:Auteurs worden verbannen of verwijderde inhoud wordt automatisch geblokkeerd
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com