Selur's Little Message Board

Full Version: Zwei neue aufgetauchte Probleme
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2 3
Hallo lieber Selur,

ich habe jetzt zwei neue Probleme, die vorher nicht vorkamen. 1. Die Tonspuren scheinen manchmal sich nicht sauber anzupassen, das heißt, dass der Ton nicht mehr lippensynchron ist. Beim Original ist dies aber korrekt. Das kommt gefühlt alle 10 Dateien mal vor, aber es passiert ab und an, dass dort etwas um ein paar Sekunden nicht synchron ist. 2. Man bekommt nur noch Error, wenn man einen bereits in 4K erstellten Anime in 2x FPS machen möchte unter Filtering/Frame/Interpolation. Ich wähle hier TorchRIFE, model 4.22 lite aus, mit Scale 1.0, Factor/FPS 2/1, Scene detection on und als 0,5, FP16 und TensorRT on. Diese Einstellung lief früher unproblematisch. Ich habe außer diese Einstellung alles andere ausgestellt (auch kein Resize mehr unter Crop/Resize und auch keine Frame/Resize oder Schärfefilter mehr). Bei Start der Datei crasht diese sofort. Früher funktionierte dies. Ich habe nicht die aktuellste Version, aber die von vor ca. 2 Wochen. Ich muss nochmal schauen, welche es ist.
Crash von TrochRIFE ist i.d.R. ein Treiberproblem oder der VRAM geht aus. Der Vapoursynth Preview liefert eventuell einen Hinweis, falls nicht kann ich ohne DebugOutput nicht wirklich etwas dazu sagen.
Gut, dann werde ich dazu gleich mal einen machen. Bei dem Sound weiß ich nicht, wie ich das prüfen soll.
Wenn es direkt crashed bei der Videostreamverarbeitung ist es vermutlich ein Probleme mit Vapoursynth und da sollte der Vapoursynth Preview eine Fehlermeldung liefern.

Cu Selur
Also wenn ich mit Vapoursynth einen Preview mache, kommt das: 

# Imports
import logging
import sys
import os
import vapoursynth as vs
# using Vapoursynth R79
# getting Vapoursynth core
core = vs.core
# Import scripts folder
scriptPath = 'C:/Program Files/Hybrid/64bit/vsscripts'
sys.path.insert(0, os.path.abspath(scriptPath))
# Force logging to std:err
logging.StreamHandler(sys.stderr)
# loading plugins
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/MiscFilter/MiscFilters/MiscFilters.dll")
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/Vapoursynth/Lib/site-packages/vapoursynth/plugins2/scenechange.dll")
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/Vapoursynth/Lib/site-packages/vapoursynth/plugins2/znedi3.dll")
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/Vapoursynth/Lib/site-packages/vapoursynth/plugins2/sneedif/libsneedif.dll")
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/Vapoursynth/Lib/site-packages/vapoursynth/plugins2/zsmooth/zsmooth.dll")
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/Vapoursynth/Lib/site-packages/vapoursynth/plugins2/mvutensils/mvutensils.dll")
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/Vapoursynth/Lib/site-packages/vapoursynth/plugins2/fmtconv.dll")
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/SourceFilter/LSmashSource/LSMASHSource.dll")
# Import scripts
import ChangeFPS
import nnedi3_resample
import smdegrain
import validate
# Source: 'C:\Users\Peter\Desktop\Zeug\Upscaling\Hybrid\Demon.Slayer.Kimetsu.no.Yaiba.Infinity.Castle.2025.German.ML.AAC.1080p.WebDL.x264-PuddingSama.mkv'
# clip current meta; color space: YUV420P10, bit depth: 10, resolution: 3840x2160, fps: 23.976, color matrix: 709, color primaries: Unspecific, color transfer: Unspecified, yuv luminance scale: limited, scanorder: progressive, full height: true (Source)
# Loading 'C:\Users\Peter\Desktop\Zeug\Upscaling\Hybrid\Demon.Slayer.Kimetsu.no.Yaiba.Infinity.Castle.2025.German.ML.AAC.1080p.WebDL.x264-PuddingSama.mkv' using LWLibavSource
clip = core.lsmas.LWLibavSource(source="C:/Users/Peter/Desktop/Zeug/Upscaling/Hybrid/Demon.Slayer.Kimetsu.no.Yaiba.Infinity.Castle.2025.German.ML.AAC.1080p.WebDL.x264-PuddingSama.mkv", format="YUV420P10", stream_index=0, cache=0, fpsnum=24000, fpsden=1001, prefer_hw=0)
frame = clip.get_frame(0)
# setting color matrix to 709.
clip = core.std.SetFrameProps(clip, _Matrix=vs.MATRIX_BT709)
# setting color transfer (vs.TRANSFER_BT2020_10), if it is not set.
if validate.transferIsInvalid(clip):
clip = core.std.SetFrameProps(clip=clip, _Transfer=vs.TRANSFER_BT2020_10)
# setting color primaries info (to vs.PRIMARIES_BT2020), if it is not set.
if validate.primariesIsInvalid(clip):
clip = core.std.SetFrameProps(clip=clip, _Primaries=vs.PRIMARIES_BT2020)
# setting color range to TV (limited) range.
prop_name = '_Range' if core.core_version.release_major >= 74 else '_ColorRange'
clip = core.std.SetFrameProps(clip=clip, **{prop_name: vs.RANGE_LIMITED})
# making sure frame rate is set to 23.976fps
clip = core.std.AssumeFPS(clip=clip, fpsnum=24000, fpsden=1001)
# making sure the detected scan type is set (detected: progressive)
clip = core.std.SetFrameProps(clip=clip, _FieldBased=vs.FIELD_PROGRESSIVE) # scan type: progressive
original = clip
# removing grain using SMDegrain
clip = smdegrain.SMDegrain(clip, thSADC=150, RefineMotion=True, interlaced=False, pel=1, subpixel=3, opencl=True, device=-1)
from vsrife import rife
# adjusting color space from YUV420P10 to RGBH for vsTorchRIFE
clip = core.resize.Spline36(clip=clip, format=vs.RGBH, matrix_in_s="709", range_in_s="limited", range_s="full")
# adjusting frame count&rate with RIFE (torch)
clip = rife(clip, model="4.22.lite", trt=True, trt_cache_dir="C:/Users/Peter/AppData/Local/Temp", sc=True, sc_threshold=0.500) # new fps: 47.952
# adjusting frame count by adding duplicate frames
original = ChangeFPS.ChangeFPS(clip=original,target_fps_num=48000,target_fps_den=1001)
# adjusting output color from RGBH to YUV420P10 for NVEncModel
clip = core.resize.Spline36(clip=clip, format=vs.YUV420P10, matrix_s="709", range_in_s="full", range_s="limited", dither_type="none")
original = core.text.Text(clip=original,text="Original",scale=4,alignment=7)
clip = core.text.Text(clip=clip,text="Filtered",scale=4,alignment=7)
stacked = core.std.StackHorizontal([original,clip])
# set output frame rate to 47.952fps (progressive)
stacked = core.std.AssumeFPS(clip=stacked, fpsnum=48000, fpsden=1001)
# output
stacked.set_output()
# stacked current meta; color space: YUV420P16, bit depth: 10, resolution: 7680x2160, fps: 47.952, color matrix: 709, color primaries: , color transfer: , yuv luminance scale: limited, scanorder: progressive, full height: true (Meta)
# script was created by Hybrid 2026.09.04.1

Failed to evaluate the script:
Python exception: Failed to load C:/Program Files/Hybrid/64bit/Vapoursynth/Lib/site-packages/vapoursynth/plugins2/scenechange.dll. GetLastError() returned 126. The file you tried to load or one of its dependencies is probably missing.

Traceback (most recent call last):
File "vapoursynth.pyx", line 3832, in vapoursynth._vpy_evaluate
File "vapoursynth.pyx", line 3833, in vapoursynth._vpy_evaluate
File "C:\Users\Peter\AppData\Local\Temp\tempPreviewVapoursynthFile16_00_14_582.vpy", line 16, in
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/Vapoursynth/Lib/site-packages/vapoursynth/plugins2/scenechange.dll")
File "vapoursynth.pyx", line 3559, in vapoursynth.Function.__call__
vapoursynth.Error: Failed to load C:/Program Files/Hybrid/64bit/Vapoursynth/Lib/site-packages/vapoursynth/plugins2/scenechange.dll. GetLastError() returned 126. The file you tried to load or one of its dependencies is probably missing.


Eine debug-File schicke ich gleich noch.
Code:
Python exception: Failed to load C:/Program Files/Hybrid/64bit/Vapoursynth/Lib/site-packages/vapoursynth/plugins2/scenechange.dll. GetLastError() returned 126. The file you tried to load or one of its dependencies is probably missing.
Okay, scenechange fehlt eine oder mehrere Abhängigkeiten.
Laut DepenencyWalker wird vcruntime140d.dll benötigt.
Ich wundere mich warum dies der Fall ist, da dies eine Debug-Library ist.
..
  • Ich habe: einen issue-Eintrag bei Github für den scenechange developer angelegt.
  • Als temporäre Lösung kannst Du die angehängt zip Datei in Deinen "C:/Program Files/Hybrid/64bit/Vapoursynth/Lib/site-packages/vapoursynth/plugins2/"-Ordner entpacken. Die enthaltene vcruntime140d.dll sollte das Probleme erstmal umgehen.

Cu Selur

Ps.: Bitte 'code'-tags in Zukunft verwenden, wenn Du Skripte oder dergleichen postest. Danke.
Vielen Dank schonmal vorab. Wie kann man das Problem mit der verzogenen Audio beheben bzw. woran kann das liegen. Das ist bei 24 Dateien zwar nur 2x aufgetaucht, ist aber trotzdem ärgerlich.
Da ich keine Ahnung habe warum es auftritt kann ich dir keine direkte Lösung nennen.
Meist tritt dies auf, wenn etwas mit der Quelle nicht stimmt.
Generell:
Davon ausgegangen, die Quelle wurde korrekt erkannt und Du machst nichts was nur die Laufzeit von Audio oder Video alleine ändert können kleine Defekte in Audio&Videostreams, die beim normalen Schauen über einen Mediaplayer nicht auf fallen, bei Reencoden zu Problemen führen.
Ohne eine Quelle an der ich das Problem nachstellen kann ist es reines Raten von meiner Seite aus.

Cu Selur
Hallo Selur,

versuch mal diese Datei upzuscalen. Achte aber auf die deutsche Tonspur (die 2.). An dieser Stelle ist die Audio bei mir nach Upscaling mit RealESRGAN realesr-anime u.a. verschoben, aber in diesem Falle war es bei der ganzen Folge so.

Die Datei, die ich ablegen sollte, hat leider nichts bewirkt. Interpolation mit RIFEmlrt wirkt, das hat aber vorher schon geklappt. Welches Modell würdest du da eigentlich für maximale Qualität und dennoch hohe Geschwindigkeit bzw. kleiner Dateigröße bzgl. Interpolation allgemein empfehlen?
Quote:Welches Modell würdest du da eigentlich für maximale Qualität und dennoch hohe Geschwindigkeit bzw. kleiner Dateigröße bzgl. Interpolation allgemein empfehlen?
Sorry, keine Ahnung. Encode seltenst Animes.

Quote:Die Datei, die ich ablegen sollte, hat leider nichts bewirkt.
Huh Den Satz verstehe ich nicht.
Kann das Problem aber mit dem Sample aber nichts nachstellen.


Wilde Vermutung: Vielleicht ist der Audiostream bei deiner Original Quelle gestreched. (hab die mkv stretch Erkennung irgendwann rausgeworfen, da es a. seht selten vorgekommen ist b. das nur Animeleute verwenden c. es nie richtig verlässlich war das zu erkennen/raten)

Ruf mal:
Code:
mkvinfo "Pfad zur Originalquelle"
auf.
Wenn ich das bei deinem Sample mache sehe ich:
Code:
+ EBML head |+ EBML version: 1 |+ EBML read version: 1 |+ Maximum EBML ID length: 4 |+ Maximum EBML size length: 8 |+ Document type: matroska |+ Document type version: 4 |+ Document type read version: 2 + Segment: size 3010933 |+ Seek head (subentries will be skipped) |+ EBML void: size 82 |+ Segment information | + Timestamp scale: 1000000 | + Multiplexing application: Lavf58.76.100 | + Writing application: Lavf58.76.100 | + Segment UID: 0x69 0x50 0xa1 0xbb 0xe4 0x9b 0xb2 0x90 0xb6 0xea 0x01 0x6f 0x72 0x67 0x5a 0xe1 | + Duration: 00:00:10.264000000 |+ Tracks | + Track | + Track number: 1 (track ID for mkvmerge & mkvextract: 0) | + Track UID: 3131218202135302565 | + "Lacing" flag: 0 | + Language: und | + Codec ID: V_MPEG4/ISO/AVC | + Track type: video | + Default duration: 00:00:00.041708333 (23.976 frames/fields per second for a video track) | + Video track | + Pixel width: 1920 | + Pixel height: 1080 | + Codec's private data: size 48 (H.264 profile: High 10 @L5.1) | + Track | + Track number: 2 (track ID for mkvmerge & mkvextract: 1) | + Track UID: 16264024520604447665 | + "Lacing" flag: 0 | + Language: jpn | + Codec ID: A_EAC3 | + Track type: audio | + Audio track | + Channels: 2 | + Sampling frequency: 48000 | + Track | + Track number: 3 (track ID for mkvmerge & mkvextract: 2) | + Track UID: 10182337258719288008 | + "Lacing" flag: 0 | + Language: deu | + "Default track" flag: 0 | + Codec ID: A_AAC | + Track type: audio | + Audio track | + Channels: 2 | + Sampling frequency: 44100 | + Codec's private data: size 2 |+ Tags | + Tag | + Targets | + Simple | + Name: ENCODER | + String: Lavf58.76.100 | + Tag | + Targets | + Track UID: 3131218202135302565 | + Simple | + Name: DURATION | + String: 00:00:10.261000000 | + Tag | + Targets | + Track UID: 16264024520604447665 | + Simple | + Name: DURATION | + String: 00:00:10.264000000 | + Tag | + Targets | + Track UID: 10182337258719288008 | + Simple | + Name: DURATION | + String: 00:00:10.253000000 |+ Cluster
was anzeigt, dass der erste Audio stream 10.264 Sekunden und der zweite 10.253 Sekunden lang ist.
Falls der Unterschied bei Deinem Original aber wirklich einiges länger/kürzer ist, kann es wirklich sein, dass der Stream gestreckt oder gestaucht ist und dies Hybrid einfach nicht erkennt.

Cu Selur
Pages: 1 2 3