Hybrid (Windows/Linux/Mac): Input -> x264/x265/Xvid/VP8/VP9

  • Da du gerade online bist, eine andere Frage: Der Grund für den Umstieg auf die neue Version war das Problem, dass obwohl ich unter "Parallel Jobs" 3,4 oder 5 eingestellt hatte, immer nur eins nach dem anderen abgearbeitet wurde. Manchmal sogar nur der erste Job ohne das es weiter ging. Ist das ein Bug, der behoben wurde oder eine unzureichende Einstellung meinerseits gewesen?

  • Hab da ewig nichts am Code geändert,... hat sich also vermutlich nichts geändert.

    Hab gerade mal 10 Jobs erstellt, 'Parallel jobs' auf 5 gestellt, Jobs Abarbeitung gestartet.

    -> Es wurden 5 Jobs gestartet und es wurden erst die ersten 5 und dann die nächsten 5 abgearbeitet.

    Hab dann nochmal 10 unterschiedliche jobs erstellt und parallel jobs auf 3 gestellt und es waren bei der Abarbeitung immer 3 jobs aktiv (sofern noch 3 unbearbeitet waren).


    -> kann das Problem nicht nachstellen :/


    Cu Selur

  • Habe den Grund gefunden. Meine (fertige) Job-Liste war ellenlang. Nachdem ich sie komplett geleert habe, klappt wieder alles wie es soll. Warum bin ich nicht gleich drauf gekommen?8|

  • Hybrid rev 2021.01.31.1:

    *fixed*

    • Vapoursynth: libneo-fft3d.so -> libneofft3d.so
    • Vapoursynth: DaaMod fix 'no field vsDaaExpMod'
    • Sytnh: DVD handling Avisynth/Vapoursynth
    • Synth: Remove Trim from FilterOrder, always trim directly after source filter.
    • Avisynth: 64bit use MPEG2Dec_64
    • Decode: deinterlacing through FFmpeg wasn't used when Avisynth/ Vapoursynth was used.
    • Avisynth: custom before 'End'-section was missing
    • UI: (e)ac3 dialog normalization ui glitch
    • Vapoursynth: IVTCCustomDeinterlacerGPU ui glitch
    • Subtitle: subtitle extraction form MP4 files
    • Preview: title left/right mixup
    • x265: strictCBR handling
    • Vapousynth: MClean
    • Vapoursynth: Denois filters on their own were ignored
    • Audio: qaac language passthrough
    • Audio: ffmpeg aac reencode + ffmpeg cut causing audio glitch
    • Vapoursynth: VFM color space restriction
    • Synth: SelectEvery and SelectRageEvery
    • Vaporsyunth: AddGrain
    • NVEnc: L1/0 reference min value and gui glitch
    • Vapoursynth: make sure filters that change resolution or frame rate are applied to input&output in FilterView.

    *changed*

    • Framework: switchted to Qt6 (Mac&Windows only)
    • Jobs: mplayer try to skip unnecessary muxing for video only encodings.
    • AutoCrop crash
    • Preview: add '-vf scale' during MPlayer Preview
    • UI: bunch of cosmetic changes
    • Synth: adjustements adjust to latest DGDecNV DGSource
    • Vapoursynth: Anime4k supported color formats
    • MPlayer: added 'ni' to mplayer dvd analysis call

    *added*

    • NVEnc: support for --vpp-smooth
    • Vapoursynth: GLSL Resizer support
    • Vapoursynth: "only apply" from some filters.
    • Vapoursynth: support for GrainFactory3
    • Video: custom addition support for aomenc and vpx
    • Video: constrained quality 2pass VPX/AV1


    -> downloads: http://www.selur.de/downloads


    Cu Selur

  • wäre es möglich in hybrid als renderer gpu beschleunigung zu implementieren, sodass man softwarebasiert codieren kann (also mit x265), aber bestimmte Aufgaben die gpu übernimmt?


    wenn ich über hevc-NVENC codiere, geht es zwar sehr schnell, aber die Qualität ist sehr viel schlechter als bei hevc.

    beim adobe media encoder habe ich hevc mit software-codierung ausgewählt und als renderer die gpu beschleunigung. Das Rendern ging dann deutlich schneller und ich konnte bisher kaum Qualitätsunterschiede feststellen.

  • Zitat

    beim adobe media encoder habe ich hevc mit software-codierung ausgewählt und als renderer die gpu beschleunigung. Das Rendern ging dann deutlich schneller und ich konnte bisher kaum Qualitätsunterschiede feststellen.

    Ich vermute, dass dies bedeuten soll, dass zum Dekodieren die VPU/GPU genutzt wird und zum Encodieren ein softwarebasierter Encoder.

    Das kann Hybrid auch, wenn man es entsprechend konfiguriert.


    Man kann in Hybrid das Dekodieren durch die GPU (genauer VPU) machen lassen in dem man:

    a. für ffmpeg den GPU support aktiviert (Config->Input->Decoding->use gpu for decoding)

    b. für eventuelle SourceFilter den GPU support aktiviert ("Filtering->Vapoursynth->Misc->Source->Libav hardware decoding mode"; "Filtering->Avisynth->Misc->SourceLibav hardware decoding mode")

    oder einen Decoder nutzt der immer die GPU nutzt ("Filtering->Avisynth->Misc->Source->Support FRIM" und/oder "Filtering->Avisynth->Misc->Source->Support DGDecNV" sofern man eine DGDecNV Lizenz hat; "Filtering->Vapoursynth->Misc->Source->Use DGDecNV when available" sofern man eine DGDecNV Lizenz hat).


    Hybrid kann nicht die Arbeitsweise von x265 ändern, sprich so lange ein Softwareencoder wie z.B. x265 nicht die GPU nutzen kann, kann Hybrid nichts daran ändern.

    Cu Selur

  • es wird dann noch immer hauptsächlich die cpu genutzt (CPU Auslastung bei ca. 90%) und die Bearbeitungsdauer hat sich nicht verändert (ca. 20 min).


    Wähle ich beim adobe media encoder als renderer cuda aus (siehe Bild 2), liegt die CPU Auslastung bei ca. 8-10 %) und die Bearbeitungsdauer beträgt 2:20 min)

    Ich habe 2 Bilder der beschriebenen EInstellungen angehängt.


    PS: Wähle ich bei Leistung Hardware aus, entspricht das Ergebnis in etwa dem, was bei NVENC herauskommt

  • Eine "Software Kodierung" bei der die CPU nur 5-10% genutzt wird erscheint mir merkwürdig.

    Keine Ahnung was 'Software Kodierung' in Adobe Media Encoder bedeutet.

    Offensichtlich wird nicht x265 genutzt.


    Ich vermute, dass wenn man alles in Adobe Media Encoder über die GPU läuft sollte es in Hybrid NVEnc mit aktiviertem 'NVEnc->Hardware->Only use encoder' entsprechen. Da wird dann kein Avisynth/Vapoursynth/FFmpeg verwendet sondern kein NVEnc (für Decodierung und Encodierung).

    Vielleicht ist das auch das was bei NVEnc der Preset (default/performance/quality) entspricht. (https://github.com/rigaya/NVEn…other-options-for-encoder)

    Mit aktiviertem 'Only use encoder' sollte auch bei Hybrid die CPU Auslastung minimal sein.



    Cu Selur

  • mich hat die Auslastung auch irritiert (tut es auch jetzt noch). ich muss noch dazu sagen, dass die gpu auch nur zu 15 % ausgelastet ist.

    aber mir geht es in erster Linie ja um die Qualität und die Bearbeitungsdauer und die sind bei dieser Einstellung (was immer der adobe encoder da macht) eben überragend. die Qualität entspricht in etwas hevc 2 pass durchlauf, nur dass es eben in einem Bruchteil der Zeit und mit einem Bruchteil der Ressourcen funktioniert.


    Werde in Hybrid gleich mal NVEnc mit aktiviertem 'NVEnc->Hardware->Only use encoder' testen

  • naja, was hevc 2 pass durchlauf bedeuten soll, ist, dass dies (specific filesize/bitrate-2pass) der encoding mode bei hybrid mit exakt denselben restlichen einstellungen ist, die eine äquivalente Qualität zu dem liefert, was beim Adobe media encoder mit den geposteten Einstellungen herauskommt.


    Gerade habe ich 'NVEnc->Hardware->Only use encoder' mit denselben Einstellungen getestet.

    → CPU wurde soweit ich das beurteilen kann gar nicht genutzt, gpu auslastung bei ca. 55 %.

    Das Ganze dauerte sogar nur 46 sec, aber die Qualität ist vergleichsweise miserabel.


    Also irgendwie scheinen bei dem Adobe media encoder die Aufgaben so zwischen cpu und gpu/vpu verteilt zu werden, dass es zu keinem oder kaum sichtbaren Qualitätsverlusten kommt. Finde ich sehr beeindruckend.

    Hier habe ich etwas dazu gefunden: https://helpx.adobe.com/de/x-p…nd-hardware-encoding.html

  • wie gesagt, wenn ich beim adobe media encoder bei Leistung auf hardware umstelle, geht es ähnlich schnell wie bei hybrid mit 'NVEnc->Hardware->Only use encoder' , wird es auch wieder sehr verpixelt.

    das scheint mir also irgendwie ein interessanter mix aus hevc und nvenc hardware only zu sein.

    Kann aber nicht sagen, dass ich nur ansatzweise verstehe, wie das funktioniert (bei der geringen Auslastung)

  • Hybrid rev 2021.04.05.1:

    *fixed*

    • Synth: remove fulldepth parameter from DGSource
    • Output: mkv HDR tagging
    • Tools: mp4box version check
    • NVEncC: crop&co
    • Avisynth: FrameRateConverter: don't add Num/DeNum when double is used
    • Output: generate output name: add cut start&end frame info
    • Vapoursynth: removed vsAnime4KLevel
    • x264 'aud' GUI option not connected to model
    • Vapoursynth FilterPreview crash with Letterboxing
    • aomenc: fixed do not use adaptive quantization with lossless
    • Filtering: yadif - custom: field order ignored
    • fixed double calculation deinterlace/ivtc
    • x264: gui falsely indicated 'me=uhm' for preset 'slow' even when 'me=hex' was used.
    • Vapoursynth: try shortening file names for VSFilterMod (Windows only)
    • UI: dependencies adjustment when max value changed
    • x264: initial qt_max value.
    • aomenc: gui glitch
    • rav1e: 2pass crash
    • NVEnc: progress indication
    • Audio: problem with audio cut
    • Vapoursynth: script profile saving missing some filters.
    • Input: fixed image sequence pattern detection (bug cause by switch to qt6)

    *changed*

    • UI: removed deinterlacer 'none', since it was just decorational
    • Vapoursynth: label Vapoursynth preview in 'Filter-' and 'Filter-Split'- view
    • Avisynth: CCD added ccdMT option
    • Avisynth: AssRenderer set matrix
    • Avisynth: Blur selection fixed cosmetics
    • Vapoursynth: mClean: use vcm instead of vcmod
    • Analysis: interpret 0.0000 as PAR as 1

    *added*

    • Vapoursynth: "Always use Vapoursynth" to tell Hybrid to use Vapoursynth even when it's not needed
    • Vapoursynth: Filter-Queue (see: [INFO] About Vapoursynth Filter Order/Queue)
    • Vapoursynth: DetailSharpen
    • Vapoursynth: 'Apply Only to' + 'Every'
    • Avisynth: CAS, vsMSharpen
    • Decode: ffmpeg vsync option
    • x265: support --(no-)eos/b
    • NVEncC: support warpsharp


    -> downloads: http://www.selur.de/downloads


    Cu Selur