View Full Version : Hybrid: Input -> x264/x265/Xvid/VP8/VP9
von Suppé
4th November 2019, 18:49
Hi Selur,
I get an error when trying to recode a video (pls from a BD) with x264 (with "--bluray compat" in the commandline). It says: "Current output framerate 29.97 is not allowed.
29.97 fps is allowed for bluray when video is interlaced. The source is a BD.
MediaInfo on the source-playlist:
Scan type: MBAFF
Scan type, store method: Interleaved fields
Scan order: Top Field First
I recall having these types of video transcoded earlier succesfully.
Am I doing something wrong? Using your latest version.
Cheers
von Suppé
Selur
10th November 2019, 09:36
Need more details, for example what framer rate and resolution does you video have?
Hybrid should check that you use one of the following resolution and frame rate combinations:
1920/1440x1080 23.976p/24p/25i/29.97i
1280x720 23.97p. 24p, 50p, 59,940p
720x576 25i
720x480 29.97i
and only complain if blu-ray comatibility is enabled and none of these combinations is used.
If you aim for interlaced output, make sure to enable either 'x264->Frames->Advanced Frame Settings->Interlaced encoding' or 'x264->Frames->Advanced Frame Settings->Force bff' otherwise x264 and Hybrid would assume that the output should be progressive.
Cu Selur
Ps.: I assume 'x264->Base->Restriction Settings->Hardware' is enabled and set to 'Bluray/AVCHD' and you didn't add '--bluray-compat' through a custom command line addition.
von Suppé
10th November 2019, 12:05
MediaInfo states:
Width: 1920 pixels
Height: 1080 pixels
Frame rate: 29.970 (30000/1001) FPS
Checking "Interlaced encoding" both with and without "Force bff"checked gave me same error "Crashed with exit status 0"
I also remuxed playlist into mkv and tried that as input, same errors.
Edit: Got it, sorry. My bad, my guess. Audio was set to "ignore". Changed to "passthrough all", now it's running.
Selur
10th November 2019, 14:44
Don't realls get what the audio has to with it all, but if you found the problem happy that worked out. :)
Cu Selur
Selur
23rd November 2019, 22:29
Hybrid rev 2019.11.23.1:
*fixed*
muxing: ffmpeg indicating vfr even when video is cfr
video: x265 HDR-10+ signaling
video: maxCLL typo related to STV-HEVC encoding (can't be used there anyways so more a cosmetic fix)
video: NVEncC multi level typo bug
Avisynth: crop not working with custom resizer
muxing: mp4 language passthrough
gui: VIDEOHANDLING problem on Linux
*changed*
profiles: Do not allow to load Global Profiles while a source is loaded.
Vapoursynth: Make sure that after QTGMC the clip is preceived as frame based.
video: NVEncC allow L0 and L1 references at the same time
video: x265 added support for 'scenecut-aware-qp' with 'scenecut-window' and 'max-qp-delta'
-> downloads: http://www.selur.de/downloads
Cu Selur
ReinerSchweinlin
27th November 2019, 09:46
I did my first test runs with hybrid and have to say the amount of capabilities in hybrid is impressive, thank you for this nice peace of software :)
I wanted to resize some stuff with waifu2x which works good. Since my testfiles are all yu12 (XVID, old Cartoons, etc..) - would it be possible to change the intermediate Colourspace to YU12 or RGB24 instead of RGB48 - would speed benefit from it? I donīt need 1080p to 8k resizes, but want to restore some rare old footage, some captured from VHS.
Any advice on a potent grafix card for waifu2x resize up to around 300 $/€? It seems NVIDIA is supportet better but some ATI Cards have mor bang for the buck (maybe use vulkan with ati)?
ReinerSchweinlin
27th November 2019, 10:18
I just noticed one thing: after resizing with waifu2x, the resulting file seems to have a different color range than the original one - the script seems to convert to TV levels, black now is dark grey and bright areas are a little dimmer (maybe PC->TV Conversion forced?) - any way I can change that in the settings? Looked around, but canīt find it.
Sharc
27th November 2019, 11:25
With avisynth enabled (or similar with vapoursynth):
Tab Filtering -> Avisynth -> Tab Color -> Tickbox ColorYUV -> Levels …..
ReinerSchweinlin
27th November 2019, 14:50
Thank you. I have nothing selcted and "ange conversion" says: "do not"... But it does... I tried setting levels manualy, didnīt help. The script says:
# Setting color range to TV (limited) range.
clip = core.std.SetFrameProp(clip=clip, prop="_ColorRange", intval=1)
maybe this is causing the color change?
ReinerSchweinlin
27th November 2019, 16:35
I did another check - if waifu2x is disabled, colours are passed through unchanged. With waifu2x enabled, range is altered automaticaly.
ReinerSchweinlin
29th November 2019, 21:54
I just stumpled across this:
https://forum.doom9.org/showthread.php?t=176961
Could this be implemented in Hybrid? I know, Iīd be needing a bigger GPU, but I have some personal rare footage Iīd like to throw at it..
Selur
1st December 2019, 09:50
Hybrid rev 2019.12.01.1:
*fixed*
video: x265 make sure 'fixed quantizer' zones use integer
*changed*
muxing: Hybrid doesn't send 'und' to MP4Box but empty language strings
*added*
muxing: option to overwrite not only container but additionally stream aspect ratio
-> downloads: http://www.selur.de/downloads
----
Last I checked the main problem with lots of these neural network solutions is finding the tools and the dependencies that need to be available to incorporate them into Hybrid.
Often the dependencies are huge (in file size) and some times they are by their license not allowed to be distributed in parts or in a whole through others.
-> so if you can list a tool with its dependencies and those dependencies can be shipped with Hybrid and are not humongous I could add that tool/filter to Hybrid, atm. there are no plans for this.
"With waifu2x enabled, range is altered automaticaly. "
Hybrid only sets the range detected by the analysis.
Cu Selur
Havokdan
1st December 2019, 13:00
I some time without converting files, but experiencing this version, I realized that does not carry the QSVEnc profiles, I create one and try to match a aac audio, but always carries the codec x264.
Selur
2nd December 2019, 07:47
I don't really understand what you are speaking of. :)
In case QSVEnc isn't snown in case:
a. no Intel CPU is detected
b. 'QSVEncC --check-features' reports 'QSV unavailable.' or nor H.264 and H.265 features.
Usually this is due to conflict of QSVEncC with the CPU drivers.
-> What does 'QSVEncC --check-features' report on your system ?
Cu Selur
Havokdan
2nd December 2019, 10:05
I don't really understand what you are speaking of. :)
In case QSVEnc isn't snown in case:
a. no Intel CPU is detected
b. 'QSVEncC --check-features' reports 'QSV unavailable.' or nor H.264 and H.265 features.
Usually this is due to conflict of QSVEncC with the CPU drivers.
-> What does 'QSVEncC --check-features' report on your system ?
Cu Selur
I'm sorry, I'm using an online translator, I wanted to say this, I create a profile for QSVEnc, so I try to create an "AV-Combo" profile with him, however, when trying to load the profile, video codec that is loaded it is x264.
ReinerSchweinlin
2nd December 2019, 15:06
Thanx for the updates!!
----
Last I checked the main problem with lots of these neural network solutions is finding the tools and the dependencies that need to be available to incorporate them into Hybrid.
Often the dependencies are huge (in file size) and some times they are by their license not allowed to be distributed in parts or in a whole through others.
-> so if you can list a tool with its dependencies and those dependencies can be shipped with Hybrid and are not humongous I could add that tool/filter to Hybrid, atm. there are no plans for this.
Unfortunately, my programming skills are too basic to really get a grasp of everything needed to implement this filter, but as far as I understand it, this
https://github.com/imPRAGMA/VSGAN
simply seems to be a vapourynth port of ESRGAN.
Reading through the install-files, it looks straight forward to me - all tthatīs needed to add is the model which calculations are done with.
Some are found here:
https://upscale.wiki/wiki/Model_Database
which seem to work, according to some forum members...
I wouldnīt mind downloading these manualy :)
"With waifu2x enabled, range is altered automaticaly. "
Hybrid only sets the range detected by the analysis.
thanx, I will investigate my source file further to see if there is weird colour setting in it that causes the range change...
Does Hybrid do a different analsys if wafu2x is enabled? If I leave eveyrthing unchanged and simply turn waifu2x on or off, I get different colour ranges, so my assumption is, that it has something to do with waifu2x, not hybrids interpretation of the source file analysis.
Selur
6th December 2019, 20:05
I wanted to say this, I create a profile for QSVEnc, so I try to create an "AV-Combo" profile with him, however, when trying to load the profile, video codec that is loaded it is x264.
Ah okay, will try to reproduce this tomorrow. :)
(Haven't used QSVEnc for ages since my encoding machine uses an AMD CPU and my other machines only have older Intel CPUs where GPU encoding wasn't that appealing,..)
-> will fix, happens not only with QSVEnc, so it's easier to reproduce and fix. :)
Does Hybrid do a different analsys if wafu2x is enabled? If I leave eveyrthing unchanged and simply turn waifu2x on or off, I get different colour ranges, so my assumption is, that it has something to do with waifu2x, not hybrids interpretation of the source file analysis.
No the analysis is right but unless a rgb <> yuv conversion is needed the color range is only used for flagging in the output.
In case a rgb <> yuv conversion is used the assumed color matrix will be used during that conversion.
Here's an example:
# Imports
import vapoursynth as vs
core = vs.get_core()
import ctypes
# Loading Support Files
Dllref = ctypes.windll.LoadLibrary("I:/Hybrid/64bit/vsfilters/ResizeFilter/Waifu2x/w2xc.dll")
# Loading Plugins
core.std.LoadPlugin(path="I:/Hybrid/64bit/vsfilters/ResizeFilter/Waifu2x/Waifu2x-w2xc.dll")
core.std.LoadPlugin(path="I:/Hybrid/64bit/vsfilters/Support/fmtconv.dll")
core.std.LoadPlugin(path="I:/Hybrid/64bit/vsfilters/SourceFilter/FFMS2/ffms2k.dll")
# Loading source using FFMS2K
clip = core.ffms2.Source(source="F:/TESTCL~1/files/test.avi",cachefile="E:/Temp/avi_078c37f69bb356e7b5fa040c71584c40_853323747.ffindex",format=vs.YUV420P8,alpha=False)
# making sure input color matrix is set as 470bg
clip = core.resize.Point(clip, matrix_in_s="470bg",range_s="limited")
# making sure frame rate is set to 25
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)
# resizing clip to 1280x704
# adjusting color space from YUV420P8 to RGB48 for Waifu2x-w2xc
clip = core.resize.Bicubic(clip=clip, format=vs.RGB48, matrix_in_s="470bg", range_s="limited")
# current color sampling: RGB48
# adjusting bit depth to 32bit
clip = core.fmtc.bitdepth(clip=clip,bits=32)
# resizing using Waifu2x
clip = core.w2xc.Waifu2x(clip=clip, scale=2)
# current color sampling: RGB48
# adjusting output color from: RGB48 to YUV420P8 for x264Model (i420)
clip = core.resize.Bicubic(clip=clip, format=vs.YUV420P8, matrix_s="470bg", range_s="limited")
# Output
clip.set_output()
Since you didn't share any details I have no way to reproduce your problem and can't really help.
Cu Selur
ReinerSchweinlin
7th December 2019, 00:29
Hi Selur,
thank you for your answers.
I tried some stuff and found it: After setting range conversion to "limited->full" in Filtering-vs-colour, the colors stay the same.
The script looks like this now:
# Imports
import vapoursynth as vs
core = vs.get_core()
import ctypes
# Loading Support Files
Dllref = ctypes.windll.LoadLibrary("C:/Program Files/Hybrid/64bit/vsfilters/ResizeFilter/Waifu2x/w2xc.dll")
# Loading Plugins
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/ResizeFilter/Waifu2x/Waifu2x-w2xc.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")
# Loading G:\video\test.mkv using LWLibavSource
clip = core.lsmas.LWLibavSource(source="G:/video/test.mkv", format="YUV420P8", cache=0, prefer_hw=3)
# making sure input color matrix is set as 470bg
clip = core.resize.Point(clip, matrix_in_s="470bg",range_s="limited")
# making sure frame rate is set to 24
clip = core.std.AssumeFPS(clip, fpsnum=24, fpsden=1)
# Setting color range to TV (limited) range.
clip = core.std.SetFrameProp(clip=clip, prop="_ColorRange", intval=1)
clip = core.resize.Point(clip, range_in_s="limited", range_s="full")
# Setting color range to PC (full) range.
clip = core.std.SetFrameProp(clip=clip, prop="_ColorRange", intval=0)
# resizing clip to 1280x960
# adjusting color space from YUV420P8 to RGB48 for Waifu2x-w2xc
clip = core.resize.Bicubic(clip=clip, format=vs.RGB48, matrix_in_s="470bg", range_s="full")
# current color sampling: RGB48
# adjusting bit depth to 32bit
clip = core.fmtc.bitdepth(clip=clip,bits=32)
# resizing using Waifu2x
clip = core.w2xc.Waifu2x(clip=clip, scale=2, noise=0, block=1024)
# current color sampling: RGB48
# adjusting resizing
clip = core.fmtc.resample(clip=clip, w=1280, h=960, kernel="lanczos", interlaced=False, interlacedd=False)
# adjusting output color from: RGB48 to YUV420P8 for FFvHuffModel (i420)
clip = core.resize.Bicubic(clip=clip, format=vs.YUV420P8, matrix_s="470bg", range_s="full")
# Output
clip.set_output()
While testing some of the other Waifu2x Tools, I noticed quite a bit of speed increase when using RGB24Bit intermediate colour space without noticable quality change with old anime encoded in XVID (which are Yu12). Do you think this could speed up conversion in Hybrid, too? After turning off the noise reduction in Waifu2x and encoding to Huffyuf, upscaling a 640x480 file 2fold in size, I get 1fps on an gtx960... (i5 Kabylake).
when using wafu2x in Foto mode while keeping the resize factor to 1, itīs sometimes possible to clear up files with real life footage from noise, blocking, artefacts... In Hybrid, only upscaling is possible, as soon as the resizer is set to the input size, it leaves out waifu2x in the qeue. Could you implement "keep the resolution but still run it through waifu2x" please?
Ah, on the download page I still get the previous version, although its named different.
Another thing I noticed: While trying to distribute work onto cpu/gpus, I wanted to switch to qsv decoding. But no matter what I select in the config-input-decoding section, itīs always the nvidia card decoding.
Thanx for your help!
Selur
7th December 2019, 06:55
Ah, on the download page I still get the previous version, although its named different.
nope. just forgot to update the revision info properly. :)
While trying to distribute work onto cpu/gpus, I wanted to switch to qsv decoding. But no matter what I select in the config-input-decoding section, itīs always the nvidia card decoding.
I don't think Hybrid atm. does support using qsv for decoding with Vapoursynth.
It might be possible if I change the HW decoding support Hybrid uses with LibavSMASHSource, atm. Hybrid uses either "prefer_hw=0", or "prefer_hw=3", but I could extend this to :
- 0 : Use default software decoder.
- 1 : Use NVIDIA CUVID acceleration for supported codec, otherwise use default software decoder.
- 2 : Use Intel Quick Sync Video acceleration for supported codec, otherwise use default software decoder.
- 3 : Try hardware decoder in the order of CUVID->QSV. If none is available then use default software decoder.
-> will look into it.
Selur
7th December 2019, 07:45
Looked into https://github.com/imPRAGMA/VSGAN from what I gather Hybrid would need to install:
* PyTorch
* Numpy
* mvsfunc
* CUDA (NVIDIA GPU Support, optional but without this everything will be extremely slow)
* vsgan
-> unless there is a portable package I could ship with Hybrid or provide as a separate download I won't write support for this.
Will send you a PM in regard to LibavSMASHSource 'prefer_hw' and allowing waifu2x while no real resizing is done,...
While testing some of the other Waifu2x Tools, I noticed quite a bit of speed increase when using RGB24Bit intermediate colour space without noticable quality change with old anime encoded in XVID (which are Yu12). Do you think this could speed up conversion in Hybrid, too?
Yes, using RGB24 instead of RGB48 which Vapoursynth uses by default might speed-up stuff a bit. How much are we talking about here. (Not really sure it's worth the effort to support this.)
Cu Selur
ReinerSchweinlin
7th December 2019, 12:04
Looked into https://github.com/imPRAGMA/VSGAN ... unless there is a portable package I could ship with Hybrid or provide as a separate download I won't write support for this.
ok, thanx for looking into it. Maybe the vapoursynthport will advance over time and I hope there will be a portable, simple solution available in the future. Postponed for the moment..
Will send you a PM in regard to LibavSMASHSource 'prefer_hw' and allowing waifu2x while no real resizing is done,...
Cool, thank you! Will try
Yes, using RGB24 instead of RGB48 which Vapoursynth uses by default might speed-up stuff a bit. How much are we talking about here. (Not really sure it's worth the effort to support this.)
My comparison is based video2x, which converts a videofile into intermediate PNG Files, throws all of them into waifu2x and then joines the image sequence back together into a videofile. Of course, the overhead here is much bigger than with hybrid which pipes all the steps into skript, so the speed difference might vary.
in Video2x, The speed difference on my system is between 50% and 80% speedup when using RGB24 instead of RGB48 (temp on SATA SSD)..
I could try to test this myself - my amateur skills give me the idea to tap into the skript of hybrid, play around with the settings and run it manualy to measure the speed difference. Iīd have to do some digging, did some avisynth back in the days... Maybe I get it done - do you think this could be an approach to test it (so I can contribute a little work to the topic) ?
Selur
7th December 2019, 18:29
Maybe I get it done - do you think this could be an approach to test it (so I can contribute a little work to the topic) ?
You can see the script (Filtering->Vapoursynth->Vapoursynth Script View), copy the script into a new file and call vspip:
VSPipe.exe -p <PATH TO SCRIPT> NUL
and ist should output something like:
Frame: 115/5000 (2.62 fps)
(on a small test using RGB24 instead of RGB48 didn't give any speed gain; but that was only one test)
Cu Selur
ReinerSchweinlin
8th December 2019, 00:19
Thanx!
Report:
using RGB24 instead of RGB48 has almost no effect with my examples - maybe upscaling HD->4K would benefit more, but my GFX Card is too small and slow - with SD Sources I see no speed difference
Using Waifu2x with scale 1 ("enhance, no upscale") uses
# resizing using Waifu2x
clip = core.w2xc.Waifu2x(clip=clip, scale=2, block=1024)
In the VS Script. So itīs still upscaled and then resized to the original resolution. So it takes the same time as upscaling 2x.
Would it be possible to set
# resizing using Waifu2x
clip = core.w2xc.Waifu2x(clip=clip, scale=1, block=1024)
?
Thanx to your hint above on how to call vspipe manualy, I did a speedtest:
# resizing using Waifu2x
0,95fps <- clip = core.w2xc.Waifu2x(clip=clip, scale=2)
4,33fps <- clip = core.w2xc.Waifu2x(clip=clip, scale=1, block=1024)
Regarding HW-Decode with QSV: So far no luck, have to investigate more, seems decoding is still done in SW or Nvidia Card.
Selur
8th December 2019, 06:03
Looking into it.
---
HW decoding requires LWLibAVSource (or DGDecNV) to be used and for QSV prefer_hw should be set to 2, script wise Hybrid seems to properly allow to set the value, so if QSV isn't used working it might be a driver problem or a bug in LWLibAVSource.
ReinerSchweinlin
18th December 2019, 10:49
Hey. Waifu works fine now, many thanks for looking into this! The colour issue is gone and scale=1 works, too :)
Assigning all the GPU Power still is a little bumpy - when doing NVENC (RTX 2060) Encodes, I assign NLMEANS CL to the same card (CUDA) and decoding to QSV - which won`t work. In Handbrake, it works right away and with others, too, so drivers etc.. seem to be ok..
I have to do some more testing on this to give a clearer report - for the meantime, this is no problem, since the speed difference is small.
Christmas probably kicking in @all, so time will be spent elsewhere :)
Selur
11th January 2020, 09:50
Hybrid rev 2020.01.11.1:
*fixed*
analyse: HDR parameter import rounding
Synth: ignore timecodes for output if FrameInterpolation or Restore is
cosmectice: AudioTab, AudioInfo on track change
Synth: ImageSource handling
video: qsv encoding mode
tools: manual set tools could cause crashes
Vapoursynt: Waifu2x limited range compression by using RGBS
video: vsPipe Problem gefixed
video: NVEnc only singal VUI in case VUI Signaling is enabled
audio: handling of multiple trueHD streams with ffmpeg
jobs: mkvmerge muxing timecodes parallel processing
video: x265 support histogram scence change detection
*changed*
audio: dts-es muxing
Synth: allow to set LibWAV HW decoding preference
Vapoursynth: allow Waifu2X even when resize resolution is the same as the crop resolution.
*added*
Vapoursynth: added support for EdgeFixer
Synth: 'SelectRangeEvery' for Avisynth and Vapoursynth (video only!)
-> downloads: http://www.selur.de/downloads
Cu Selur
Havokdan
11th January 2020, 10:52
I already made the request to the StaxRip, do the same for the Hybrid now automatically import the Hybrid is possible tags/fields nfo files (https://kodi.wiki/view/NFO_files) when the support such target format information?
Selur
11th January 2020, 15:02
Not totally sure I get that. :)
Do you want Hybrid to:
a. create kodi-NFO-files from the tags of a file, or
b. import tag information from an NFO file, or
c. do something different I totally missed?
Cu Selur
Havokdan
11th January 2020, 15:38
B
I want to import the nfo file information to the video file in a format that supports such information, the information in the nfo file that usually use is the standard kodi.
Selur
11th January 2020, 16:12
Hmm, looking at what tags Hybrid supports (for the main containers):
Container tags:
Name
Genre
Comments
Copyright
Cover
Stream tags:
Title
Language
and the tags Kodi allows (https://kodi.wiki/view/NFO_files/Movies#nfo_Tags)
I don't see anything for Copyright in the movie info and the Cover info would probably best match to the 'thumb' info, but to be useful Hybrid would need to download stuff (not likely to happen).
I see the following mapping:
Container->Name <=> movie->title
Container->Genre <=> movie->genre
Container->Comments <=> movie->plot
and
for audio streams:
Stream->Title <=> movie->fileinfo->streamdetails->audio->language
There is no language for video streams.
Since normally at least the audio language tags are usually properly flagged in the files itself, the only real gain from this would be to import the container tags.
(Importing the audio language could also be done, but probably not worth the trouble.)
-> don't really think that it importing the container tags is worth the effort, but if you find a few other users which think this is a nice feature I can probably write some code for it.
Cu Selur
Ps.: for mkv output adding a 'import for nfo' under 'Config->Output->MKV Tags' might be more useful, since there would be a bigger overlap of the kodi-NFO data and the mkv tags.
Havokdan
11th January 2020, 19:39
Hmm, looking at what tags Hybrid supports (for the main containers):
Container tags:
Name
Genre
Comments
Copyright
Cover
Stream tags:
Title
Language
and the tags Kodi allows (https://kodi.wiki/view/NFO_files/Movies#nfo_Tags)
I don't see anything for Copyright in the movie info and the Cover info would probably best match to the 'thumb' info, but to be useful Hybrid would need to download stuff (not likely to happen).
I see the following mapping:
Container->Name <=> movie->title
Container->Genre <=> movie->genre
Container->Comments <=> movie->plot
and
for audio streams:
Stream->Title <=> movie->fileinfo->streamdetails->audio->language
There is no language for video streams.
Since normally at least the audio language tags are usually properly flagged in the files itself, the only real gain from this would be to import the container tags.
(Importing the audio language could also be done, but probably not worth the trouble.)
-> don't really think that it importing the container tags is worth the effort, but if you find a few other users which think this is a nice feature I can probably write some code for it.
Cu Selur
Ps.: for mkv output adding a 'import for nfo' under 'Config->Output->MKV Tags' might be more useful, since there would be a bigger overlap of the kodi-NFO data and the mkv tags.
Ok, thanks :)
Selur
12th January 2020, 10:41
Hybrid rev 2020.01.12.1:
*fixed*
decode: crash when ffmpeg was not compiled with 'zscale'
-> downloads: http://www.selur.de/downloads
Cu Selur
Gravitator
7th February 2020, 08:03
Хай!
Hybrid v2020.01.12.1
I use a two-second sample ProRes for encoding.
The culprit of the memory consumption of Deinterlacer: QTGMC (ffmpeg not eating).
Selur
7th February 2020, 15:58
No surprise, QTGMC will use quite a bit of memory and cpu power depending on the resolution and settings,...
Not sure why you mention ffmpeg, you are using VSPipe and x265, ffmpeg isn't used.
Cu Selur
Gravitator
8th February 2020, 01:53
No surprise, QTGMC will use quite a bit of memory and cpu power depending on the resolution and settings,...Deinterlacer: QTGMC - eats 4GB at any encoding settings (Overcoming the memory limit leads to the reset of information on the virtual memory HDD - fatal system throttling / only reboot).
Not sure why you mention ffmpeg, you are using VSPipe and x265, ffmpeg isn't used.Deinterlacer: FFMpeg - eats 80MB.
This only happens when using ProRes (Drop sample?).
Gravitator
8th February 2020, 02:06
Checking the new release leads to the collapse of Hybrid.
Gravitator
8th February 2020, 03:39
AOM
10bit mod & Profile: Main, High, Professional - оn any settings, disabling the "64-pt transform" leads to an instant encoding finish (Empty *.mkv or nothing at the output);
8bit mod & Profile: Main - ok, High - no, Professional - no.
Gravitator
9th February 2020, 02:38
RAV1E
Add new features: --threads, --first/second-pass (Instead of --pass 1/2), --rdo-lookahead-frames.
Selur
9th February 2020, 07:14
Deinterlacer: QTGMC - eats 4GB at any encoding settings
You can:
a. limit the thread count
b. limit the cache size
in Hybrid which will allow you to reduce the memory footprint.
Deinterlacer: FFMpeg - eats 80MB.
So ? Using a simple Yadif (or most others simpler deinterlacing methods) instead of QTGMC will use less memory.
Checking the new release leads to the collapse of Hybrid.
fixed locally.
AOM
10bit mod & Profile: Main, High, Professional - оn any settings, disabling the "64-pt transform" leads to an instant encoding finish (Empty *.mkv or nothing at the output);
8bit mod & Profile: Main - ok, High - no, Professional - no.
may be the command line options changed
RAV1E
Add new features: --threads, --first/second-pass (Instead of --pass 1/2), --rdo-lookahead-frames.
will think about it
Gravitator
9th February 2020, 08:06
It’s not normal that for 2 second (60 frames) 1080p Prores video, it consumes 4GB or more (There is no control of memory consumption).
-----
This only happens with ProRes in the *.mkv container! Then comes the call to VSPipe (*.mov moderate memory consumption and without VSPipe).
Selur
9th February 2020, 08:45
It’s not normal that for 2 second (60 frames) 1080p Prores video, it consumes 4GB or more (There is no control of memory consumption).
You are right QTGMC should not be used at all for 1080p content unless you explicitly tell Hybrid to do so.
Using:
# Imports
import os
import sys
import ctypes
# Loading Support Files
Dllref = ctypes.windll.LoadLibrary("I:/Hybrid/64bit/vsfilters/Support/libfftw3f-3.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 F:\TestClips&Co\files\interlaceAndTelecineSamples\interlaced\avc - interlaced.m2ts using LWLibavSource
clip = core.lsmas.LWLibavSource(source="F:/TESTCL~1/files/INTERL~1/INTERL~1/AVC-IN~1.M2T", format="YUV420P8", cache=0, prefer_hw=0)
# making sure input color matrix is set as 709
clip = core.resize.Point(clip, matrix_in_s="709",range_s="limited")
# making sure frame rate is set to 29.970
clip = core.std.AssumeFPS(clip, fpsnum=30000, fpsden=1001)
# 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)
# make sure content is preceived as frame based
clip = core.std.SetFieldBased(clip, 0)
clip = clip[::2]
# Output
clip.set_output()
Vapoursynth uses ~4.2GB, using preset 'placebo' it uses an additional ~300MB here.
Settin "Filtering->Vapoursynth->Misc->Limit Cache MB" to '1024', less than 1500MB get used.
Checking the new release leads to the collapse of Hybrid.
the option is removed now; too much trouble fixing it properly
Cu Selur
Selur
9th February 2020, 10:06
AOM
10bit mod & Profile: Main, High, Professional - оn any settings, disabling the "64-pt transform" leads to an instant encoding finish (Empty *.mkv or nothing at the output);
8bit mod & Profile: Main - ok, High - no, Professional - no.
calling it in a command line I got a few messages:
TX64 can only be disabled on I420 images.
8bit + profile 1: Profile 1 requires 4:4:4 color format
8bit + profile 2: Profile 2 bit-depth < 10 requires 4:2:2 color format
The main surprise here is the color space restriction since this is more restrictive than https://en.wikipedia.org/wiki/AV1#Profiles which doesn't allow High profile with 4:2:0,...
-> created an issue entry over at: https://github.com/mozilla/aom/issues/10
Selur
16th February 2020, 11:54
Hybrid rev 2020.02.16.1:
*fixed*
Video: QSVEnc encoding mode mapping.
Vapoursynth: custom script mismapping
Vapoursynth: SelectRangeEvery and Tweak
Vapoursynth: Fixed HDR to SDR DG call
Vapoursynth: HDRToSDR
Vapoursynth: LWLivavSource use track instead of streamindex
Avisynth: removed 8bit enforcement for Tweak and Levels
Video: aomenc - tx64 handling
Profile: error message regarding 'input' when loading a GlobalDataModel
Muxing: mp4 video&audio tagging
Video: NVEnc, arib-std-b67 vs. arib-srd-b67
Muxing: h264 avi muxing
Analysis: mediainfo video bitrate indication
Avisynth: handling high bitdepth content
Decoder: FFmpeg decoder call
*changed*
Avisynth: force LibavSource for AV1 content
Avisynth: make sure BalanceBorders isn't used when Top/Bottom/Left/Right isn't mod 2
*added*
Vapoursynth: option to save/load custom script content
Video: rav1e added "--threads X", "--switch-frame-interval X", "--reservoir-frame-delay X" and "--rdo-lookahead-frames X"
Video: NVEncC added support for '--psnr', '--ssim'
*removed*
check for update
Synth: removed FFms2k (it's changes were incorporated in ffms2)
-> downloads: http://www.selur.de/downloads
Cu Selur
Gravitator
16th February 2020, 14:41
Hybrid v2020.02.16.1
RAV1E
Unable to make the first pass, as in the TEMP folder is not created file *.ivf
Selur
16th February 2020, 15:19
I see the problem, will fix it when I find the time.
-> fixed locally, will be fine during next release
Gravitator
17th February 2020, 12:31
1st and 2nd pass works, but there is a problem with complex coding 2pass (The output is an empty container).
Selur
17th February 2020, 19:01
no clue what's causing this,... also I can't access the files attached there unless a moderator approves them.
-> got it
Selur
17th February 2020, 20:01
Hybrid rev 2020.02.17.1:
*fixed*
video: rav1e 2pass calls
*changed*
video: x265, adjusted to 3.3 branch
-> downloads: http://www.selur.de/downloads
Cu Selur
Selur
19th February 2020, 20:34
Hybrid rev 2020.02.19.1:
*fixed*
Video: x265, messed up during 3.3. branch adjustment
*changed*
Internals: removed some abandoned code which causes unneeded slow downs after files with lot of meta data were analysed
-> downloads: http://www.selur.de/downloads
Cu Selur
Gravitator
21st February 2020, 14:28
Hybrid v2020.02.19.1
AOM
Noise reduction and AQ are not available for: abr, cq, cqr encoding mode?
2-pass > abr, cq, cqr, lossless > 2-pass - noise reduction is blocked.
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.