11.08.2018, 21:34
Hi newbi14,
Ja, das kenne ich. Die Dokumentation im Bereich Hardware-Encoding (ffmpeg/vaapi/vdpau) ist leider "suboptimal". Entweder man ist Insider, oder du bleibst außen vor. Ist leider so. Und wenn man dann noch Linux verwendet .... auf wiedersehen.
Ich habe mich in den letzten Tagen intensiv mit ffmpeg und Hardware-Encoding beschäftigt. Mehr aus Zwang weil Hybrid kein vaapi (Intel) unterstützt. Es gäbe übrigens die Möglichkeit "qsvenc" für Linux zu kompilieren. https://github.com/rigaya/QSVEnc/blob/master/Readme.md
Das wäre der Hammer .... aber niemand traut sich scheinbar da ran. Hab das ganze Internet abgegrast um irgendwas zu finden. Nix zu machen. Und meine Kenntnisse reichen da nicht aus selbst zu kompilieren.
NVidia wird ja in ffmpeg 4 direkt unterstützt. Aber Infos über optimale Settings zu finden ist ebenso mühselig. Viele Infos/Beispiele sind veraltet und funktionieren auch nicht. FFmpeg ignoriert auch mal einige Settings und spuckt auch keine Fehlermeldung aus. Selbst getestet. Und das bezieht sich ausschließlich auf das Hardware/Decoding/Encoding. Dann gibt´ s halt die "tolle" FFmpeg-Doku. Da sind NVidia-Settings zum Encoden aufgeführt. Ob die allerdings vollständig sind, keine Ahnung.
Es ist auch häufig zu lesen das der NVidia-Encoder nichts taugt. Der ist nur auf Speed ausgerichtet und nicht auf Qualität. Das wird aber auch von Quicksync oft behauptet. Die vergleichen halt immer mit x264. Der ist ja auch der Beste, allerdings langsam.
Ich verwende Quicksync mit Hybrid (Windows) schon lange, und ab einer bestimmten Bitrate ist Der für mein Empfinden klasse. Und nun hab ich erste Versuche mit dem angeblich so schlechten "nvenc" (ffmpeg 4) gemacht (gtx1070). Tja, was soll ich sagen ... wahnsinnig schnell ... 10-12x Performance. Auf dem PC-Monitor (2560x1440) sieht das Resultat sehr gut aus. Das Ganze jetzt ohne Pixelpeeping. Ich hab eine Bitrate von vbr 8M (hier 2-pass) verwendet ... mach ich bei "qsvenc" (kein 2-pass) und FullHD auch immer.
Allerdings ist mein FFmpeg Resultat deutlich besser als mit Hybrid. Da muß ich noch mal genauer vergleichen warum das so ist. Bei Hybrid und gleicher Bitrate, sehe ich deutlich in dunklen Szenen Verblockungen, bei only FFmpeg 4 und nvenc nicht. Ich ja echt komisch weil ja wohl Hybrid auch FFmpeg verwendet. Muß an irgendwelchen Settings liegen.
Hier mal ein Beispiel:
Es wird dabei in der FFmpeg-Doku empfohlen "-no-scenecut 1" und "-b_adapt 0" bei "lookahead" zu verwenden. Es wäre nun wissenswert ob "-no-scenecut 0" und "-b_adapt 1" bessere Resultate als "lookahead" bringen. Oder ob "-qp" (video quantization) besser geeognet ist. Und dann gibt auch noch "-cq".
Muß man wohl selber testen bis der Arzt kommt
Gruß ggrub
Quote:Mit NVENC/FFmpeg, kenne ich mich nicht aus, kann man damit mehr bildqualitaet erhalten? Habe auf der Nvidia seite, NVENC /FFmpeg, cuda-tools etc gelesen, werde aber nicht besonders schlauer. Gibt es ein liste der befehle, settings, die man mit NVENC/FFmpeg mit meiner graka nutzen kann? Damit ich es ausprobieren kann? ... oder sind das schon die die im programm, erscheinen und angeklickt werden koennen?
Ja, das kenne ich. Die Dokumentation im Bereich Hardware-Encoding (ffmpeg/vaapi/vdpau) ist leider "suboptimal". Entweder man ist Insider, oder du bleibst außen vor. Ist leider so. Und wenn man dann noch Linux verwendet .... auf wiedersehen.
Ich habe mich in den letzten Tagen intensiv mit ffmpeg und Hardware-Encoding beschäftigt. Mehr aus Zwang weil Hybrid kein vaapi (Intel) unterstützt. Es gäbe übrigens die Möglichkeit "qsvenc" für Linux zu kompilieren. https://github.com/rigaya/QSVEnc/blob/master/Readme.md
Das wäre der Hammer .... aber niemand traut sich scheinbar da ran. Hab das ganze Internet abgegrast um irgendwas zu finden. Nix zu machen. Und meine Kenntnisse reichen da nicht aus selbst zu kompilieren.
NVidia wird ja in ffmpeg 4 direkt unterstützt. Aber Infos über optimale Settings zu finden ist ebenso mühselig. Viele Infos/Beispiele sind veraltet und funktionieren auch nicht. FFmpeg ignoriert auch mal einige Settings und spuckt auch keine Fehlermeldung aus. Selbst getestet. Und das bezieht sich ausschließlich auf das Hardware/Decoding/Encoding. Dann gibt´ s halt die "tolle" FFmpeg-Doku. Da sind NVidia-Settings zum Encoden aufgeführt. Ob die allerdings vollständig sind, keine Ahnung.
Es ist auch häufig zu lesen das der NVidia-Encoder nichts taugt. Der ist nur auf Speed ausgerichtet und nicht auf Qualität. Das wird aber auch von Quicksync oft behauptet. Die vergleichen halt immer mit x264. Der ist ja auch der Beste, allerdings langsam.
Ich verwende Quicksync mit Hybrid (Windows) schon lange, und ab einer bestimmten Bitrate ist Der für mein Empfinden klasse. Und nun hab ich erste Versuche mit dem angeblich so schlechten "nvenc" (ffmpeg 4) gemacht (gtx1070). Tja, was soll ich sagen ... wahnsinnig schnell ... 10-12x Performance. Auf dem PC-Monitor (2560x1440) sieht das Resultat sehr gut aus. Das Ganze jetzt ohne Pixelpeeping. Ich hab eine Bitrate von vbr 8M (hier 2-pass) verwendet ... mach ich bei "qsvenc" (kein 2-pass) und FullHD auch immer.
Allerdings ist mein FFmpeg Resultat deutlich besser als mit Hybrid. Da muß ich noch mal genauer vergleichen warum das so ist. Bei Hybrid und gleicher Bitrate, sehe ich deutlich in dunklen Szenen Verblockungen, bei only FFmpeg 4 und nvenc nicht. Ich ja echt komisch weil ja wohl Hybrid auch FFmpeg verwendet. Muß an irgendwelchen Settings liegen.
Hier mal ein Beispiel:
ffmpeg -vsync 0 -hwaccel nvdec -i input -c:v h264_nvenc -preset slow -rc vbr_hq -profile:v high -bf 3 -rc-lookahead 32 -g 24 -b:v 8000k -maxrate:v 14000k -coder cabac -no-scenecut 1 -b_adapt 0 -an -y outputv
Muß man wohl selber testen bis der Arzt kommt
Gruß ggrub