Ich habe eine NVIDIA Quadro P620. Ich habe viel darüber recherchiert, wie ich meine Transkodierung mithilfe meiner Grafikkarte beschleunigen kann.
Ich stolpere über diese Seite https://trac.ffmpeg.org/wiki/HWAccelIntro#Usewiththeffmpegcommand-linetool
Also versuchte ich
ffmpeg -hwaccel cuda -i input.avi output.mp4
Es ging nicht schneller als
ffmpeg -i input.avi output.mp4
Die Transkodierung hat tatsächlich länger gedauert.
Ich kann sehen, dass es die gleiche CPU-Auslastung hat beiresmonwie ohne Option -hwaccel.
Habe ich etwas falsch gemacht? Woher weiß ich, dass ffmpeg meine GPU richtig nutzt?
Antwort1
Entsprechend der GPU-Unterstützungsmatrix für Videokodierung und -dekodierungunterstützt Ihre GPU hardwaregestütztes Dekodieren und Kodieren, auch genannt NVENC.
Der einzige problematische Punkt ist die Liste der Codecs, die Ihre GPU unterstützt: H.264 und H.265. Wenn Ihre Videos nicht mit diesen Codecs codiert sind, funktioniert die Hardwarebeschleunigung möglicherweise nicht.
Für die richtigen Codecs und als Referenz, der Stack Overflow-Beitrag Lassen Sie ffmpeg Nvidia CUDA gegenüber Intel QSV wählen erwähnte, dass die Hardwarebeschleunigung mit dem folgenden Befehl funktionierte:
ffmpeg -hide_banner -hwaccel cuda -i "input.avi" -c:a copy -ac 1 -c:v h264_nvenc -preset hq -movflags faststart -qp 30 "output.mp4"