Kostenloses GPU basiertes H.264 encoding

  • Hab mal gedacht ich mal ne kleine Auflistung der kostenlosen Tools (kein Share-/Ad-/Trialware) die mir so einfallen mit denen man die GPU nutzen kann:


    QSV -> Intel
    VCE -> AMD
    CUDA -> NVIDIA

    * jeweils durch AddOns von rigaya
    ** anders als die anderen handelt es sich hier um einen MVC encoder, jedoch wohl nur noch als Teil von BDtoAVCHD

    Falls jemand noch andere kostenlose tools kennt bitte Bescheid sagen.

    Kennt z.B. jemand ein Command Line Tool, welches VCE nutzt?

    Cu Selur

  • Mit den neueren QuickSync APIs und damit neu verfügbaren Features:

    Code
    settings below are only supported with API v1.6   --mbbrc                        enables per macro block rate control.   --extbrc                       enables extended rate control. settings below are only supported with API v1.7   --trellis <string>             set trellis mode used in encoding.                                   - auto(default), none, i, ip, all. settings below are only supported with API v1.8   --i-adapt                      enables adaptive I frame insert.   --b-adapt                      enables adaptive B frame insert.   --b-pyramid                    enables B-frame pyramid reference.   --lookahead-ds <string>        set lookahead quality.                                   - auto(default), fast, normal, slow


    sieht es aber schon besser aus.

    die wirklich interessante features, sind aber auch hier nur per software machbar:

  • VCE über VfW: https://github.com/jackun/openencodevfw

    Ich wollte gerade A's Video Converter mit QSV testen, allerdings kann ich lediglich den Microsoft H.264 Encoder wählen. Weiß jemand, wo da das Problem liegt? Verwende Windows 8 64 Bit, Intel HD4600, neueste Treiber und Monitor an der integrierten GPU is soger aktiviert. In Handbrake wird QSV ohne weiteres erkannt.

  • Welchen Treiber hast du installiert? Ich bin auf Version 10.18.10.3621. Werde mal die ältere aus dem März testen.

    Edit: Musste meine dedizierte Grafikkarte deaktivieren. Leider gibt es kaum Optionen für Quicksync in A's Video Converter. Werde bei Handbrake bleiben.
    Edit2: Die QSVEncC basierten Tools bleiben immer an einer bestimmten Stelle hängen und verweigern dann den Dienst bis zum nächsten Neustart. Ist das ein bekanntes Problem?

    2 Mal editiert, zuletzt von shimmy (18. Juni 2014 um 04:39)

  • Zitat

    Die QSVEncC basierten Tools bleiben immer an einer bestimmten Stelle hängen und verweigern dann den Dienst bis zum nächsten Neustart.


    Auch mal mit der aktuellen (2014.06.17.2) Hybrid Version versucht?

    Zitat

    Ist das ein bekanntes Problem?


    Das das Encoding 'einfriert' hatte ich bei irgendeiner Kombination von Einstellungen letztens auch, weiß aber nicht mehr welche Einstellungen es waren.
    Mit

    Code
    mencoder -lavdopts threads=8 -really-quiet -of rawvideo -o - -ovc raw -vf scale,format=i420 -forcedsubsonly -nosub -nosound -mc 0 "H:\Temp\encodingTempAvisynthSkript_06_07_02_7810.avs" | ffmpeg -loglevel fatal -threads 8 -an -sn -r 25 -pix_fmt yuv420p -s 720x576 -f rawvideo -i - -r 25 -pix_fmt yuv420p -f yuv4mpegpipe - | QSVEnc --y4m -i - --input-buf 3 --slices 0 --fps 25000/1000 --cqp 26:27:28 --profile auto --level auto --quality high --bframes 3 --gop-len 0 --scenechange --sar 64:45 --lookahead-ds auto --output-file "H:\Temp\DVD_06_07_02_7810_03.264"


    lief es aber gerade alles durch.

    -> Vermute also, dass es nicht ein generelles sondern ein Treiber <> Setting Problem ist.

    Zitat

    Welchen Treiber hast du installiert? Ich bin auf Version 10.18.10.3621. Werde mal die ältere aus dem März testen.


    Nutze auch 10.18.10.3621 und hab meine NVIDIA Karte auch aktiv, vermute Du musst die Intel aber als Hauptkarte eingestellt haben.

  • Teste jetzt mit Hybrid. Default Einstellung sind durchgelaufen, nur der Fortschrittsbalken hängt da. Werde mal benutzerdefinierte Einstellungen testen. la-depth ist nich konfigurierbar in Hybrid?

    Benötigt i-adaptive/b-adaptive besondere Einstellungen? Bis jetzt hat es in Handbrake keinen Unterschied gemacht ob an oder aus, und auch in QSVEncC ist Output immer derselbe...

  • Zitat

    ..nur der Fortschrittsbalken hängt da


    Das liegt dann an der Ausgabe von QSVEnc, Hybrid nimmt einfach die Konsolenausgabe ('210 frames: 481.65 fps, 261.33 kbps') und errechnet die geschafften Prozent. :)

    Zitat

    Benötigt i-adaptive/b-adaptive besondere Einstellungen?


    Ne, sollte nicht,... (man muss halt die Kästchen anhaken und hat dann die entsprechenden Einträge (--i-adapt --b-adapt) im Aufruf.
    Unterschiede wird es vermutlich nur sehen, wenn auch genug große GOPs verwendet werden,.. (sollte also bei OpenGop eher auffallen)
    Hab aber auch noch nicht viel damit rumgetestet.

  • Generell scheint QSVEnc noch nicht sehr ausgereift zu sein. Crasht bei mir sehr oft, bevor es überhaupt losgeht.

    Code
    "C:\PROGRA~1\Hybrid\QSVEncC.exe" --y4m -i - --input-buf 3 --slices 0 --fps 25000/1000 --cqp 26:27:28 --profile auto --level auto --quality high --bframes 3 --gop-len 0 --scenechange --sar 1:1 --lookahead-ds auto --trellis auto --output-file "K:\testfile_09_44_53_5110_01.264"
    finished after 00:00:00.375 with exitCode 1
  • Scheint ein problem mit der Quality Einstellung zu sein.
    "bitrate with lookahead" (<> --la X) mit quality:
    best -> friert ein
    high -> friert ein
    higher -> friert ein
    balanced und schneller geht.
    Sehe gerade da ist ein mapping Fehler bei Hybrid, die Auswahl der qualität entspricht nicht dem was in der console ausgewählt wird.

  • Wer Haswell hat und Quicksync mit möglichst guter Qualität in Handbrake nutzen will, sollte mit diesen Advanced Options anfangen und von dort ausgehend anpassen:

    la-depth=60:tu=1:trellis=3:gop-pic-size=0

    la-depth=100 wird derzeit nicht unterstüzt, das Maximum liegt bei 60. In den Optionen Quicksync decode deaktivieren, sonst liegt das Limit bei 45. tu=4 ist deutlich schneller, aber auch etwas schlechter als tu=1. Mit diesen Einstellungen liegt QSV für einen AVBR Single-Pass Encode bei meinem Material gleichauf mit x264 veryfast, nur schneller und die CPU ist noch für andere Dinge frei.

    Adaptive I- und B-Frames sind automatisch an, scheinen bis jetzt aber keinen Effekt zu haben.

  • Die c't hat mal GPU-beschleunigte Encodierung verglichen, in Ausgabe 15/2014 ab Seite 138 werden die Technologien vorgestellt, und es wird auch die Encodierung mit verschiedenen Techniken durchgeführt. Kostenlose Software wurde dafür wohl nicht verwendet, zwecks Vergleichbarkeit wurde Software gewählt, die mehrere Encoder und GPU-Beschleunigertechniken auf gleiche Weise unterstützt: ArcSoft MediaConverter 8 und Cyberlink MediaEspresso 6.7.

    Kurz das Fazit: QuickSync kann mit Software-Encodern einigermaßen mithalten, Nvidia und AMD sind technisch deutlich unterlegen. Auch hinsichtlich des Supports unterscheiden sich die drei Kandidaten: Insbesondere ist AMD praktisch unerreichbar, und Nvidia gibt zumindest zu, intel diesen Markt künftig zu überlassen.

  • Jo, NVENC ist nicht sonderlich toll. Funktioniert nur ganz gut mit Shadowplay, da x264, wenn man anspruchsvolle Spiele aufnimmt, auch sehr hohe Bitrates benötigt. Ultrafast/Superfast mit teilsweise noch --zerolatency. Wenn man aber die CPU frei hat, sieht das ganz anders aus.

    Haswell Quicksync kann dagegen teilweise schon mit x264 Medium mithalten, insbesondere wenn die Bitrates eher niedrig sind: http://www.tetrachromesoftware.com/q264Test1Analy…_lookAhead.html

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!