Hardwarebeschleunigung FFMPEG unter Windows

Hardwarebeschleunigung FFMPEG unter Windows

Ich habe die neueste vollständige Version von gyan.dev unter Windows 10 installiert. Ich möchte eine PNG-Sequenz in einen H265-MP4-Film konvertieren und verwende diesen Befehl erfolgreich

ffmpeg -r 60 -f image2 -s 3840x2160 -i TEST_%04d.png -vcodec libx265 -crf 1 -pix_fmt yuv440p -hwaccel cuvid Y:\TEST.mp4

Ich möchte während des Vorgangs die Hardwarebeschleunigung meiner RTX2080 nutzen, kann jedoch keine Ressource oder keinen Befehl zum Hinzufügen finden, da-hwaccelwas meiner Meinung nach ausreichen sollte, funktioniert aber nicht.

Jeder Hinweis ist herzlich willkommen! Alles Gute und bleiben Sie gesund.

Antwort1

libx265ist ein Software-Encoder. Er unterstützt keine Hardware-Codierung.

Sie möchten einen derHardware-Encoder. Für Hardware h.264 verwenden Sie den h264_nvencVideo-Codec oder für h.265 denhevc_nvenc

ffmpeg -r 60 -f image2 -s 3840x2160 -i TEST_%04d.png -vcodec hevc_nvenc -crf 1 -pix_fmt yuv440p -hwaccel cuvid Y:\TEST.mp4

Sie können die verfügbaren Encoder auflisten ffmpeg.exe -encodersund nach denen suchen, die NVIDIAin der Liste aufgeführt sind. Für mein ffmpeg bekomme ich die folgenden Nvidia-Encoder in dieser Liste

 V..... h264_nvenc           NVIDIA NVENC H.264 encoder (codec h264)
 V..... nvenc                NVIDIA NVENC H.264 encoder (codec h264)
 V..... nvenc_h264           NVIDIA NVENC H.264 encoder (codec h264)
 V..... nvenc_hevc           NVIDIA NVENC hevc encoder (codec hevc)
 V..... hevc_nvenc           NVIDIA NVENC hevc encoder (codec hevc)

Sie können die Encoder-Parameter beispielsweise wie folgt auflisten:ffmpeg -h encoder=hevc_nvenc

Antwort2

Danke an @Mokubai, @Gyan und @llogan für ihre Antworten.

Falls jemand ffmepg hwaccel für die Konvertierung von h265 nach h264 verwenden möchte, verwenden Sie Folgendes:

ffmpeg -encoders | findstr /ic:"NVIDIA"

Das solltest du sehen:

 V....D h264_nvenc           NVIDIA NVENC H.264 encoder (codec h264)
 V....D hevc_nvenc           NVIDIA NVENC hevc encoder (codec hevc)

ffmpeg-Befehl:

ffmpeg.exe -vsync 0 -hwaccel cuda -i <input_file> -map 0  -c:a copy -c:v h264_nvenc -pix_fmt yuv420p -preset hq <output_file>

Bei mir hat es die Laufzeit eines 30-minütigen Videos auf einer GTX1060-Karte um das Vierfache reduziert.

Prost

verwandte Informationen