Beiträge von shimmy

    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

    Ich finde es schade, dass Intel keinen eigenen Referenz-Encoder zur Verfügung stellt, bei dem jeweils die neuesten Features verfügbar sind, und bei dem man sich sicher sein kann, dass es keine merkwürdigen Bugs gibt.

    So sind nur die Handbrake Nightly und QSVEncC jeweils up-to-date, aber QSVEncC ist nicht gerade besonders benutzerfreundlich ohne ein GUI, und in Handbrake muss man auch Advanced Options nutzen. So hält sich der sehr schlechte Ruf von QSV, auch wenn Haswell inzwischen schon recht gute Ergebnisse liefert. Geschwindigkeit ist immer noch sehr gut und Energieverbrauch deutlich niedriger im Vergleich zu x264.

    Mit Handbrake, angepassten Einstellungen und Haswell ist bei mir QSV ungefähr gleichauf mit x264 veryfast, nur schneller und mit niedrigerem Stromverbrauch. Und man kann nebenbei noch andere Dinge erledigen, ohne dass es sich negativ auf die Geschwindigkeit auswirkt. Ich teste mit 8000 kbps, 60 fps, 1920*864. x264 in AVBR 1 pass, QSV im LA-Modus.

    Der Pentium hat ein deutlich abgspeckte Version der Grafik, wodurch QSV langsamer läuft. Erst ab dem i3 4330 bekommt man die HD4600. Für maximale Leistung bräuchte man einen 4x70R.

    Code
    qsvencc --avi -i "j:\testfile.avi" -o "k:\testfile.avi"

    Also alles default. Aber auch bei anderen Einstellungen klappt es nicht. Habe den neusten und den etwas älteren Treiber getestet.

    --check-features:

    Code
    QSVEncC (x86) 1.22 by rigaya, build Jun 21 2014 22:22:36based on Intel(R) Media SDK Encoding Sample 5,0,337,0  avi reader: enabled  avs reader: enabled  vpy reader: enabledMedia SDK Hardware API v1.8Supported features:                  CBR   VBR   AVBR  CQP   VQP   LA    ICQ   LAICQ VCMRC mode available  o     o     o     o     o     o     x     x     xVUI info output    o     o     o     o     o     o     x     x     xTrellis            o     o     o     o     o     o     x     x     xAdaptive_I         o     o     o     o     o     o     x     x     xAdaptive_B         o     o     o     o     o     o     x     x     xB_Pyramid          o     o     o     o     o     o     x     x     xExt_BRC            o     o     o     x     x     x     x     x     xMBBRC              o     o     o     x     x     x     x     x     xLookahead Quality  x     x     x     x     x     o     x     x     x

    Die Testdateien kommen aus x264 VfW. Gameplay-Aufnahme.
    Encoding settings:

    Code
    cabac=0 / ref=1 / deblock=0:0:0 / analyse=0:0 / me=dia / subme=0 / psy=0 / mixed_ref=0 / me_range=16 / chroma_me=1 / trellis=0 / 8x8dct=0 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=0 / threads=13 / lookahead_threads=13 / sliced_threads=1 / slices=13 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=0 / weightp=0 / keyint=250 / keyint_min=25 / scenecut=0 / intra_refresh=0 / rc=crf / mbtree=0 / crf=22.0 / qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 / ip_ratio=1.40 / aq=2:1.00

    Sogar der Software-Encoder steigt nach ~11200 Frames aus. Andere Datei:

    Code
    Processing started
    [24.5%] 15536 frames: 96.61 fps, 25214.21 kb/s, remain 0:08:16
    Processing finished

    Immerhin über 15000 Frames.

    Mit QSVEncC 1.22 funktioniert jetzt tatsächlich --quality best, allerdings habe ich immer noch ein Problem, dass QSVEncC ein bisschen zu früh aufhört:

    Code
    Processing started[40.1%] 11175 frames: 117.91 fps, 7952.06 kb/s, remain 0:02:21Processing finished

    Nächster Versuch mit anderen Einstellungen:

    Code
    Processing started
    [40.2%] 11187 frames: 176.89 fps, 20541.99 kb/s, remain 0:01:34
    Processing finished

    40.2% ist offensichtlich nicht ganz fertig. Tritt mit allen Einstellungen auf, bei fast derselben Stelle.

    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.

    --check-lib

    Code
    avi reader: enabled  avs reader: enabled  vpy reader: enabledlibmfxhw32.dll : v1.8libmfxsw32.dll : v1.8

    --check-features

    Code
    CBR   VBR   AVBR  CQP   VQP   LA    ICQ   LAICQ VCMRC mode available  o     o     o     o     o     o     x     x     xVUI info output    o     o     o     o     o     o     x     x     xTrellis            o     o     o     o     o     o     x     x     xAdaptive_I         o     o     o     o     o     o     x     x     xAdaptive_B         o     o     o     o     o     o     x     x     xB_Pyramid          o     o     o     o     o     o     x     x     xExt_BRC            o     o     o     x     x     x     x     x     xMBBRC              o     o     o     x     x     x     x     x     xLookahead Quality  x     x     x     x     x     o     x     x     x

    --check-environment

    Code
    avi reader: enabled
      avs reader: enabled
      vpy reader: enabled
    
    
    Error (clGetDeviceIDs): -1
    Environment Info
    OS : Windows 8 (x64)
    CPU: Intel(R) Core(TM) i7-4770K CPU @ 3.50GHz [TB: 4.30GHz] (4C/8T)
    GPU: Unknown (Failed to find

    Da passt irgendwas nicht... Habe integrierte GPU im BIOS als primäre gewählt.

    Hanbrake kommt mit ICQ und ICQ-LA auf target usage=1 zurecht.

    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

    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...

    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?