This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm whether you accept or reject these cookies being set.

A cookie will be stored in your browser regardless of choice to prevent you being asked this question again. You will be able to change your cookie settings at any time using the link in the footer.

Komprimieren von MKV-Datei endet mit x264 [error]: could not open input file `-'
#2
Quote:Seltsam finde ich, dass anscheinend aus
--demuxer raw
Folgendes wird:
--demuxer y4m
wobei zwischen y4m und --input-range zwei Leerzeichen sind.
Ist normal, ob der raw oder der y4m Demuxer verwendet wird hängt vom Decoder ab, der Anfangs noch nicht bekannt ist.

Quote:Aber bei den Dateien, die keine Probleme machen passiert dieser Austausch nicht.
Hängt wie gesagt vom Decoder ab.

Quote:Auch wenn ich an den x264-Komprimierungseinstellungen herumspiele, bleibt das Problem im Wesentlichen genau so bestehen.
Das Problem sind vermutlich auch nicht der Encoder sondern der Decoder oder das Filtering.

Quote:Wenn ich die HybridDebugOutput.txt ungezippt über die Funktion des Forums als Attachment hinzufügen will, schlägt dies fehl. Welchem Speicherbedarf "HybridDebugOutput.txt Kilobyte" entsprechen weiß ich leider nicht Tongue  
Kann ich nichts für, liegt an der Forensoftware. Keine Ahnung ob ich mal Zeit finde mich in den entsprechenden PHP code einzulesen und da eine Änderung vorzunehmen.

Zum Problem:
Wenn ich mir den DebugOutput anschaue sieht eigentlich alles okay aus:
1. Video wird mit Vapoursynth gefiltert
# Imports
import os
import sys
import ctypes
Dllref = ctypes.windll.LoadLibrary("C:/Program Files/Hybrid/64bit/vsfilters/Support/libfftw3f-3.dll")
# Loading Support Files
Dllref = ctypes.windll.LoadLibrary("C:/Program Files/Hybrid/64bit/vsfilters/Support/OpenCL.dll")
import vapoursynth as vs
core = vs.get_core()
# Import scripts folder
scriptPath = 'C:/Program Files/Hybrid/64bit/vsscripts'
sys.path.append(os.path.abspath(scriptPath))
# Loading Plugins
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/GrainFilter/AddGrain/AddGrain.dll")
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/DenoiseFilter/FFT3DFilter/fft3dfilter.dll")
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/DenoiseFilter/DFTTest/DFTTest.dll")
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/Support/EEDI3.dll")
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/ResizeFilter/nnedi3/vsznedi3.dll")
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/Support/libmvtools.dll")
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/Support/temporalsoften.dll")
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/Support/scenechange.dll")
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/Support/fmtconv.dll")
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/SourceFilter/LSmashSource/vslsmashsource.dll")
# Import scripts
import havsfunc
# Loading G:\TestFilm.mkv using LWLibavSource
clip = core.lsmas.LWLibavSource(source="G:/TestFilm.mkv", format="YUV420P8", cache=0)
# making sure input color matrix is set as unspec
clip = core.resize.Point(clip, matrix_in_s="unspec",range_s="limited")
# making sure frame rate is set to 25/1
clip = core.std.AssumeFPS(clip, fpsnum=25, fpsden=1)
# Setting color range to TV (limited) range.
clip = core.std.SetFrameProp(clip=clip, prop="_ColorRange", intval=1)
# setting field order to what QTGMC should assume
clip = core.std.SetFrameProp(clip=clip, prop="_FieldBased", intval=2)
# Deinterlacing using QTGMC
clip = havsfunc.QTGMC(Input=clip, Preset="Fast", TFF=True)
clip = clip[::2]
# Output
clip.set_output()
2. Zum Interpretieren des Vapoursynthscripts wird VsPipe verwendet:
"C:\PROGRA~1\Hybrid\64bit\VAPOUR~1\vspipe.exe" "G:\TestTemp\encodingTempSynthSkript_20_06_16_1310.vpy" - --y4m
3. Zum Encodieren wird:
"C:\PROGRA~1\Hybrid\64bit\x264.exe" --preset superfast --pass 1 --bitrate 1500 --profile high --level 4.1 --direct auto --qcomp 0.5 --rc-lookahead 40 --aq-mode 0 --sar 16:15 --non-deterministic --range tv --stats "G:\TestTemp\TestFilm_20_06_16_1310_02.stats" --demuxer y4m  --input-range tv --fps 25/1 --output-depth 8 --output NUL -
Der komplette De-/Encoding-Aufurf sieht bei Dir so aus:
"C:\PROGRA~1\Hybrid\64bit\VAPOUR~1\vspipe.exe" "G:\TestTemp\encodingTempSynthSkript_20_06_16_1310.vpy" - --y4m | "C:\PROGRA~1\Hybrid\64bit\x264.exe" --preset superfast --pass 1 --bitrate 1500 --profile high --level 4.1 --direct auto --qcomp 0.5 --rc-lookahead 40 --aq-mode 0 --sar 16:15 --non-deterministic --range tv --stats "G:\TestTemp\TestFilm_20_06_16_1310_02.stats" --demuxer y4m  --input-range tv --fps 25/1 --output-depth 8 --output NUL -

Problem ist nur, dass der VsPipe-Aufruf bei Dir fehlzuschlagen scheint.
Wenn ich das Versuche hier nachzustellen wird bei mir auch:
vspipe "E:\Temp\encodingTempSynthSkript_05_08_09_2010.vpy" - --y4m | x264 --preset superfast --pass 1 --bitrate 1500 --profile high --level 4.1 --direct auto --sync-lookahead 27 --qcomp 0.5 --rc-lookahead 40 --aq-mode 0 --sar 16:15 --non-deterministic --range tv --stats "E:\Temp\TestFilm_05_08_09_2010_02.stats" --demuxer y4m  --input-range tv --fps 25/1 --output-depth 8 --output NUL -
mit:
# Imports
import os
import sys
import ctypes
Dllref = ctypes.windll.LoadLibrary("I:/Hybrid/64bit/vsfilters/Support/libfftw3f-3.dll")
# Loading Support Files
Dllref = ctypes.windll.LoadLibrary("I:/Hybrid/64bit/vsfilters/Support/OpenCL.dll")
import vapoursynth as vs
core = vs.get_core()
# Import scripts folder
scriptPath = 'I:/Hybrid/64bit/vsscripts'
sys.path.append(os.path.abspath(scriptPath))
# Loading Plugins
core.std.LoadPlugin(path="I:/Hybrid/64bit/vsfilters/GrainFilter/AddGrain/AddGrain.dll")
core.std.LoadPlugin(path="I:/Hybrid/64bit/vsfilters/DenoiseFilter/FFT3DFilter/fft3dfilter.dll")
core.std.LoadPlugin(path="I:/Hybrid/64bit/vsfilters/DenoiseFilter/DFTTest/DFTTest.dll")
core.std.LoadPlugin(path="I:/Hybrid/64bit/vsfilters/Support/EEDI3.dll")
core.std.LoadPlugin(path="I:/Hybrid/64bit/vsfilters/ResizeFilter/nnedi3/vsznedi3.dll")
core.std.LoadPlugin(path="I:/Hybrid/64bit/vsfilters/Support/libmvtools.dll")
core.std.LoadPlugin(path="I:/Hybrid/64bit/vsfilters/Support/temporalsoften.dll")
core.std.LoadPlugin(path="I:/Hybrid/64bit/vsfilters/Support/scenechange.dll")
core.std.LoadPlugin(path="I:/Hybrid/64bit/vsfilters/Support/fmtconv.dll")
core.std.LoadPlugin(path="I:/Hybrid/64bit/vsfilters/SourceFilter/LSmashSource/vslsmashsource.dll")
# Import scripts
import havsfunc
# Loading C:\Users\Selur\Desktop\TestFilm.mkv using LWLibavSource
clip = core.lsmas.LWLibavSource(source="C:/Users/Selur/Desktop/TestFilm.mkv", format="YUV420P8", cache=0)
# making sure input color matrix is set as unspec
clip = core.resize.Point(clip, matrix_in_s="unspec",range_s="limited")
# making sure frame rate is set to 25/1
clip = core.std.AssumeFPS(clip, fpsnum=25, fpsden=1)
# Setting color range to TV (limited) range.
clip = core.std.SetFrameProp(clip=clip, prop="_ColorRange", intval=1)
# setting field order to what QTGMC should assume
clip = core.std.SetFrameProp(clip=clip, prop="_FieldBased", intval=2)
# Deinterlacing using QTGMC
clip = havsfunc.QTGMC(Input=clip, Preset="Fast", TFF=True)
clip = clip[::2]
# Output
clip.set_output()
als Vapoursynth script verwendet.

y4m [error]: bad sequence header magic
process finished with exitcode: -1 and exitStatue: 0
finished after 00:00:00.199 with exitCode -1
Crashed with exit status 0
Weißt auch darauf hin, das x264 keine oder kaputte Informationen vom Decoder/Interpreter erhält.

Da es bei mir ohne Probleme läuft vermute ich aktuell, dass es entweder ein generelles Problem mit Vapoursynth auf dem System gibt was Du verwendest, da irgendetwas dazwischen funkt (Virenscanner&Co) oder ein anderer Decoder verwendet werden muss.
Würde empfehlen:
1. Teste ob der 'Vapoursynth Preview' (Filtering, rechts unten unter der 'Support'-Auswahl), falls der Vapoursynth Preview geht liegt es schon mal nicht am Decoder und am Vapoursynth Setup. Falls er nicht klappt sollte im 'Vapoursynth Preview'-Fenster ein Fehler auftauchen, der mir helfen sollte das Problem zu beheben.
2. Falls der 'Vapoursynth Preview' ohne Probleme klappt, ruf mal bitte:
"C:\PROGRA~1\Hybrid\64bit\VAPOUR~1\vspipe.exe" "G:\TestTemp\encodingTempSynthSkript_20_06_16_1310.vpy" - --y4m | "C:\PROGRA~1\Hybrid\64bit\x264.exe" --preset superfast --pass 1 --bitrate 1500 --profile high --level 4.1 --direct auto --qcomp 0.5 --rc-lookahead 40 --aq-mode 0 --sar 16:15 --non-deterministic --range tv --stats "G:\TestTemp\TestFilm_20_06_16_1310_02.stats" --demuxer y4m  --input-range tv --fps 25/1 --output-depth 8 --output NUL -
in einer Eingabeaufforderung auf um zu sehen, ob da eventuell noch eine andere Fehlermeldung kommt. Mit dem Aufruf kann man auch testen, ob es eventuell geht wenn man Virenscanner&Co deaktiviert.

Cu Selur

Ps.: Fällt mir ein, das Problem könnte an der ff3dfilter.dll liegen, siehe: https://forum.selur.net/showthread.php?tid=732 (Das Ersetzen der .dll durch die von mir hochgeladene .dll sollte das Problem dann beheben.)
Reply


Messages In This Thread
RE: Komprimieren von MKV-Datei endet mit x264 [error]: could not open input file `-' - by Selur - 23.11.2018, 06:20

Forum Jump:


Users browsing this thread: 1 Guest(s)