Peterxy
2017-11-21, 13:23:30
Bezugnehmend auf diesen vorausgegangenen Tread: https://www.forum-3dcenter.org/vbulletin/showthread.php?t=585090
möchte ich das Thema GPU encoding zwecks besserer Übersicht in diesen neuen/seperaten Tread hier verlagern.
Von @Screemer kam die Idee als Alternative zum kostenpflichtigen DGindexNV (Cuda Frameserver) über FFMPEG cuvid zu gehen. Das ist jedoch leider langsamer (Filterung läuft nicht über die GPU), die Bildqualität z.t. schlechter. Höherwertigeres Resize wiederum führt zu langen encodingzeiten, womit einzig über cuvid gehen nicht weiterführend ist. Daraufhin hatte ich mir GPU encoding über nvenc noch angesehen:
Dekodierung: GPU (hwacc_cuvid)
Filterung: CPU (yadif,scale area)
Encoding: GPU (nvenc)
interessanterweise lassen sich so selbst mit einer GT 730 parallel 2 videos gleichzeitig encoden. Natürlich ist die Qualität schlechter als reines CPU encode o.ä., andererseits geht es qualitativ "ok" in Anbetracht einer 5x Zeitersparnis.
Womit ich auch zum eigentlichen Punkt komme, inwiefern sich bei nvenc noch was optimieren läßt:
-2pass: Kann es sein das die nvenc 2pass Funktion buggy ist & gar nicht funktioniert? (erhalte immer ein leeres 2pass logifle)
-B Frames & Co:
Wie kann man überprüfen ob die gesetzten Settings angenommen wurden?
(unter Media-Info werden x.264 nvenc settings nicht ausgelesen)
Da der Flaschenhals bei FFMPEG letzlich aber nach wie vor darin liegt, das deint/resize nicht über die GPU ablaufen,
wie kann man ein DGdecNv.avs script über FFMPEG als Eingangsvideo aufrufen oder alternativ FFMPEG nvenc über vdub als externen encoder einbinden? (Versuch endet immer mit der Fehlermeldung "anonymous pipe")
möchte ich das Thema GPU encoding zwecks besserer Übersicht in diesen neuen/seperaten Tread hier verlagern.
Von @Screemer kam die Idee als Alternative zum kostenpflichtigen DGindexNV (Cuda Frameserver) über FFMPEG cuvid zu gehen. Das ist jedoch leider langsamer (Filterung läuft nicht über die GPU), die Bildqualität z.t. schlechter. Höherwertigeres Resize wiederum führt zu langen encodingzeiten, womit einzig über cuvid gehen nicht weiterführend ist. Daraufhin hatte ich mir GPU encoding über nvenc noch angesehen:
Dekodierung: GPU (hwacc_cuvid)
Filterung: CPU (yadif,scale area)
Encoding: GPU (nvenc)
interessanterweise lassen sich so selbst mit einer GT 730 parallel 2 videos gleichzeitig encoden. Natürlich ist die Qualität schlechter als reines CPU encode o.ä., andererseits geht es qualitativ "ok" in Anbetracht einer 5x Zeitersparnis.
Womit ich auch zum eigentlichen Punkt komme, inwiefern sich bei nvenc noch was optimieren läßt:
-2pass: Kann es sein das die nvenc 2pass Funktion buggy ist & gar nicht funktioniert? (erhalte immer ein leeres 2pass logifle)
-B Frames & Co:
Wie kann man überprüfen ob die gesetzten Settings angenommen wurden?
(unter Media-Info werden x.264 nvenc settings nicht ausgelesen)
Da der Flaschenhals bei FFMPEG letzlich aber nach wie vor darin liegt, das deint/resize nicht über die GPU ablaufen,
wie kann man ein DGdecNv.avs script über FFMPEG als Eingangsvideo aufrufen oder alternativ FFMPEG nvenc über vdub als externen encoder einbinden? (Versuch endet immer mit der Fehlermeldung "anonymous pipe")