So verwenden Sie die Hardwarebeschleunigung mit FFMPEG zum Trimmen und Verketten

Ich verwende FFMPEG auf einem Windows 10-Laptop (64 Bit) mit Intel i3-Prozessor (6. Generation) und AMD R5 M430-GPU.

Ich habe viele Videos auf einer kürzlichen Reise gedreht. Zusammengenommen sind sie über 100 Stunden lang. Jedes Video belegt mindestens 2-3 GB und ist mindestens 1 Stunde lang.

Ich muss 2-4 Videos zuschneiden und sie dann zu einer einzigen Datei verketten. Dieser Vorgang muss für alle diese Videos durchgeführt werden.

Im Moment trimme ich einzelne Videos mit dem folgenden Befehl:

ffmpeg.exe -i "INPUT_VIDEO" -ss START_TIME -to END_TIME -c copy "OUTPUT_VIDEO"

Und dann verkette ich die Videos mit diesem Befehl:

ffmpeg.exe -f concat -safe 0 -i VideosToBeConcatenated.txt -c copy "CONCATENATED_OUTPUT_VIDEO"

wobei VideosToBeConcatenated.txtdie Dateinamen der zu verkettenden Videos enthalten sind.

Das Ausführen dieser Befehle in einem einzigen Befehlsfenster gibt mir eine Geschwindigkeit von 20-25x. Wenn Sie sie in zwei Befehlsfenstern gleichzeitig ausführen, sinkt die Geschwindigkeit auf das 10-12-fache, während mein System verzögert / einfriert.

Gibt es eine Möglichkeit, meine GPU zu verwenden, um diese Vorgänge zu beschleunigen? Sagen wir, mit dem Quicksync des i3 oder dem AMF/VCE des R5?

Ich habe versucht, -hwaccel dxva2die oben genannten Befehle wie folgt zu verwenden:

ffmpeg.exe -hwaccel dxva2 -i "INPUT_VIDEO" -ss START_TIME -to END_TIME -c copy "OUTPUT_VIDEO"

Und

ffmpeg.exe -hwaccel dxva2 -f concat -safe 0 -i VideosToBeConcatenated.txt -c copy "CONCATENATED_OUTPUT_VIDEO"

Allerdings merke ich keinen Geschwindigkeitszuwachs.

Ich habe auch in den AMD Switchable Graphics-Einstellungen ffmpeg.exeund cmd.exeauf "Höchstleistung" gesetzt. Der eingebaute Switchable Graphics Monitor deutet jedoch darauf hin, dass keiner der Prozesse die dGPU verwendet.

Gibt es eine Möglichkeit, meine GPUs (Quicksync von i3 oder AMF/VCE von R5) zu verwenden, um diese Vorgänge zu beschleunigen, ohne die Qualität der Ausgabevideos zu beeinträchtigen ?

[Bearbeiten:] Ich versuche, die Quicksync-Dokumentation von FFMPEG zu verstehen , aber sie ist für einen Amateur wie mich zu ausgereift.

Antworten (1)

Da Sie in Ihren Befehlen verwenden -c copy, findet keine Decodierung, Filterung oder Codierung statt, sodass die Hardwarebeschleunigung überhaupt nicht relevant ist. Der Hauptengpass ist die Festplatten-E/A. Auf einer normalen internen Festplatte (mit einer CPU der 3. Generation) erhalte ich Geschwindigkeiten von 400x, also vermute ich, dass Sie auf ein externes Laufwerk lesen oder schreiben. Oder Ihr internes Laufwerk könnte langsam sein und einen kleineren Cache haben. Der größte Schub kommt vom Schreiben auf ein anderes Laufwerk als das Laufwerk, auf dem sich die Eingaben befinden, wobei idealerweise beide Laufwerke intern sind.