Selur's Little Message Board

Full Version: Many suggestions of improvement
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2 3 4 5
Hi Selur. 

I use Hybrid for a while now, so I noted some suggestions (Some bugs, UI change, & feature requests).
I sorted them by estimated priority to make things easier.

  Arrow Priority 1

- "Ignore crashed jobs and process next" in Jobs > Misc should be default option. I just discovered this option after struggling to understand why some encoding would start, while it was just because of a crashed past encoding in the queue.
I can't imagine how bothering it would be for someone encoding a ton of videos, and coming back home seeing nothing has encoded because of one video that crashed.

- When scrolling with the mouse wheel, if we accidentaly hover the pointer on any field, it changes the value. Very risky. It'd better if we had to click on the field then change the value with mouse wheel or manually (I encoded a video in MCTemporal Denoise "very high" preset instead of "medium" because of this).

- Some filters UI have a small issue : options that are controled by a setting are no longer modified when we check the box to manually edit those values : for example in MCTemporal Denoise, preset (Very low to very high) will change denoise values (Radius, Sigma...), but if we check the "custom denoise" box, then changing preset will not change all these values, which will get stuck on the last selected preset values.
A normal expected behavior would be that values change regardless if a box is checked or not.

[BUG] When dragging the window at the top of the screen, which is supposed make software fullscreen since Win7, Hybrid is stuck at the top left corner of the screen, without Windows UI around it anymore. I'm forced to close it and restart it. Btw it would be cool if Hybrid could be in fullscreen but keep the windows bar.

- Presets are deleted as soon as we click "Delete", it's too risky. There should be a confirmation dialog first.

- When encoding to x264 lossless, Hybrid encode to YUV 444 10 bits by default. When encoding to x265 it encodes to YUV 4.2.0 10 bits. the problem is that it's not really lossless if the source color space is different, due to chroma subsampling (especially when we encode without any filter that will resample colors in the process). Hybrid should use the input color space + bit depth for the output (especially when boxes are set to "auto", which could make one believe that it'll retrieve the same infos as the source).

Arrow Priority 2

- Add an option to look in Avisynth and AviSynth+ folder in Program Files (x86) to load missing DLL in Hybrid for custom scripts, instead of having to write many lines to load them separately, which is a pain to do.
That's one of the only reason I still use VirtualDub2 for filters not included in Hybrid GUI.

- Aborted jobs temp files aren't not deleted. Add an advanced option to deleted them

- Add a  "custom command line addition" field in x264 like there is in x265, and make an "Add" button, because iwe can easily think that custom parameters are applied without having to press ENTER.

- Make output field editable (when "Generate" box is unchecked)

- Change the extension of the output file as soon as we change the video container on the GUI

- Change the Vapoursynth / Avisynth tab color or add some kind of red dot on it when one or more settings have been modified (when I encode without any filters, I always click the "Reset" button to make sure no filters will be applied). Note : this could be a feature extended to other tabs, but I guess we mostly don't want undesirable filters to be applied.

- Add an info popup when we import interlaced/telecined video telling us that the video will be deinterlaced/telecined with default settings and that it can be changed on Filter > (De)-interlace/Telecine. It's something good to know because sometimes we don't pay attention to this when doing some quick tests or things like that 

Arrow  Priority 3

- Add an option where we manually set a limit of disk space, below which Hybrid will warn us with a popup when we start an encoding (to avoid having an encoding crash because of a lack of disk space we didn't noticed). There could be multiple variant like : "Output path disk space alert", "Temp path disk space alert"...

- Add the green progress bar on taskbar icon. It's a very easy way of tracking the encoding status instead of opening hybrid everytime.


- Allow to resize Hybrid manually (the UI is lacking height, we have to scroll often, and fullscreen option isn't convenient)

- Make "Text" view by default, because icons are very confuse, it's slower to think about what the pictogram means than reading the text, which is way more intuitive.

- Add path fields for "report" and "debug" files in Config > Path (to avoid having tons of .txt files on our output folder. We may want to keep these files just in case, but not fill up the output folder)

- Inside "HELP" side bar, at top, add a note saying it's possible to right click on option alternatively (I discovered this by chance, and I find it way more convenient than the side panel)

- In the "Defaults" menu at the very top of Hybrid (next to Hybrid -  Tools - View), it would be useful to have a "Save current tab" options to save only the settings of the displayed tab. I didn't find a way to do it without having to save all options.




Idea  UI layout changes. Hybrid is the best video encoding software regarding its features, but it could be a bit more user friendly

                         FILTER MENU

Add clear separation for filters. The current layout is quite confuse. Having no line of separation and all options from all filters stuck together is not intuitive and also, some option are so off-centered from the filter name that I think they belong to another filter (for example MC Temporal Denoise preset which seems to belong to KNLMeansCL).

Here is a before/after example of what it could look like (I guess it will rather be squared with thin lines like other menus but whatever) :

[Image: Lines.gif]


                        MAIN TAB

I did an editing of a what could be more appealing, convenient, user friendly layout for Main tab.


[Image: Hybrid.jpg]

Changes :

- Default container + Output bar moved at the bottom (like most of the software where input is at top, and output at the bottom)
- "Generate" renamed by "Auto"
- Subtitle and tags box removed, and just displayed as tabs 

- A new big bottom bar with clear icons and text :
   - New "Start Queue" button. We might want to start the queue, even if we loaded an external queue file, while not wanting to add the currently imported video to this queue.
   - "Add to Queue" moved here
   - "AddStart Queue" renamed by "Add & Start Queue"
   - Donate & Preview
   - Show encoding script (it'll be basically the same thing as "Show vapoursynth script" or "Save show avisynth script" but in the main tab, which is more convenient
 

- Merge icon and text view, but reduce the amount of icons to some functions :
   - Input/output folder
   - DVD/Blu-ray/Image input
   - Bottom bar main buttons


It's what I thought to be an handy, accessible UI for anyone.


That's all I had for the suggestions for now, but if I have new ones, I'll post them on this topic (not bugs, just UI changes or feature request). Thank you.
Will look at it over the weekend.
Don't be discouraged, but from a quick glance, but nearly all of your suggestions won't happen.
I will write more later. (busy day today)
Short: Sorry, not changing anything atm.

Long:
Quote:- "Ignore crashed jobs and process next" in Jobs > Misc should be default option. I just discovered this option after struggling to understand why some encoding would start, while it was just because of a crashed past encoding in the queue.
I can't imagine how bothering it would be for someone encoding a ton of videos, and coming back home seeing nothing has encoded because of one video that crashed.
won't change

Quote:- When scrolling with the mouse wheel, if we accidentaly hover the pointer on any field, it changes the value. Very risky. It'd better if we had to click on the field then change the value with mouse wheel or manually (I encoded a video in MCTemporal Denoise "very high" preset instead of "medium" because of this).
Problem is how?
I first thought this could be easily changed by changing the 'FocusPolicy' of the QWidgets (https://doc.qt.io/qt-6/qt.html#FocusPolicy-enum), but does not do the job.
Reading https://stackoverflow.com/questions/5821...focus-when I would have to create subclass for QSpinBox, QDoubleSpinBox,... and adjust each SpinBox&Co that is currently used to use the new subclass for it's type.
=> seem to be too much trouble atm., maybe if I ever rewrite the whole ui part of Hybrid.


Quote:- Some filters UI have a small issue : options that are controled by a setting are no longer modified when we check the box to manually edit those values : for example in MCTemporal Denoise, preset (Very low to very high) will change denoise values (Radius, Sigma...), but if we check the "custom denoise" box, then changing preset will not change all these values, which will get stuck on the last selected preset values.
A normal expected behavior would be that values change regardless if a box is checked or not.
Won't change, since I don't aggree. When you tick the "custom denoise"-box you say that you want control over these settings.

Quote:[BUG] When dragging the window at the top of the screen, which is supposed make software fullscreen since Win7, Hybrid is stuck at the top left corner of the screen, without Windows UI around it anymore. I'm forced to close it and restart it. Btw it would be cool if Hybrid could be in fullscreen but keep the windows bar.
I might look into this, but not any time soon.

Quote:- Presets are deleted as soon as we click "Delete", it's too risky. There should be a confirmation dialog first.
If you want more warnings: Config->Internals->Warnings

Quote:- When encoding to x264 lossless, Hybrid encode to YUV 444 10 bits by default. When encoding to x265 it encodes to YUV 4.2.0 10 bits. the problem is that it's not really lossless if the source color space is different, due to chroma subsampling (especially when we encode without any filter that will resample colors in the process). Hybrid should use the input color space + bit depth for the output (especially when boxes are set to "auto", which could make one believe that it'll retrieve the same infos as the source).
x264 only support YUV 4:4:4 lossless, which is why the controls are fixed for x264.
x265 will set output color space only based on profile.
As soon as you do any filtering, lossless compared to the input is out of the window.

Quote:Add an option to look in Avisynth and AviSynth+ folder in Program Files (x86) to load missing DLL in Hybrid for custom scripts, instead of having to write many lines to load them separately, which is a pain to do.
That's one of the only reason I still use VirtualDub2 for filters not included in Hybrid GUI.
Not going to happen. I don't start copying stuff from other tools.

Quote:- Aborted jobs temp files aren't not deleted. Add an advanced option to deleted them
was a bug of a dev version, fixed it a few days ago.

Quote:- Add a "custom command line addition" field in x264 like there is in x265, and make an "Add" button, because iwe can easily think that custom parameters are applied without having to press ENTER.
"x264->Misc->Imports/Additions->Command line" is the same as custom addition field in x265.
Not adding an 'Add' button.

Quote:Make output field editable (when "Generate" box is unchecked)
Not happening.

Quote:- Change the extension of the output file as soon as we change the video container on the GUI
Default container, only enforces the container when 'Generate' is enabled, otherwise it only 'hints' the default container for the file dialog.
Not changing that.

Quote:- Change the Vapoursynth / Avisynth tab color or add some kind of red dot on it when one or more settings have been modified (when I encode without any filters, I always click the "Reset" button to make sure no filters will be applied). Note : this could be a feature extended to other tabs, but I guess we mostly don't want undesirable filters to be applied.
Not happening.

Quote:- Add an info popup when we import interlaced/telecined video telling us that the video will be deinterlaced/telecined with default settings and that it can be changed on Filter > (De)-interlace/Telecine. It's something good to know because sometimes we don't pay attention to this when doing some quick tests or things like that
Not happening. If the user is not able to grasp how Hybrid works, that is his problem.
I'm willing to extend tool-tips, but I won't add such pop-ups.

Quote:Add an option where we manually set a limit of disk space, below which Hybrid will warn us with a popup when we start an encoding (to avoid having an encoding crash because of a lack of disk space we didn't noticed). There could be multiple variant like : "Output path disk space alert", "Temp path disk space alert"...
Hybrid does not know how large the output of the encoding&co will be, so there is no general way to check that.
You can have some general safety using "Config->Internals->Jobs->Minimum size in MB which is required to start job".

Quote: - Allow to resize Hybrid manually (the UI is lacking height, we have to scroll often, and fullscreen option isn't convenient)
Not happening.

Quote: - Make "Text" view by default, because icons are very confuse, it's slower to think about what the pictogram means than reading the text, which is way more intuitive.
Not happening.

Quote: - Add path fields for "report" and "debug" files in Config > Path (to avoid having tons of .txt files on our output folder. We may want to keep these files just in case, but not fill up the output folder)
Will think about it.

Quote: - Inside "HELP" side bar, at top, add a note saying it's possible to right click on option alternatively (I discovered this by chance, and I find it way more convenient than the side panel)
Not happening.

Quote: In the "Defaults" menu at the very top of Hybrid (next to Hybrid - Tools - View), it would be useful to have a "Save current tab" options to save only the settings of the displayed tab. I didn't find a way to do it without having to save all options.
this is what's possible: https://forum.selur.net/thread-13.html not changing that.


Cu Selur
(06.09.2024, 19:55)Selur Wrote: [ -> ]
Quote:x264 only support YUV 4:4:4 lossless, which is why the controls are fixed for x264.
x265 will set output color space only based on profile.
As soon as you do any filtering, lossless compared to the input is out of the window.

AFAIK x264 do support YUV 4.2.0 lossless ? 
I did multiple tests (without any filtering) :
4.2.0 to x264 4.2.0 lossless
4.2.0 to x264 4.2.2 lossless
4.2.0 to x264 4.4.4 lossless
4.2.0 to x264 RGB lossless

I compared screenshots with the software Diffimg. The only video that is 100% the sale as the source is the x264 4.2.0 lossless, all other have different pixels.

Quote:Not going to happen. I don't start copying stuff from other tools.

OK. I'm wondering then : if I copy Avisynth scripts (or even Vapoursynth script) in Hybrid corresponding folders, would they work in custom script tab (without having to load them manually I mean) ?

Quote:was a bug of a dev version, fixed it a few days ago.

Nice.

Quote:"x264->Misc->Imports/Additions->Command line" is the same as custom addition field in x265.
Not adding an 'Add' button

OK I missed it thank you

Quote: Hybrid does not know how large the output of the encoding&co will be, so there is no general way to check that.
You can have some general safety using "Config->Internals->Jobs->Minimum size in MB which is required to start job".

That was not really what I meant, but rather to set an alert of lack of disk space, unrelated to the output file, just to warn us. For instance if we set it to "2 GB" there'd be a popup saying "Warning : there is less than 2 GB free on your drive".

Quote: this is what's possible: https://forum.selur.net/thread-13.html not changing that.

Alright.

Thanks for your answers.

Cu Selur
Please, do not use full quotes and add text into them, since it increases the difficulty to read your stuff.
(specially on mobile devices)
Thanks.

Quote:AFAIK x264 do support YUV 4.2.0 lossless ?
I did multiple tests (without any filtering) :
4.2.0 to x264 4.2.0 lossless
4.2.0 to x264 4.2.2 lossless
4.2.0 to x264 4.4.4 lossless
4.2.0 to x264 RGB lossless
You are correct, I mixed some stuff up in my head. I was wrong.
x264 does support it, as does Hybrid.
Lossless requires either 'None' or 'High 4:4:4' as profile.
The 'auto' option for the calculation precision will use the highest supported bit depth supported by the profile.
The 'auto' option for the output color space, does nothing if the avc profile is set to 'None', otherwise it will change the color space to the highest available.
=> I adjusted Hybrid (updated dev version) to make sure that if 'None' is selected, the 'auto'-option for 'output color space' gets deactivated and disabled.

Quote:I compared screenshots with the software Diffimg. The only video that is 100% the sale as the source is the x264 4.2.0 lossless, all others have different pixels.
You did not do any 8bit <> 10bit conversions and you did respect that color matrix during RGB <> YUV conversions, right?

Quote:I copy Avisynth scripts (or even Vapoursynth script) in Hybrid corresponding folders, would they work in custom script tab (without having to load them manually I mean) ?
No, Hybrid does no autoloading in neither Avisynth nor Vapoursynth, so that will not work.

Quote: That was not really what I meant, but rather to set an alert of lack of disk space, unrelated to the output file, just to warn us. For instance if we set it to "2 GB" there'd be a popup saying "Warning : there is less than 2 GB free on your drive".
The option checks whether xy MB are free and if not it does not start the jobs.
So it does what you want, except it does not create a pop-up. (No, I will not add a pop-up for this.)


Cu Selur
Quote:=> I adjusted Hybrid (updated dev version) to make sure that if 'None' is selected, the 'auto'-option for 'output color space' gets deactivated and disabled.

Alright now the "auto" box is disabled, but the color space is still on 4.4.4 as soon as I check the "lossless" box. So if I import, let's say a 4.2.2 video, it'll encode it in 4.4.4 if I don't change manually the color space. Wouldn't it be better to retrieve the input source color space ?


Quote:You did not do any 8bit <> 10bit conversions and you did respect that color matrix during RGB <> YUV conversions, right?

It was YUV to YUV conversion actually, but no I kept all videos in 8bit like the source. But it's true for any other color space. RGB <> RGB is lossless, 4.2.2 <> 4.2.2 is lossless etc. But as soon as the output color space is different, many pixel have different saturation/luminosity.


Quote:No, Hybrid does no autoloading in neither Avisynth nor Vapoursynth, so that will not work.

Got it.


Quote:The option checks whether xy MB are free and if not it does not start the jobs.
So it does what you want, except it does not create a pop-up. (No, I will not add a pop-up for this.)

Ah actually that's pretty much what I was asking for, cool.

Thank you
Quote:Alright now the "auto" box is disabled, but the color space is still on 4.4.4 as soon as I check the "lossless" box. So if I import, let's say a 4.2.2 video, it'll encode it in 4.4.4 if I don't change manually the color space. Wouldn't it be better to retrieve the input source color space ?
Not to me. Personally, I only use lossless encoding as an intermediate (or archival format).
As intermediate format, my target normally is not the same as the input, since I did apply some filtering and want to keep as many details of the stuff I did as possible. Also, I usually encode everything at 10bit to avoid banding and have better compression.
Archival is usually the same, I did some filtering to a source I want to archive a specific state for a later time.
If I wanted to archive the original, I would stick with a copy of the source.

When capturing something to a lossless format, I would stick to the original color sampling and bit depth to avoid stress and problems during capturing.
As soon as I filter the source and go for lossless, it does not make sense to me.

The only reason I can think of atm., is if I wanted to feed another program which only supports specific color samplings.
(As a side note: I usually would not use H.264 lossless since most hardware decoders won't support it.

Quote:But as soon as the output color space is different, many pixel have different saturation/luminosity.
okay.

Cu Selur
Quote:Not to me. Personally, I only use lossless encoding as an intermediate (or archival format).
As intermediate format, my target normally is not the same as the input, since I did apply some filtering and want to keep as many details of the stuff I did as possible. Also, I usually encode everything at 10bit to avoid banding and have better compression.
Archival is usually the same, I did some filtering to a source I want to archive a specific state for a later time.
If I wanted to archive the original, I would stick with a copy of the source.

When capturing something to a lossless format, I would stick to the original color sampling and bit depth to avoid stress and problems during capturing.
As soon as I filter the source and go for lossless, it does not make sense to me.

The only reason I can think of atm., is if I wanted to feed another program which only supports specific color samplings.
(As a side note: I usually would not use H.264 lossless since most hardware decoders won't support it.

OK I had a feeling this had something to do with filtering somehow.

Thank you
I always assumed that the main usage of Hybrid was to filter the source somehow and then convert it to whatever you need. Smile
Starting with H.264 encoding to 10bit (and thus adding a 8bit -> 10bit conversion) makes sense for compression, sadly 10bit H.264 didn't make it into the main profile and thus hardware vendors didn't support it, but starting with H.265 10bit is kind of mandatory.
Even encoding 8bit as 10bit makes sense to avoid introducing banding and gain a bit better compression.
(the better compression gain is less with newer formats, since the encoders internally usually use 16bit calculation precision anyway)
Tongue

Cu Selur
Minor bug found : When "Dropping audio" in Config > Internals > Warnings is enable, there's a popup saying there will be no audio on the encoding, and when I press OK to still continue, the encoding doesn't start (no job added in the queue). I have to disable this option to be able to encode.
Pages: 1 2 3 4 5