Need additional rendering options to export with correct levels flag

phil-d wrote on 11/12/2017, 12:49 PM

Hi

Vegas supports full range video, however when exporting (as MP4/AVC or HEVC) the video level doesn't get flagged in the file, this means a media player will usually play it as 16-235 and so displays it incorrectly if it is full range.

Could we please have the option to set the full-range or limited range flag when exporting? For a professional application it seems an oversight that the rendered output is missing the video levels flag entirely.

My GH5 will correctly flag the files (and these play correctly in Windows and on my TV), plus applications like TMPGEnc Video Mastering Works allow setting the range flags, as well as varies UI's for X264/X265, so it should be something as standard on something like Vegas I should think. Given all the tools to adjust levels and colours and scopes etc in Vegas, what an irony that the rendered output leaves something as fundamental as a correct levels flag entirely to the whims of the playback device left to guess.

Regards

Phil

Comments

Musicvid wrote on 11/12/2017, 2:45 PM

The fullrange (yuvj420p) flag is a red herring. It is honored by "some" players and goes unrecognized or misapplied in others. It has no place affecting what you see on the editing timeline.

So much better to encode correct YUV levels in Vegas, and let downstream delivery make its own mistakes. That is actually the best we may be able to do.

Here's a closeup look at all the damage these downstream "fixes" can do:

https://www.vegascreativesoftware.info/us/forum/pc-to-tv-levels-a-comedy-of-errors--107325/

The Levels filters in Vegas give you far more control over output, and as a bonus, they actually work.

phil-d wrote on 11/12/2017, 4:19 PM

Hi

The levels are correct on the timeline and in the resulting file, however without the flag for full range every media player gets it wrong as without any flag at all the assumption is often 16-235. The flag is available to be set for a reason, it isn't a red-herring. I've encoded the levels correctly in Vegas, but Vegas doesn't allow me to indicate on the rendered output what levels I am using.

My TV and Windows Media player use the flag to output the correct level, they work perfectly when the flag is set. However with a rendered output from Vegas "Pro", I have to manually change the level within the video driver for correct playback on the PC, and my TV gets it wrong with no way of overriding it.

Vegas also doesn't include the color primaries, transfer characteristics or matrix coefficients flags, these are becoming more and more important as we move to 10bit and HEVC and Rec.2020, i.e. players/TVs can't safely assume 16-235 and Rec.709, and so video encodings that explicitly indicate what they are is a necessity.

Yes Vegas gives full control of the levels which is great, but then exports the video with no attempt at indicating what the correct playback levels should be! None of this is rocket science :-)

Regards

Phil

 

 

 

 

 

Former user wrote on 11/12/2017, 5:56 PM

My TV and Windows Media player use the flag to output the correct level, they work perfectly when the flag is set. However with a rendered output from Vegas "Pro", I have to manually change the level within the video driver for correct playback on the PC, and my TV gets it wrong with no way of overriding it.

Your TV displays the full 0-255 brightness levels accurately?

What TV you got?

Musicvid wrote on 11/12/2017, 8:00 PM

The levels are correct on the timeline and in the resulting file, however without the flag for full range every media player gets it wrong as without any flag at all the assumption is often 16-235.

No. Correct YUV (REC 709) levels are 16-235, not full range. NTSC colorspace was defined 60+ years ago. The defined levels are designed to play correctly on all players and sets without any stinkin' flag. VUI is Apple snake oil so iPhone video doesn't look terrible on your teevee; it's certainly not compliance.

If you will read my post in detail, you will see why this stuff is so dicey - - it causes many times more errors than it corrects. .

Use your Studio RGB filter on the render, as it is intended, and you will remove a whole layer of doubts and questions from your workflow and distribution effort. Or render in x264 / x265, which "can" write the flag, but of course has no influence whatsoever on whether downstream decoders will recognize or honor it.

Correct video levels in your product are better than a partially supported and commonly misused flag telling decoders that the levels are incorrect - - making some sense?

Former user wrote on 11/12/2017, 10:23 PM

what player on windows can you recommend that will do full playback 0 -255?

I have windows media player classic and VLC, how do I force the 0-255 colourspace playback so that it looks normal, that is the way it looked in vegas playback preview window?

Thankyou

fr0sty wrote on 11/12/2017, 10:45 PM

In VLC, go into preferences, tell it to show all preferences on the bottom left of the menu, then enable direct 3D video output on the video tab, uncheck "Use hardware RGB>YUV conversion". This will give you 0-255.

 

 

Systems:

Desktop

AMD Ryzen 7 1800x 8 core 16 thread at stock speed

64GB 3000mhz DDR4

Geforce RTX 3090

Windows 10

Laptop:

ASUS Zenbook Pro Duo 32GB (9980HK CPU, RTX 2060 GPU, dual 4K touch screens, main one OLED HDR)

Former user wrote on 11/13/2017, 3:23 AM

Works great. 💯

phil-d wrote on 11/13/2017, 3:42 AM

The levels are correct on the timeline and in the resulting file, however without the flag for full range every media player gets it wrong as without any flag at all the assumption is often 16-235.

No. Correct YUV (REC 709) levels are 16-235, not full range. NTSC colorspace was defined 60+ years ago. The defined levels are designed to play correctly on all players and sets without any stinkin' flag. VUI is Apple snake oil so iPhone video doesn't look terrible on your teevee; it's certainly not compliance.

If you will read my post in detail, you will see why this stuff is so dicey - - it causes many times more errors than it corrects. .

Use your Studio RGB filter on the render, as it is intended, and you will remove a whole layer of doubts and questions from your workflow and distribution effort. Or render in x264 / x265, which "can" write the flag, but of course has no influence whatsoever on whether downstream decoders will recognize or honor it.

Correct video levels in your product are better than a partially supported and commonly misused flag telling decoders that the levels are incorrect - - making some sense?

Hi

When I record on my GH5 using full-range, the MP4's are flagged "full-range", when I change to video levels in the camera, they are flagged as "limited". These files then play correctly, for example my PC using Intel Graphics and default media player reads the flag and plays the footage correctly. However any resulting render from Vegas doesn't have this flag, therefore full-range plays converted to studio levels. To correct this I need to dive into graphics properties, change the video options from using Application Defaults (where the application passes the required setting to the graphics driver) to selecting the level manually, which of course is a pain and completely unnecessary if the file had the correct meta data when rendered from Vegas. Vegas is one of the few editors that can deal with full-range from start to finish, yet doesn't allow the exported file to be flagged correctly.

Rec.709 allows values outside of 16-235, with the caveat that these would traditionally be lost on playback, which in our modern digital times, is much less an issue, this is why there is flag in the meta data that can be set. With the popularity of recording gaming, full-range video is more common than ever, with more and more playback devices using this meta data to correctly display the video.

So my playback chain works okay with this flag, it is obviously there for a reason, and also uploaded files to YouTube are also handled correctly.

All we need is an option on the render settings to say how we want the render flagged, this could be "Unflagged", "Full-range" or "Limited range". In addition other meta data should be completed correctly.

Regards

Phil

 

 

phil-d wrote on 11/13/2017, 3:45 AM

what player on windows can you recommend that will do full playback 0 -255?

I have windows media player classic and VLC, how do I force the 0-255 colourspace playback so that it looks normal, that is the way it looked in vegas playback preview window?

Thankyou

Hi

I think you have the answer for this one now. Windows built in media player will read the flag on the file and adjust as required (unless rendered from Vegas which is missing the flag), if the file isn't flagged correctly your graphics driver may have an override option.

TV is a Samsung QLED Smart TV, it has a native 10 bit panel and appears to play most things correctly, when correctly flagged that is.

Regards

Phil

phil-d wrote on 11/13/2017, 4:38 AM

Hi

Just an update. When using the MainConcept encoder (as oppose to the Quick Sync option) then the color range is written as 'Limited' (so actually wrong as this was from a full-range video project) and it also includes the Color primaries etc which are completely absent from the QuickSync render.

When Magix are using the Intel QuickSync SDK they aren't setting any of this meta data, and when using the MainConcept encoder, either they are setting this incorrectly, or not setting anything either, and it is just the MainConcept encoder just adding typical defaults.

It looks like I will need to frame serve to TMPGEnc Video Mastering encoder app which does all this correctly or look at using a rewrapper tool to set the meta data right! I was hoping with an upgrade to Vegas 15 I wouldn't need to do this anymore.

Regards

Phil

 

liork wrote on 11/13/2017, 5:20 AM

Did you try also with NVENC rendering?

phil-d wrote on 11/13/2017, 5:31 AM

Hi

I don't have an Nvidia graphics card so don't have the option to.

Regards

Phil

Musicvid wrote on 11/13/2017, 9:19 AM

Full Range flag has no place in professional video editing.

 

phil-d wrote on 11/13/2017, 9:36 AM

Thank you for your opinion. However it doesn't even correctly label the meta data of the MP4 that the video range is limited, or that it is Rec.709.

The proliferation of new standards and changes (e.g. Rec.2020, 10 bit, various types of HDR) mean that it is more important than ever that this meta data is completed and correct.

Even if under render settings - Project and color space I explicitly select Rec.709, this meta data isn't added. In addition if rendering using the MainConcept encoder, BT.709 is added for the color meta data, however if I change the render option to BT.2020, it still renders flagged as BT.709! So whatever view you have of full range color flags, the long and short of it is, Vegas is broken and is making no attempt at rendering the correct meta data, at best it doesn't add anything, at worse it is adding the wrong information and ignoring the users set preference.

All this meta data is easily set for either codec and indeed other companies manage it just fine getting this right.

It just always feels that Vegas has never had any "polish", and is always broken around the edges and never quite gets there.

It seems incredible that Magix have never bothered to check the rendered files meta data to make sure it is correct, when I suspect for many of us we are quite familiar with tools like MediaInfo in order to sanity check the basics.

Regards

Phil

Musicvid wrote on 11/13/2017, 9:59 AM

The omission of the default metadata flag is an issue in Magix encoder that has been identified, discussed, and is being addressed.

Since the default is also the fallback, it's not a burning issue but I think it should be corrected.

That, however, is not the thread topic you started.

I hope Magix never adds an option for writing fullrange VUI flag, which is far removed from ALL the standards metadata you cited. Besides just being just a bandaid for camera playback, it raises a whole layer of potential for additional mistakes, by a power of ^2.

 

Musicvid wrote on 11/13/2017, 10:05 AM

phil-d,

You may be happier with a full range digital intermediate out of Vegas and encoding in Handbrake, which will write the playback flag. Or, if you can get that frameserving thing working...

phil-d wrote on 11/13/2017, 10:23 AM

The omission of the default metadata flag is an issue in Magix encoder that has been identified, discussed, and is being addressed.

Since the default is also the fallback, it's not a burning issue but I think it should be corrected.

That, however, is not the thread topic you started.

I hope Magix never adds an option for writing fullrange, because it adds a whole layer of potential for mistakes, by a factor of ^2.

 

Hi

Vegas, ironically, is full-range from start to finish. Drag a video of studio levels onto the timeline and the preview window is washed out! You have to add a studio to computer level adjustment to get the correct preview (then remove it when rendering) and is something many people have been confused by including me. I doubt adding the option in a tab under rendering to correctly flag full-range video as full range is going to add any extra potential for mistakes.

If anything what we have now is people dragging on full-range video from sources such as smart phones, captured video from gaming or action cameras, finding it looks great in the preview window, they then render it out where the video is rendered as is so is still full-range but is flagged as limited range and so plays back incorrectly.

Also Vegas has the option in project settings to use full-range, but then doesn't allow anyone to render it flagged correctly.

In this day and age, there is no reason why we should see a "clipped Shirley", I certainly haven't for a while as all my playback devices understand the limited or full-range flag and play it back correctly, and it is becoming the norm on modern smart TVs to not assume limited range and to look at the meta data for how to play back the video given the shear number of sources video may be obtained from now.

The meta data needs to be correct, regardless if you think there should never be anything other than 16-235 limited range video so it shouldn't matter, as in reality, it isn't like that anymore.

Regards

Phil

 

phil-d wrote on 11/13/2017, 10:35 AM

phil-d,

You may be happier with a full range digital intermediate out of Vegas and encoding in Handbrake, which will write the playback flag. Or, if you can get that frameserving thing working...

Hi

I think I can use a special version of FFmpeg to re-write the meta-data without re-encoding that was designed to overcome just this sort of problem.

Either way you wrap it up, this is a problem with Vegas and I hope they get it fixed. If Vegas allows the option for full-range video editing, then they should ensure options are provided to render it as such, as otherwise, what's the point?

Musicvid wrote on 11/13/2017, 10:54 AM

Phil, we know all of that.

Until the standards CHANGE, I have no further discourse with you on the subject.

The standards have not changed, and Vegas does what it does, for reasons I am comfortable with.

If what you are complaining about are the 5 billion devices that shoot fullrange levels in B.T.709 space, then preaching to the choir isn't helping, and I've been tracking those trends for at least six years.

If you think that silly flag that some cameras use and some players recognize, somehow keeps clipped Shirley out of the wild, you either: 1) Haven't visited YouTube in many years, or; 2) Haven't looked beyond your own well-contained system.

Encoding correct levels always works. Encoding incorrect levels with a flag doesn't always work.

A hobbyist wants things to work for himself. A producer wants things to work for everybody else. I'm just trying to save your new cowboy boots a trip through the horse manure, should you ever decide to go that route and distribute your work.

I gave you a thumbs up in another thread, so don't think any of this as personal. I am, however, passionate. To paraphrase Heinlein, presets are for insects.

phil-d wrote on 11/13/2017, 11:19 AM

I agree with you, we all want it to work, so that is why the option should be made available.

This is a bug in Vegas, it happens to work okay in most situations, but it is still a bug. We know it's a bug and rough bit of implementation now as a) The flags are either missing completely or outputted as a fixed value of "limited" depending on which encoder is used, and b) It doesn't get the color settings correct in MainConcept and leaves them out completely when using QuickSync.

Basically Vegas doesn't appear to be setting this meta data at all, MainConcept adds some defaults, and Intel QuickSync doesn't add anything. What if at some point Intel decide to default to some values that don't match your preferred ones, or MainConcept change their defaults? I'm a software developer and I know implicit defaults can get changed without warning, so regardless of the arguments over what is and isn't correct or best practice, Vegas needs to make these settings and ensure they are made correctly. At the vary least if a project property is using 32 bit full range the flag is set as full-range, otherwise it is set as limited, that seems to be the obvious thing.

I don't want to labour the point, I'm just trying to avoid this issue being diluted into something seemingly unimportant.

Regards

Phil

phil-d wrote on 11/13/2017, 11:30 AM

Hopefully when they fix one issue the other will be fixed as well, as to me it all appears to the same bug, just not passing the meta data into the encoder and leaving it up to the encode to do it's own defaults. 😀

Musicvid wrote on 11/13/2017, 11:52 AM

You are presenting two issues, one already acknowledged, as if they were one.

1) Should Magix encoders declare correct colorspace metadata -- Yes.

2) Should Magix' professional products embark on a mission to save would-be editors from themselves through the inclusion of soccer-mom defaults? Not in my Vegas.

3) "Edit RGB, Render YUV" is a bit of a brainbender, I admit. But it is by design in Vegas, not a bug. And it works, every time we want compliant output for delivery.