Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 17009|Antwort: 4

Verwenden Sie GPU-beschleunigtes ffmpeg, um Aufgaben unter Windows zu verarbeiten

[Link kopieren]
Veröffentlicht am 07.11.2019, 21:08:29 | | | |
FFMPEG Download

Offizielle Website-Downloadseite:
Der Hyperlink-Login ist sichtbar.
Es wird empfohlen, die kompilierte Version herunterzuladen und die Seite herunterzuladen:
Der Hyperlink-Login ist sichtbar.
Ich bevorzuge es in der Regel, die neueste Version herunterzuladen (benannt nach dem Datum) und natürlich gibt es eine stabile Version (benannt nach der Versionsnummer).



CUDA-Download

CUDA ist ein Treiber, der es der GPU ermöglicht, verwandte Operationen auszuführen, da wir Anwendungen entwickeln, die die GPU nicht direkt steuern, sondern über den Treiber arbeiten.
Der Hyperlink-Login ist sichtbar.
Hier wähle ich die unten gezeigte Version aus:
Natürlich kannst du auch auf den untenstehenden Link klicken, um direkt zu den Einstellungen zu gelangen, wenn ich sie heruntergeladen habe.
Der Hyperlink-Login ist sichtbar.


Denk nach dem Herunterladen daran, es zu installieren, damit ich es nicht vorstelle, schließlich entwickeln sie alle Software.

Befehl

Abfragebefehle
Überprüfe, ob das heruntergeladene FFMPEG CUDA unterstützt, falls nicht (ich habe es heruntergeladen), dann lade es erneut herunter oder kompiliere es selbst.




Testbefehle

Konvertiere die 0.mp4 im aktuellen Verzeichnis in 00.mp4
Konvertiere die 0.mp4 im aktuellen Verzeichnis in 00.mp4 und gib die Ausgabe-Bildrate von 15 (-r 15) und die Bitrate von 500k (-b 500k) an.
-hwaccel cuvid: Spezifiziert die Verwendung von cuvid-Hardwarebeschleunigung
-c:v h264_cuvid: Videodekodierung mit h264_cuvid
-c:v h264_nvenc: Videokodierung mit h264_nvenc
-vf scale_npp=1280:-1: Spezifizieren Sie die Breite und Höhe des ausgegebenen Videos an, beachten Sie, dass dies sich von der -vf-Skala=x:x unterscheidet, die für die Soft-Dekodierung verwendet wird

Mehrere Grafikkartenbefehle

GPU-Transkodierungseffizienztest
Auf einem Server mit zwei Intel-E5-2630v3-CPUs und zwei Nvidia Tesla M4-Grafikkarten wurde der h264-Videotranskodierungstest wie folgt durchgeführt:

Durchschnittliche GPU-Transkodierungszeit: 8 Sekunden
Durchschnittliche CPU-Transkodierungszeit: 25 Sekunden

Beim parallelen Transkodieren verbessert sich die Effizienz der CPU-Soft-Conversion, und alle 32 Kerne sind belegt, wenn die drei Transkodierungsaufgaben parallel laufen

Durchschnittliche GPU-Transkodierungszeit: 8 Sekunden
Durchschnittliche CPU-Transkodierungszeit: 18 Sekunden

Es ist nicht schwer zu erkennen, dass die Transkodierungsgeschwindigkeit der GPU im Parallelbetrieb nicht zunimmt, was zeigt, dass eine GPU nur eine Transkodierungsaufgabe gleichzeitig ausführen kann. Wenn also mehrere Grafikkarten auf dem Server eingesetzt werden, verwendet ffmpeg dann mehrere GPUs für paralleles Transcoding?
Leider lautet die Antwort nein.
ffmpeg kann Transkodierungsaufgaben nicht automatisch verschiedenen GPUs zuweisen, aber nach einiger Untersuchung stellte man fest, dass die für die Transkodierungsaufgabe verwendete GPU durch den Parameter -hwaccel_device spezifiziert werden kann!
Transcoding-Aufgaben an verschiedene GPUs senden

Grafik 0


Grafikkarte1

Illustrieren:

-hwaccel_device N: Geben Sie eine GPU an, die eine Transkodierungsaufgabe ausführt, N ist eine Zahl





Vorhergehend:[Praktischer Kampf] Erstelle ein Docker-Image basierend auf Nginx
Nächster:Logo-Prototypen von 2000
 Vermieter| Veröffentlicht am 7.11.2019, 21:18:35 |
//参数说明
/*
    * -i Dateiname(Eingabe) Quellverzeichnis
    * -y Gibt neue Dateien aus, ob bestehende Dateien erzwungen überschrieben werden sollen
    * -c Spezifiziert den Encoder
    * -fs limit_size(Outinput) legt die Grenze für die Dateigröße fest, ausgedrückt in Bytes. Nach Überschreiten des Limits werden keine weiteren Byteblöcke geschrieben. Die Größe der Ausgabedatei ist etwas größer als die gewünschte Dateigröße.
    * -s Videoformat 4:3 320x240/640x480/800x600 16:9 1280x720, Standardwert 'wxh', gleich wie die ursprüngliche Videogröße
    * -vframes number(output) legt die Anzahl der Videoframes für den Ausgang fest. Alias: -frames:v
    * -dFrame-Zahl (Ausgabe) setzt die Anzahl der Datenframes für die Ausgabe. Alias: -frames:d
    * -Frames[:stream_specifier] Framecount(Output, pro-Stream) hört auf, für die Anzahl der Frames in den Stream zu schreiben.
    * -bsf[:stream_specifier] bitstream_filters (output,per-stream) spezifiziert das Ausgabeformat des Dateistroms,
Zum Beispiel gibt man eine MP4-Datei aus, die von h264 kodiert ist: ffmpeg -i h264.mp4 -c:v, kopiere -bsf:v h264_mp4toannexb -an out.h264
    * -r 29,97 Zhen-Rate (kann geändert werden, achte darauf, dass die nicht standardmäßige Zhen-Rate Ton und Bild aus dem Takt bringt, sodass sie nur auf 15 oder 29,97 eingestellt werden kann)
    *
    */
 Vermieter| Veröffentlicht am 8.11.2019, 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 ist eine auf CUDA basierende Videodekodierbibliothek, die CUVID zur Dekodierung verwendet


Es ist nicht gelungen, ein Direct3D-Gerät zu erstellen.
Die Geräteentwicklung fehlgeschlagen: -1313558101.

Die ffmpeg-Version muss dem synchronen Grafikkartentreiber entsprechen, um die Hardwarebeschleunigung korrekt zu ermöglichen.


Schau dir den NVIDIA-Hardware-Beschleunigungscodec an:

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

Das Präfix hat folgende Bedeutungen:

Präfixbedeutung
D….. = Unterstützte Dekodierung
. E.... = Unterstützte Codierung
.. V... = Videocodec
.. A... = Audiocodec
.. S... = Untertitelcodec
… Ich.. = Intra-Frame-Only-Codec
....L. = verlustbehaftete Kompression
….. S = Verlustfreie 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\Debug\ A16.avi


https://developer.nvidia.com/ffmpeg
Veröffentlicht am 26.2.2023, 12:11:24 |
Prompt:Autoren werden gebannt oder entfernte Inhalte automatisch blockiert
Veröffentlicht am 26.2.2023, 12:13:35 |
Prompt:Autoren werden gebannt oder entfernte Inhalte automatisch blockiert
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com