Sample file (83MB)
Hi Selur, please grab the above file and try encoding it with any settings at all, no matter what type of output I select, Hybrid just throws this error: "Helper(1) finished with exitCode: -22 and exitStatus: 0" instantly.
The file is the result of some restoration work using Photoshop and I saved the result using the only lossless option I could see in Photoshop - QuickTime .mov Uncompressed. The resulting .mov plays fine in MPC-HC and the avisynth script Hybrid produces for it also plays fine in MPC-HC.
When I got the crash, I used VirtualDub to make an actual .avi from the avisynth script (sample of this avi is what's posted above), which again plays fine in MPC-HC, but Hybrid cannot handle it. Is this because of the Photoshop output format? What about it is incompatible?
P.S I also tried using the avi as input and disabling avisynth in Hybrid, still the same crash.
"Helper(1) finished with exitCode: -22 and exitStatus: 0" happens when the decoder fails, without a debug output that is all I can say.
Tried loading the source and processing it with Vapoursynth and Avisynth: no problem
Not using either Avisynth or Vapoursynth, but only Vapoursynth does crash due to a bug int the ffmpeg call.
=> Will look at it after work, either configuring Hybrid to always use Avisynth or Vapoursynth does work fine as a workaround for me.
No clue why, you would get a crash while using Avisynth, since you didn't share enough details (first thing would be a debug output) to reproduce the problem.
Cu Selur
Thanks Selur, sorry about the lack of debug log, here it is:
DebugLog
Avisynth uses:
Code:
ClearAutoloadDirs()
SetFilterMTMode("DEFAULT_MT_MODE", MT_MULTI_INSTANCE)
LoadPlugin("C:\Program Files\Hybrid\64bit\Avisynth\avisynthPlugins\LSMASHSource.dll")
LoadPlugin("C:\Program Files\Hybrid\64bit\Avisynth\avisynthPlugins\nnedi3.dll")
LoadPlugin("C:\Program Files\Hybrid\64bit\Avisynth\avisynthPlugins\neo-fft3d.dll")
LoadPlugin("C:\Program Files\Hybrid\64bit\Avisynth\avisynthPlugins\mvtools2.dll")
LoadPlugin("C:\Program Files\Hybrid\64bit\Avisynth\avisynthPlugins\masktools2.dll")
LoadPlugin("C:\Program Files\Hybrid\64bit\Avisynth\avisynthPlugins\RgTools.dll")
Import("C:\Program Files\Hybrid\64bit\Avisynth\avisynthPlugins\mtmodes.avsi")
Import("C:\Program Files\Hybrid\64bit\Avisynth\avisynthPlugins\Zs_RF_Shared.avsi")
Import("C:\Program Files\Hybrid\64bit\Avisynth\avisynthPlugins\QTGMC.avsi")
# loading source: C:\temp\sample.avi
# color sampling RGB24@8, matrix: pc601, scantyp: bottom field first, luminance scale: full
LWLibavVideoSource("C:\temp\sample.avi",cache=false,format="RGB24", prefer_hw=0)
# current resolution: 720x576
# deinterlacing
ConvertToYV24(interlaced=true, matrix="PC.601")
AssumeBFF()
QTGMC(Preset="Very Slow", InputType=0, TR2=0, Sharpness=0.2, SourceMatch=2, Lossless=2, MatchPreset="Very Slow", EZKeepGrain=0.80, NoisePreset="Fast", ediThreads=4)
SelectEven()
# adjust color to YV12 (color matrix: PC.601)
ConvertToYV12()
# setting output fps to 25.000fps
AssumeFPS(25,1)
PreFetch(10)
# output: color sampling YV24@8, matrix: pc601, scantyp: progressive, luminance scale: full
return last
In the script the shown output color sampling is wrong (YV24@8 should be YV12@8) but that only seems to be a local bug, since ffmpeg assumes correctly YV12 when decoding it.
Code:
"C:\Program Files\Hybrid\64bit\ffmpeg.exe" -y -loglevel fatal -noautorotate -nostdin -threads 8 -i "C:\Users\User\AppData\Local\Temp\encodingTempSynthSkript_2024-10-10@10_07_20_9710_0.avs" -an -sn -vf scale=out_color_matrix=rec.601 -sws_flags accurate_rnd+full_chroma_inp -pix_fmt yuv420p -vsync 0 -f rawvideo -
not sure where the problem is.
=> looking into it
Cu Selur
Trying to reproduce the crash I:
- Start Hybrid
- Load the file
- Switch under Filtering to Avisynth (no clue why you use Avisynth, but okay)
- Enable 'Filtering->(De-)Interlace/Telecine->Overwrite input scan type to' to 'bottom field first' (took that from your debug output, since the sample does not show any motion, to seeing combing is kind of hard )
- Enable 'Filtering->(De-)Interlace/Telecine->QTGMC Avisynth->Bob'.
- Set 'Filtering->(De-)Interlace/Telecine->QTGMC Avisynth->Preset' to 'Custom'.
- Set 'Filtering->(De-)Interlace/Telecine->QTGMC Avisynth->Custom->Preset' to 'Very Slow'.
- Set 'Filtering->(De-)Interlace/Telecine->QTGMC Avisynth->Custom->EdiThreads' to '4'.
- Enable 'Filtering->(De-)Interlace/Telecine->QTGMC Avisynth->Custom->EZKeepGrain' and set it to '0.80'.
- Set 'Filtering->(De-)Interlace/Telecine->QTGMC Avisynth->Custom->Source matching' to 'refined'.
- Set 'Filtering->(De-)Interlace/Telecine->QTGMC Avisynth->Custom->Lossless' to 'before resharpening'.
- Set 'Filtering->(De-)Interlace/Telecine->QTGMC Avisynth->Custom->Match Preset' to 'Very Slow'.
- Check the Avisynth Preview:
Code:
ClearAutoloadDirs()
SetFilterMTMode("DEFAULT_MT_MODE", MT_MULTI_INSTANCE)
LoadPlugin("F:\Hybrid\64bit\Avisynth\avisynthPlugins\LSMASHSource.dll")
LoadPlugin("F:\Hybrid\64bit\Avisynth\avisynthPlugins\nnedi3.dll")
LoadPlugin("F:\Hybrid\64bit\Avisynth\avisynthPlugins\neo-fft3d.dll")
LoadPlugin("F:\Hybrid\64bit\Avisynth\avisynthPlugins\mvtools2.dll")
LoadPlugin("F:\Hybrid\64bit\Avisynth\avisynthPlugins\masktools2.dll")
LoadPlugin("F:\Hybrid\64bit\Avisynth\avisynthPlugins\RgTools.dll")
Import("F:\Hybrid\64bit\Avisynth\avisynthPlugins\mtmodes.avsi")
Import("F:\Hybrid\64bit\Avisynth\avisynthPlugins\Zs_RF_Shared.avsi")
Import("F:\Hybrid\64bit\Avisynth\avisynthPlugins\QTGMC.avsi")
# loading source: C:\Users\Selur\Desktop\uncompressed_sample.avi
# color sampling RGB24@8, matrix: pc601, scantyp: bottom field first, luminance scale: full
LWLibavVideoSource("C:\Users\Selur\Desktop\uncompressed_sample.avi",cache=false,format="RGB24", prefer_hw=0)
# current resolution: 720x576
# deinterlacing
ConvertToYV24(interlaced=true, matrix="PC.601")
AssumeBFF()
QTGMC(Preset="Very Slow", InputType=0, TR2=2, SourceMatch=2, Lossless=2, MatchPreset="Very Slow", EZKeepGrain=0.80, NoisePreset="Fast", ediThreads=4)
# Converting from 8 to 10bit for encoder
ConvertBits(10)
# adjust color to YV12 (color matrix: PC.601)
ConvertToYUV420()
# setting output fps to 50.000fps
AssumeFPS(50,1)
PreFetch(16)
# output: color sampling YV12@10, matrix: pc601, scantyp: progressive, luminance scale: full
return last
My Avisynth script is basically the same as yours. (with adjusted paths)
- Set 'x264->Base->Encoding mode' to 'constant rate factor (1-pass)'.
Can't use 2-pass, like you did, since the sample is to short for that, but since the decoder/helper crashed for you that should not matter.
- Set and output file, create and create a new job.
- Disable 'Jobs->Queue->Minimize job command line' to see the calls.
- Check the call video call:
Code:
ffmpeg -y -loglevel fatal -noautorotate -nostdin -threads 8 -i "J:\tmp\2024-10-10@17_02_04_9110\encodingTempSynthSkript_2024-10-10@17_02_04_9110_0.avs" -an -sn -vf scale=out_color_matrix=bt601 -sws_flags accurate_rnd+full_chroma_inp -pix_fmt yuv420p -fps_mode passthrough -f rawvideo - | x264 --preset veryfast --crf 18.00 --profile high --level 5.1 --ref 3 --direct auto --b-adapt 0 --sync-lookahead 15 --qcomp 0.50 --rc-lookahead 40 --qpmax 51 --partitions i4x4,p8x8,b8x8 --no-fast-pskip --subme 5 --aq-mode 0 --vbv-maxrate 300000 --vbv-bufsize 300000 --sar 1:1 --non-deterministic --range pc --colormatrix smpte170m --demuxer raw --input-res 720x576 --input-csp i420 --input-range pc --input-depth 8 --fps 50/1 --output-depth 8 --output "J:\tmp\2024-10-10@17_02_04_9110\2024-10-10@17_02_04_9110_02.264" -
The decoding part is the same as yours (aside from the paths) and the name of the color matrix, I assume this is the problem.
Encoding works fine here.
Can't reproduce the problem here.
I uploaded the current dev I used for testing to the 'experimental'-folder in my GoogleDrive which is linked on the download page.
=> Please try whether that dev version fixes the problem for you too.
In case it does not:
Does the Avisynth Preview work for you? If not: What cpu are you using? Also, please create another debugoutput of you opening the Avisynth Preview.
If the Avisynth Preview does work: Please create another debug output with the dev version.
Cu Selur
Ps.: Unless you write your own Avisynth scripts or custom parts in Hybrid, I would recommend sticking with Vapoursynth instead of Avisynth.
Updated the dev version again, now it should work with raw, even when not using Avisynth or Vapoursynth.
Cu Selur
Thank you Selur for your help with this, your time is greatly appreciated. I've installed the Dev version and everything works fine now, whether I use avisynth/vapoursynth or neither - great work, thanks!