BIG TUTORIAL - How to fix video posterization (banding) - and a lot more

  Рет қаралды 62,840

Taran Van Hemert

Taran Van Hemert

Күн бұрын

▼▼ EXPAND FOR NAVIGATION ▼▼
00:00 Explaining the problem - "partial" video causes doubled and skipped values.
14:48 Trying to use digital noise to reduce banding (bleh)
19:08 Experimenting with other textures
23:34 Interlude: Nearest neighbor scaling: It's important, and Premiere doesn't have it.
19:08 Experimenting with other textures (continued)
28:47 Key insight: Order of operations matters!
30:44 Fixing banding in a video that was already rendered
32:39 Interlude: bicubic scaling vs. nearest neighbor
35:46 Fixing banding in a video that was already rendered (continued) Also, how to key a gradient and other complicated stuff
If you want to try this yourself:
Here is the source footage that I will be fixing:
• *Gradient banding fix ...
Here is my pixel overlay:
www.dropbox.com/s/8t1oxu7kh0n...
www.dropbox.com/s/0j2s1ottsyi...
Here is a nearly perfect Bionic Beaver background
www.dropbox.com/s/6r21fof958b...
52:18 - Photoshop's fancy RGB dithering
1:06:13 - Discovering that KZbin uses different bitrates in the same resolution
(FYI, banding can also be called "posterization.")
Potentially interesting/useful links:
nomorebanding.com/cache
graphicdesign.stackexchange.c...
/ how-to-create-noisy-ri...
shunotes.blogspot.com/2015/12/...
www.loopit.dk/banding_in_games...
forums.adobe.com/message/1090...
Playlist of all Taran's tests: (won't be very useful to anyone else, since you don't know the ingredients)
• Testing stuff
In particular, this video was very useful for me to figure out how different sizes of the faux-pixels are affected by different resolutions in KZbin: • 2nd Pixel overlay repl... (I'd watch the whole thing with a different resolution each time)
Testing lots of different kinds of overlays: • Video
Me and the captain arguing about "partial" video:
/ 1080232381296963584
Continued:
/ 1092850961909932032
Later, he admitted he was wrong, HAHAHAHA

Пікірлер: 290
@driftingnitro6490
@driftingnitro6490 5 жыл бұрын
I dont know why im watching a 1 hour tutorial on gradients in video but i sure as hell ain't going to stop.
@wobblysauce
@wobblysauce 5 жыл бұрын
Same, do not edit either, but just love knowledge bombs.
@o0Avalon0o
@o0Avalon0o 5 жыл бұрын
28:04 "Only Linus's face actually looks horrible" hahaha -Taran out of context 2019
@wobblysauce
@wobblysauce 5 жыл бұрын
But it is not... Even have a look at the latest 'We are hiring video'.. maybe it could be him, the lighting or both? pale in a bright background.
@o0Avalon0o
@o0Avalon0o 5 жыл бұрын
wobbly sauce I'm sorry, what?
@HaydnEdgintonKing
@HaydnEdgintonKing 5 жыл бұрын
"I feel like the fuzzy beaver is my spirit animal" -Taran out of context v2
@Michael_Unce
@Michael_Unce 5 жыл бұрын
Another legendary tutorial brace yourselves
@trog871
@trog871 5 жыл бұрын
This video feels like when you are attempting to go to sleep, but your brain won't stop thinking up random imaginary conversations, or ways to solve a problem. Its the same coherent-incoherent babbling that happens then, and I love it. I have no interest in video editing, therefore I have no need to understand how to remove color banding in videos raw or pre-exported. But I watched the whole thing anyways because the way you talk about it feels exactly the same as I would imagine explaining a complicated topic to someone else, in my brain, when I am attempting to go to sleep. This comment is becoming the same thing. I've completely lost track of my original intent, just like the video, just like my brain when I am attempting to sleep. What a strange video. Maybe the video seemed that way because I am half asleep right now, so the video was speaking to some other part of my brain...
@o0Avalon0o
@o0Avalon0o 5 жыл бұрын
_Wtf, I try to study & read textbooks, listen to lectures, but they all put me to sleep. This though? My brain is eating it up like it's the most riveting talk ever. I wish I could utilize that for an actual marketable skill._
@TaranVH
@TaranVH 5 жыл бұрын
As an editor, I have lots of experience with how to make content engaging... even with kind of dry topics like video posterization. Lectures and textbooks do not always care about how engaging they are.
@o0Avalon0o
@o0Avalon0o 5 жыл бұрын
@@TaranVH That makes a lot of sense; I appreciate you making things interesting. My knowledge of editing is limited but the work done here is so intuitive, it felt fluid. The things I noticed most, was the interesting cadence of your voice, the clarity of your diction, the focus of your interest, & the balance of concise explanations with appropriate tangents. It also helps hold my attention since it's like listening to someone talk about their passion project. As someone with terrible ADHD, thanks for sharing your learning process in a riviting way.
@johneygd
@johneygd 5 жыл бұрын
Yes indeed, this get’s not only annoying & boring but also confusing.
@meowchin
@meowchin 5 жыл бұрын
I haven't watched the whole video because I haven't got the time, but the reason you're getting banding even with high bitrates is most likely due to poor, or even lack of dithering in Premiere's video pipeline, and also due to Adobe's h.264 encoder being shit (which it is). If it's the thirst, than nothing can be done besides fixing the already banded video with some debanding filter in Vapoursynth. If it's the second, you can try using a better encoder - with Voukoder you can export video from Premiere with x264 or x265. The problem is - even if your final video is banding-free, you will still get banding on KZbin due to low bitrate and shitty encoders that KZbin uses.
@TaranVH
@TaranVH 5 жыл бұрын
How... Do you know these things? I haven't heard any of that before
@duckne55
@duckne55 5 жыл бұрын
video encoding and video editing are pretty different discplines
@CrazyWeeMonkey
@CrazyWeeMonkey 5 жыл бұрын
@@TaranVH Voukoder has options for exporting using vp9, x264, x265, and NVENC h264/h265; alongside some extra options like CRF encoding and opus audio. It can give faster/lower file size encodes from also having speed presets.
@chessversarius2253
@chessversarius2253 5 жыл бұрын
Hey is that Spike?
@cavanjfaucett
@cavanjfaucett 5 жыл бұрын
@Meowchin @Taren Van Hemert How do you fix that problem with uploading though? Is there absolutely no way to avoid banding in videos that is generated after they are uploaded to KZbin/Vimeo due to their horrible compression? Any thoughts on certain export settings or suggestions as to how to minimize this? I've seen other people suggest that I add noise to my videos as this somehow helps improve the gradient... but I'd obviously like to avoid this. For example, I've got a video that was shot in incredibly low light on an Alexa Mini, and the footage looks great in a ProRes 4444 uncompressed export, but any attempt to compress gives immediate banding and only worsens upon upload. Any thoughts?
@JodyBruchon
@JodyBruchon 5 жыл бұрын
"8-bit color" in RGB video specifically is referring to 8 bits per channel. The proper way to refer to it is "8 bpc" but there's a colloquial understanding that for video, 8-bit = 8 bpc. There are three color channels in RGB. However, 8-bit video is not usually in RGB, it's in YUV. YUV is still three 8-bit depth channels, but one is just for brightness (Y) while the other is for color levels (UV) and the color levels can be understood as a sort of plot on a two-dimensional plane of color with red, magenta, blue, and green in the corners, and every possible blend between those somewhere between those extremes. 24 bits are still used, but 8 bits aren't color data, so 24-bit color is not a technically correct way to refer to YUV pixel data.
@YVZSTUDIOS
@YVZSTUDIOS 5 жыл бұрын
That's what I was thinking at first. Some time ago I've discovered that "RGB Video" actually refers to 4:4:4 aka no chroma-subsampling and YUV can be 4:2:2 or 4:2:0, which are most videos online. PNG and other lossless image formats also don't have chroma-subsampling, while JPEG for example also does chroma-subsampling by default. Only 3rd party tools like XnView give you the option to save a JPEG at 4:2:2 or 4:4:4: (there it's called 1x1, 1x1, 1x1 though) To test this, I've recorded my screen with Bandican which has different H.264 profiles like "high (4:2:0)", "high 4:4:4", and "lossless 4:4:4" After comparing all 3 I've noticed that only "lossless" had no banding in the recording, but all this is irrelevant, because KZbin converts everything to 420 anyways.
@JodyBruchon
@JodyBruchon 5 жыл бұрын
@@YVZSTUDIOS RGB does not have anything to do with chroma subsampling. RGB is literally storing the image data as red, green, and blue color channels. YUV, which JPEG and MPEG and many video formats use, is stored as a luminance level Y and a color quadrant value U,V. Chroma subsampling is only applied to YUV. 4:4:4 YUV is indeed "no subsampling" but it is not identical to RGB. Conversions between the two pixel formats must be performed using matrix math. Rec.601, Rec.709, and Rec.2020 specify different conversion matrices because they define slightly different YUV colorspaces.
@Liggliluff
@Liggliluff 5 жыл бұрын
Or "8 b/c" for SI-style; assuming people don't confuse "c" for light speed.
@EposVox
@EposVox 5 жыл бұрын
(Deleted my old comment.) I've been doing the pixel overlay off and on since you first started talking about it. I definitely notice it sometimes in LTT videos, but it doesn't bother me. So is Draft quality in AE the only way to control scaling modes? I thought it was just better in AE in general.
@TaranVH
@TaranVH 5 жыл бұрын
AE has Nearest neighbor (draft), bilinear, and bicubic. You have to precomp whatever you set to draft, if you want to do fancy things with it.
@pcrolandhu
@pcrolandhu 3 жыл бұрын
@@TaranVH Kind of late with my comment but you basically can't do anything about this. Sure, you can use a debander filter and apply grain/dither to debanded areas and it will look great when you export it but KZbin's terrible encoding settings and their poor bitrate will wipe away those noise/grain. They would have to use ~3-5 times more bitrate in order to maintain a proper image quality and they obviously won't do that. The terrible bitrate is the reason you can see the difference between 720p and 1080p and between 1080p and 1440p even when you are just watching a video in the small player, which is 720p (on a 1080p monitor). A solution to this would be if someone ported a debander like f3kdb/neo_f3kdb to Chrome and it would filter videos during playing.
@cobalt2489
@cobalt2489 3 жыл бұрын
@@pcrolandhu huh that sounds like nice wasm project
@jayphilipwilliams
@jayphilipwilliams 4 жыл бұрын
Great. I watch a 1 hour, 8 minute, and 48 second video, and in the final 2 seconds, he tells me I can't use his solution to eliminate banding in live action footage. F&^%ing awesome.
@NineToFiveGamer
@NineToFiveGamer 5 жыл бұрын
The ammount of commitment you put into the art of making video is truly astounding. Props to you for really doing the research to better your product, and sharing it with others. You need to put up a dono link
@noway2831
@noway2831 4 жыл бұрын
While few of these videos are relevant to me, I admire you helping others in your field and not keeping any secrets. What you're doing is great for both amateur and professional creators alike. Keep it up!
@ecnirp1340
@ecnirp1340 5 жыл бұрын
57:55 the video just got uploaded so it's highly possible that this first dither test was using youtube's 1080p avc codec specifically avc1.640028(137). When 4k became available, 1080p resolution must've been reencoded to youtube's standard vp09.blah.blah(248) hence the different test result. 1:06:51 same thing happens here. This LTT video got stuck on the vp9 machine for a week. You can still obtain the avc copy using youtube-dl.
@wobblysauce
@wobblysauce 5 жыл бұрын
There is also a difference if you pick 4k and watch at 1080p, even on a 4k screen.
@dennydravis8758
@dennydravis8758 3 жыл бұрын
I did notice the effect, but only like a millisecond question as to what you had done to achieve the effect. This was super cool, and it's awesome to see your process.
@jmlemmi
@jmlemmi 5 жыл бұрын
Its amazing, how much stuff there is to watch out for. I really enjoy listening to you and learning one or two things. Even though I'm not sure If I'll ever get to use it. Thank you!
@NOX-ID47
@NOX-ID47 Жыл бұрын
The slow descent into madness was my favourite part. All joking aside, this was a fantastic video which has sent me down a rabbit hole; thanks.
@Muzzled
@Muzzled 5 жыл бұрын
1:03:26 "Mark-west-brown-lies" I started laughing hysterically that wasn't funny I'm tired help
@SmartToaster
@SmartToaster 5 жыл бұрын
i have never heard a man so passionate about compression this has been enlightening
@CamCovello
@CamCovello 5 жыл бұрын
TARAN THANK YOU SO MUCH!!!!!!!!!!!!!!!!!! I've been struggling with this for years. You are amazing. Thank you.
@sayt.calligraphy
@sayt.calligraphy 4 жыл бұрын
So cool man. I really enjoy this. Banding is also frustraded to me. And knowing that are people around there with the same feeling it relax me. I'll try your tricks. Thanks!
@SapphFire
@SapphFire 5 жыл бұрын
Gonna save this for today's evening to test if this will help me fall asleep. Your voice is really relaxing but not in a boring way.
@TaranVH
@TaranVH 5 жыл бұрын
Lolz, I always find these comments so amusing. I always felt that my brother had the better voice. He did radio, after all
@pseudo_goose
@pseudo_goose 5 жыл бұрын
I actually just did a ton of research into dithering, and personally I love the Floyd-Steinberg algorithm. Absolutely genius design.
@SteveHolmesDrums
@SteveHolmesDrums 5 жыл бұрын
This is how making video games is. Your job is never really done because it can always be better. Taran, congratulations on being very listenable - these tutorials are both informative and very entertaining. Keep being awesome.
@aleksanderhaugdal9361
@aleksanderhaugdal9361 5 жыл бұрын
Commenting along as im watching and you mention stuff i commented later in the video XD. Btw taran i love these deep dives :)
@esuelle
@esuelle 5 жыл бұрын
Why is this tutorial about skills I don't need or use so interesting? Thanks Taran.
@21bywater
@21bywater 5 жыл бұрын
You are a god damn hero. Thank you so much for your continued work in the video industry.
@heeerrresjonny
@heeerrresjonny 5 жыл бұрын
Taran...you edit video the way I write software lol. I love your passion for figuring out why things work out the way they do.
@marienarrat2654
@marienarrat2654 4 жыл бұрын
Thank you so much for the technique with a noise png. I put that on top of my layers, in screen mode, in 1% of opacity and all the weird lines i had in my gradients where blended. Actually you just saved my animation graduation movie in other words my life X) thank you
@DigiDuncan
@DigiDuncan 5 жыл бұрын
Does Linus know you're making these on company time 😂 Another great chill video. Love these!
@mcpeko5773
@mcpeko5773 3 жыл бұрын
Wow. This is extremely interesting! 🔥
@GreenBoxMedia
@GreenBoxMedia 5 жыл бұрын
Dear Taran. Inside the secondary color correction you don't need to click the "plus" to ad a color. Simply click and drag to select multiple colors from the source/program view. 37:26
@jaybuck4951
@jaybuck4951 3 жыл бұрын
I know nothing about video editing but I love watching your videos. Thanks
@cliffthecrafter
@cliffthecrafter 4 жыл бұрын
38:41 As Captain Disillusion once said: "We are in fact allowed to use the chroma key effect more than once"
@edstoica
@edstoica 2 жыл бұрын
this is absolutely ingenious! thank you so much for this research and your creative conclusions. I had bad trouble with banding with videos i rendered from unreal engine. the digital gradients really do not like the "bit cropping" you described. Now I just have to put your pattern on top (the second one) and multiply it with 6 percent (davinci resolve). The banding is >completely< gone on all cases! And the payoff is barely noticable ;) thanks again for your work and sharing!
@Anjocally
@Anjocally Жыл бұрын
Thank you for making this video
@cavemann_
@cavemann_ 3 жыл бұрын
This will come in useful, thanks
@bladactania
@bladactania 5 жыл бұрын
95% of Taran's videos are outside my area of knowledge. But I still enjoy these long tutorials because I love the voice over.
@kazeshiii
@kazeshiii 5 жыл бұрын
At the end there you discover that youtube is serving different versions of a video at the same resolution. This is correct, KZbin serves both AVC1(H.264) and VP9 versions of a video at 1080p and below. For any resolution higher than 1080p, KZbin uses VP9 exclusively as you can see here: kayo.moe/kOQGfSSK.png (1080p versions highlighted in the red box, 1440p and 4k in the yellow box) The codec of the stream you watch can be found In the "Stats for Nerds" box. It's worth noting that for small channels, VP9 encoding is not enabled unless the uploaded video is larger than 1080p (1440p and above). To add more complication into the matter, since September 2018 KZbin has been rolling out AV1 (VP9's successor) encoded video, as well. There's even a playlist put together by the KZbin Developers channel here: kzbin.info/aero/PLyqf6gJt7KuHBmeVzZteZUlNUQAVLwrZS Currently AV1 is enabled for low resolution video (720p and below). In order to actually be served AV1-encoded video, you have to go to kzbin.info and enable it either for all resolutions (up to 1080p) or for SD resolutions (480p and below).
@TotalElipse
@TotalElipse 5 жыл бұрын
I will never miss an opportunity to spend another hour in Taran's brain.
@schulenheimer
@schulenheimer 5 жыл бұрын
thanks for the video, the whole banding thing is driving me insane once i noticed it
@pifroggiMC
@pifroggiMC 4 жыл бұрын
this is POTENTIALLY to late heh But to answer some questions: The pasteurization was gone in high10, because is uses 10bit color-depth instead of 8, so you have 1024 levels instead of 256. Yes KZbin uses different bitrates and different codecs for the same resolution. The reasons are many and over the years it got complicated. So back in the day youtube used flv video with some old codec and later switched to avc. All videos were converted to avc. Some years ago with the introduction of support for higher resolutions than 1080p, KZbin introduced a new codec called vp9. Whenever you were uploading a 4k video or anything higher than 1080p, KZbin would use the vp9 codec to archive a higher quality with less bandwidth than the standard avc. A few years later vp9 was rolled out for 1080p and 720p videos for KZbinrs with a lot of subscribers, to give people higher quality. Now I think everyone gets vp9 for their videos. The downside of vp9 is, it takes longer to encode and because of that the FIRST thing youtube does is, encoding the video in avc so it can be viewed as soon as possible. later the vp9 version comes along. But there is ANOTHER problem. KZbin uses dash-playback, streaming only small chunks of video to you instead of the whole thing. But what if your bandwidth suddenly drops? KZbin decreases the quality and to do that live without restarting the playback, the other resolutions also need to be available in the same codec. So they converted aaaaaaall videos to vp9 in all resolutions they give you. (144p, 240p, 360p, 480p, 720p, 1080p, 1440p, 4k and so on...) (by the way they are using the ORIGINAL file you were uploading years ago to reencode the videos. Yes even years later they still have almost all those saved. You can even download them here: takeout.google.com/ ) But actually they did not really reencode every single video to vp9. Only the ones that get watched enough to warrant it. Oh and by the way since 1 or 2 years, KZbin is slowly introducing the av1 codec for everything up to 1080p, because it has a very high quality with low bandwith and you don't need good hardware to decode it. Perfect for mobile. So every video will also be reencoded for that at some point! BUT because not every device or browser supports vp9, or av1, every video must always also be available as avc as a fallback. So that is the first one that gets distributed across the world. And to top it all of, not every video is available in your region in every codec. Instead of sending the data from the US to Japan for example, KZbin has servers in Japan that host the videos. But if a video from the US is not viewed very much in Japan, it will not get the vp9 codec there. Sometimes it is not even available on the japanese servers at all and so the playback will be slower, because the video has to be transmitted from the US. if you would view the video a few times it would eventually be transmitted to the japanese servers and if you would view it even more times the vp9 version would be transmitted and eventually probably the av1 version. So in the end not every video is available in every codec everywhere, and in some places it is available in multiple formats. So for example if you are playing a video in 1080p and KZbin somehow decided you will get the avc version and then you decide to change the resolution to 4k, KZbin will buffer a bit longer and get you the vp9 version. Then you decide to go back to 1080p. KZbin will now give you the vp9 version of this 1080p video to ensure low loading times and a buffer-free playback. when you reload the page youtube will probably still give you the vp9 version because the server near use cached it. It depends if KZbin correctly detects what your bandwidth is, what your device/browser is capable of and availability of the file in your region. Maybe it has even something to do with the utilization of the server you are getting it from and maybe there are even different bitrate versions for different regions. To make sure you are always seeing the same, right-click on the video and use "stats for nerds". To completely be sure and get more info you have to download the video. I would recommend www.4kdownload.com because with this program you can actually choose which version to download if multiple versions are available on the server. Mostly the file sizes are similar, but sometimes they are vastly different (almost doubled). An interesting side note is, sometimes you can still find videos only available in flv. those are the ~2005 era videos with almost no views. Sorry about grammatical errors! English is not my first language. Your pixel overlay provides surprisingly good results! I've done many test myself, but haven't come up with this! Thank you so much for giving it to us.
@Kidsnd274
@Kidsnd274 3 жыл бұрын
youtube-dl is another awesome tool to manually select what video and audio codec you want to download. It displays all the formats available including the new av1 and let's you select which video+audio codec you want. It then muxes it into the appropriate container. Eg. avc+aac=mp4, vp9+opus=webm
@pifroggiMC
@pifroggiMC 3 жыл бұрын
@@Kidsnd274 Nice! By the way as a small update to my original comment a year later: I noticed higher resolution videos are now sometimes also available in av1.
@Kidsnd274
@Kidsnd274 3 жыл бұрын
@@pifroggiMC Higher than 1080p?
@pifroggiMC
@pifroggiMC 3 жыл бұрын
@@Kidsnd274 yes. Just searched for an example and found one from linus: kzbin.info/www/bejne/aImQi5Svnrx0gdE Even the 4k version is available in av1 and it's almost half the file size of the vp9 version. But I didn't compare the quality.
@Kidsnd274
@Kidsnd274 3 жыл бұрын
@@pifroggiMC Oh that's sick. Will probably compare the quality later. Can't wait for av1 to be the norm
@xylempl
@xylempl 5 жыл бұрын
KZbin actually uses at least two different codecs and containers for video - H.264 inside MP4 and VP9 inside WebM, with the latter taking a bit longer to be encoded and available for watching (I assume the reason is that KZbin prioritises encoding MP4 first, as it's compatible with more devices). The player then selects which format to stream based on your browser/device - it will show which one it uses if you right click the video and open stats for nerds. You can see all different streams available for this video here: runkit.com/xylem/yt-video-formats
@NeoQuixotic
@NeoQuixotic 5 жыл бұрын
I remember trying to make footage look good on KZbin years ago. It's a never ending battle because as soon find a workflow and method that works, KZbin will change how they encode it will start all over. And if you start using another piece of software you will learn about the quirks at how they handle source material on import and/or export. Around when KZbin first allowed 720p, if you kept your video within certain specs and profiles it would not get re-encoded. You could confirm by checking the hash when you downloaded from KZbin. However, now they re-encode everything for probably even security reasons because you could also hex edit the file to trick KZbin for frame-rate, bit-rate, etc. And let's not forgot that how it looks will also depend on what browser, monitor, resolution, etc. it is being viewed on. You will drive yourself mad going for impeccable video quality on KZbin. Is it fun to experiment? Oh heck yes. But in the end you are at the mercy of KZbin and mass efficiency video distribution.
@Kochiha
@Kochiha 5 жыл бұрын
Clicked on this to see what was up, since I'm not as familiar with the terminology of image and video editing, and holy wow, not even a minute in and I wanted to see how this was all fixed. Then I didn't realize an hour had passed before I had to get up for something.
@o0Avalon0o
@o0Avalon0o 5 жыл бұрын
As a kid, I remember correcting that banding in my screenshots with Paint. (I don't know how my eyes didn't immediately get ruined.) My older brothers were into paint art, but I was more interested in restoring photos & editing.
@KarlPiper
@KarlPiper 5 жыл бұрын
I love this channel.
@Grozdor
@Grozdor 5 жыл бұрын
"This is the content I subscribed for."
@JohnHollowell
@JohnHollowell 5 жыл бұрын
30:29 "This was a triumph; I'm making a note here: HUGE SUCCESS!"
@UliTroyo
@UliTroyo 5 жыл бұрын
This is so neat!
@L1Q
@L1Q 5 жыл бұрын
WATCH TO THE END, IMPORTANT MESSAGE THERE
@dm4uz3
@dm4uz3 5 жыл бұрын
ok
@HinaTan250
@HinaTan250 5 жыл бұрын
59:10 Photoshop is what added the colors to the original gradient when you created it. It does this to artificially add more shades of grey and make a smoother transition since hue also affects value.
@gutobernardo7457
@gutobernardo7457 4 жыл бұрын
I think a possible solution would be AI trained to recognize banding and then Adobe developing a tool to apply the correction. But well, it might take years to get there and probably another more clever solution will be discovered (probably better codecs and formats). Honestly, I don't mind artifacts, banding, color shifts etc because that's why KZbin killed competition: blazing fast video delivery through compression. Dope video mate!
@aure_eti
@aure_eti 5 жыл бұрын
This is so good and helpfull that i just download the video :)
@b3kstudio
@b3kstudio 5 жыл бұрын
1. You should try FFmpeg. It is a great command line utility. It can convert video, audio, images and some subtitle formats. It can also apply some simple transformations (like blur, scaling etc.) It might render the nearest-neighbour video faster than AE 2. Apparently KZbin stores two versions of higher resolutions. One webm version with presumably vp9 encoding and a MP4 version with h264 encoding. Fun fact: these are video only. Audio is loaded from a different file
@Grozdor
@Grozdor 5 жыл бұрын
I have FFmpeg downloaded for Audacity, does it work on other software too automatically without myself downloading it again?
@Grozdor
@Grozdor 5 жыл бұрын
@@b3kstudio Thanks, if I recall correctly FFmpeg is a plug in, isn't it? That should be easy for me to insert that to the other softwares that needed it.
@b3kstudio
@b3kstudio 5 жыл бұрын
@@Grozdor FFmpeg can exist it multiple forms, but it is possible to use it as an plugin for some software
@Grozdor
@Grozdor 5 жыл бұрын
@@b3kstudio thanks again!
@drink__more__water
@drink__more__water 3 жыл бұрын
"and nobody noticed" which, in the world of IT and video editing means it went perfectly :)
@xureality
@xureality 5 жыл бұрын
KZbin doesn't just have multiple bitrates in the same setting, they also have 2 (and experimentally on some settings, 3!) completely different video codecs for the same setting. You can see this information using a little piece of software called "youtube-dl", which while primarily designed to download videos off youtube, has the option to show every single quality setting. (youtube-dl -F [paste link to video]) For example: your keyboard video was encoded by youtube at 1080p in both WEBM (using the vp9 codec) and MP4 (using avc1, which is just a subset of h.264). But on 720p it was encoded by both of the aforementioned codecs AND the brand spanking new still not fully rolled out yet AV1 codec. But do not despair, for there is a way to see which codec youtube is serving you right now. Simply right click and select "Stats for nerds", and it'll tell you exactly which codec it's using. Or use youtube-dl to download the correct version from the get go.
@aleksanderhaugdal9361
@aleksanderhaugdal9361 5 жыл бұрын
People refer to it as 8 bit color, because its 8 bit per channel
@Liggliluff
@Liggliluff 5 жыл бұрын
That is there it comes from; people cutting out information to make it shorter. Just like people say "ampere" instead of "milliampere hour" ... which has the _huge_ issue of cutting off "milli-" without dividing it by 1000. - Then it doesn't help that it's also referred to as 10 bits, and not 10 bits per channel. A "10 bit" screen is actually 30 bits.
@OldClam5
@OldClam5 4 жыл бұрын
@@Liggliluff Yup, can't stand these sort of conventions. It makes things needlessly confusing and also causes misinformation to spread.
@Rankhole123
@Rankhole123 5 жыл бұрын
It's just so weird knowing that ADOBE is making both premiere AND photoshop, and somehow premiere is missing key features like the demonstrated RGB dithering. As a programmer, this makes me sad. They have the damn source code...
@TaranVH
@TaranVH 5 жыл бұрын
I would not say that RGB dithering is a "key" feature that Premiere needs. It would be nice, but I have about 300 higher priority requests....
@roridev
@roridev 5 жыл бұрын
If they had every feature they "missed" from photoshop then premiere could became the jack of all trades and you dont need ps. (i know i'm overexagerating but you get the gist.)
@Rankhole123
@Rankhole123 5 жыл бұрын
@@roridev you can already select different methods of things in form of drop-down menues. Adding an entry to a drop-down menu doesn't make it any more bad than it is.
@roridev
@roridev 5 жыл бұрын
@@Rankhole123 I actualy know about it. and I also can feel your pain like they have the src they can inplement it in hours, they just don't.
@Rankhole123
@Rankhole123 5 жыл бұрын
@@TaranVH I was just giving that as an example. You know best what features are desperately needed the most. It's just that as a programmer I see this as a really lazy move. They have the algorithms implemented on Photoshop but not on premiere -> lazy as hell and waste of opportunity.
@trisymphony
@trisymphony 5 жыл бұрын
Dithering is not the same as putting a noise image on top of your footage. All that does is make it harder for the video compression algorithm to "group" similar colors and elements together, making the compression less effective. The resulting video will have less banding, but also have noise, and since "real random" noise cannot be compressed, your image will degrade even more as soon as you run into the bitrate wall. Just watch very noisy raytracing footage from the early pathtracing days on KZbin to see what I mean. You want something else. I remember back in the late 90s when we made animated GIFs from full color video, and had to compress them down to (true) 8 bit colour (256 or 216). With proper dithering settings and a good palette, you can achieve astonishing results with a minimum number of colours. There are several algorithms to choose from, what you want is one from the Error Diffusion category. See example pictures on Wikipedia. 54:00 and later shows exactly that, dithering at the "seams", at the errors. This is not random noise, this is very "targeted". Anyway, I think you are looking at the issue from the wrong end. This is an exporter/codec/settings problem, not a problem with the footage. High10 is the only proper solution. The noise method is snake oil, and your blur requires a lot of post work (icons, task bar, animations that don't fit etc), which is just not practical imo. And for all your work, 58:00 looks exactly the same on top and bottom. As long as KZbin transcodes all videos in with lower settings than a high10 equivalent, this is just something we will have to live with.
@TaranVH
@TaranVH 5 жыл бұрын
Keep in mine, 58:00 was like, quadruple compressed. I'd expect no dithering to survive. I appreciate your comment. You're right that Premiere needs proper dithering settings. Though KZbin just does its own compression anyway, so it all ends up as 8-bit in the end... I just wish I could use all 256 values within 8-bit, rather than just 220... I can't fix youtube or Premiere, so I'm doing what I can. A bit of noise, or my fancy overlay, can genuinely help.
@trisymphony
@trisymphony 5 жыл бұрын
@@TaranVH right, i forgot I was watching a compressed video of a compressed video. Just another thought, KZbin is handling both h264 as well as VP9 streams at the moment, with different bitrates and resolutions, and soon, there will be a new codec in the mix called AV1. You can already enable it through TestTube or a flag in Firefox. Would be fun to see if the situation changes with this brand new, open source codec.
@deadbzeus
@deadbzeus 5 жыл бұрын
Linus is lucky, you are a beast.
@Ben-fq1lj
@Ben-fq1lj 5 жыл бұрын
Can I use this for banding skies for a7sii s-log footage?
@peterdessev536
@peterdessev536 5 жыл бұрын
hey taran, I'm not a pro when it comes to editing so maybe this is super dumb, but couldn't you just make a mask around the taskbar/icons on the right when trying to fix the rendered mp4 that excludes the lumetri key? you could also do the same with the search part when Anthony goes to search for Nvidia whatever so that you have several specific keys and not just one general key.... maybe this is impossible, i dont know, just my 2 cents
@notreallyasloth
@notreallyasloth 5 жыл бұрын
Hey Taran, I watched to the end of the tutorial and it really gave me a lot more insight into banding. Actually a lot more insight than my actual post production professor did. In terms of live action video, like the MKBHD video, I assume the RED camera he's using is recording a much higher bit depth than the h264 video KZbin shows us and that's why we get the banding. Is there any solution to this? Similarly, Last year I shot a short movie on the Sony FS7 in ProRes and as soon as I exported it on premiere to h264 it had huge banding issues. We eventually decided to export to a ProRes file with a much higher bit depth but the file ended up being 3/4 GB big so obviously not ideal for actual distribution. Eventually I tried exporting it to h264 with the "high" setting checked and it seemed to help, but I just wonder if there is a more optimal solution to this. I know you guys also shoot with REDs so I guess you've probably had to think about it already ✌️
@rkan2
@rkan2 5 жыл бұрын
The correct term when related to compression (artifacts) is "posterization"
@linawhatevs8389
@linawhatevs8389 5 жыл бұрын
KZbin has different bitrates at the same resolution: makes sense, really. Monitor resolution and network speed are not neccessarily correlated. There just needs to be a "force highest bitrate" option alongside the 1080p/4K selectors.
@Quetzalcoatl0
@Quetzalcoatl0 5 жыл бұрын
I like the intro :D
@lagrangemechanics
@lagrangemechanics 5 жыл бұрын
Hm, in signal processing adding noise can bring up the quantisation resolution, but it often comes with a filtering processing at the end. So for example you have an analog signal - say 0.4 V - and you have say an one bit analog to digital converter, so the digital signal only comes out as either 0 or 1. So if you use this one-bit A-to-D you will always get an output of 0 V, which results in a constant quantisation noise of 0.4 V. However, what you can do is adding some random noise to the signal before you quantize it, so when the analog to digital converter sees it, instead of always seeing a 0.4 V signal, it may see 0.2 V one time, 0.6 V the next time, 0.7 V the third time. So if you signal is constant, and you sample it this way many times, and then quantize all of them on you one-bit A-to-D, you end up with a bunch of zeros and ones. If you then average all these zeros and ones, you can get a number that will be far closer to the signal value (0.4 V), even if your A-to-D is only one-bit. The key though is that you need to be able to average it at the end (a low-pass filtering process) , and that your signal can stay constant long enough for you to make many samples. The banding issue you described in the video sounds a bit like quantization issue, and it makes sense that adding noise should be able to help resolve it. However, I suspect it probably works best for slow moving scenes, and that somewhere towards the end of the workflow there must be a filtering process because otherwise you would see noise instead of bands (like you said in the video). I doubt you will be able to find a solution that works every time.
@makkumeda85
@makkumeda85 5 жыл бұрын
I would argue that the correct way to refer to it is 8-bit since it intends 8 bits per channel which is the constant here. Once you add an alpha channel what you call 24-bit becomes 32-bit but it is still an 8-bit per channel image and if you start calling that 32-bit people will think you are talking about 32-bit float images and they will hate you. I also wonder if working in a 32-bit or 16-bit workspace (if Premiere allows it) would solve some of these problems and if there is any difference once you render it to 8-bit h264 mp4 files. Thurther more delivering a less compressed format (like a prores or h265) to youtube would alleviate the double compression problem, but I do understand that file size might be the problem and maybe a higher bitrate h264 would be the same thing. Finaly the difference in "quality" your youtube screenshots might be due to the fact that that particular frame was more distant from a "key frame". My understanding is that frame quality degrades the further away it is from the previous key frame.
@rkan2
@rkan2 5 жыл бұрын
How about the color profile thingymagic?
@prich0382
@prich0382 4 жыл бұрын
Banding is more noticeable in darker colours as for example the difference between value 1 and 2 is large but the difference between 254 and 255 is small
@tiarkrezar
@tiarkrezar 5 жыл бұрын
The only real answer here is to use higher color precision, that's why the high10 (10bit) profile worked so much better when you tried exporting that. That and use dithering at every step in the pipeline when you're quantizing to a lower precision. However, the problem with adding any sort of dithering/noise to your video is, random noise takes more information to encode. Which means the encoder is going to have to make a difficult choice: either put more bits into the noise and sacrifice quality elsewhere or decide that the noise isn't important enough and discard some of that high-frequency information (which you can see in your experiments when uploading to YT). Fully solving this problem would probably require some changes at the codec level. If the encoder could properly recognize gradients and tell the decoder to add dithering to the low-frequency components at the end, without having to spend any bitrate budget on actually encoding the dithering noise, it could improve the situation significantly. Don't know if any modern codecs are clever enough to do this sort of thing yet, but it looks like H264 and VP9 aren't there yet.
@Quetzalcoatl0
@Quetzalcoatl0 5 жыл бұрын
I like how you removed the date on the task bar.
@GriffinBaxter
@GriffinBaxter 5 жыл бұрын
is it possible that 'youtube bitrate changing in same resolution' thing is the difference between the vp9 and avc1 codecs? not even sure if both codecs can be displayed from the same video though
@Vykori
@Vykori 5 жыл бұрын
By the way, the noise is like imitating the effects of dithering. If you can achieve real dithering with a higher-bit source image, then dithering is a great trick to have up your sleeve.
@humANdroid95
@humANdroid95 5 жыл бұрын
Hey, Taran, IIRC, High10 allows 10bit colour encoding. Also it allows better chroma subsampling, like 4:2:2 and 4:4:2 instead of typical 4:2:0, used in all other profiles, but I may be incorrect as there are three different (sub?)profiles of High10 in H.264 standard. I suppose youtube will downconvert such footage and it won't be of much help for LTT or for youtubers in general, but this encoding profile is widely known and used in Anime community to preserve colours and prevent compression artefacts.
@Claude950
@Claude950 3 жыл бұрын
Congratulations, you just created a new kind of video grain. I'd call it something like pixel grain, digital grain, anti mp4 grain?
@aarocka11
@aarocka11 5 жыл бұрын
You should twitch stream the editing of one video once a week. I find this very interesting.
@TiagoTiagoT
@TiagoTiagoT 4 жыл бұрын
Regarding the noise, what if you make it so the noise only affects the pixels by at most 1 or two levels, randomly nudging the colors towards and away from the banded levels?
@horrorspidey7033
@horrorspidey7033 5 жыл бұрын
Man you are awesome
@aleksanderhaugdal9361
@aleksanderhaugdal9361 5 жыл бұрын
I wanna try rendering to prores and exporting in handbreak or fcpx and see if that makes a difference, does uploading prores directly maybe make a difference?
@linawhatevs8389
@linawhatevs8389 5 жыл бұрын
(around 45:30) Is there no function for "in the region specified by a black/white matte layer, just grab the nearest pixel outside that region"?
@mcpeko5773
@mcpeko5773 3 жыл бұрын
Superband! 😎 Love this. I'm trying to get people to render their otherwise great music videos without banding. I set Vegas to 32 bit float to get smooth gradients. Does not make files larger either.
@Liggliluff
@Liggliluff 5 жыл бұрын
Is this "super banding" thing going to be a tradition in file formats, or will they stop? In 10 bit video files, will this still be a thing? By bringing out a new format, we have the chance to re-define and fix stuff, and not rely on old bad things.
@tankionlinemarkos
@tankionlinemarkos 5 жыл бұрын
So in the end the solution is to just split the said gradient into smaller "pieces" barely noticeable to the human eye but not to the h.264 compression? Yes that grid isn't really noticeable if you're watching a video, unless you are looking for it but the compressor sees the image (in our case gradient) split in different pieces of the "grid" and doesn't just figure "hey this is a very big compression-able gradient" but instead treats it as smaller individual parts I hope that makes sense sorry about my english :)
@MaidLucy
@MaidLucy 5 жыл бұрын
high 10 is actually 30 bit color that's why there is no banding. and there seems to happen some dithering in order to encode it in this higher color-range which doesn't happen in 24 bit color mode as Meowchin stated
@gregkrazanski
@gregkrazanski 5 жыл бұрын
i love watching this video
@gregkrazanski
@gregkrazanski 5 жыл бұрын
if you applied color noise it would work a lot better than monochromatic noise like you used. you could get away with a lower opacity and it wouldn't be as visible. after effects actually has an effect called "HSL noise" that maybe premiere has where you can adjust hue, saturation and luma noise all independently, and it doesn't evolve over time. REALLY good for getting rid of banding
@killll
@killll 5 жыл бұрын
@Taran Van Hemert , Why did you put win scaling on 100% for this tutorial?
@jacobbrown7442
@jacobbrown7442 5 жыл бұрын
your a Premiere god, Love it
@yingste
@yingste 5 жыл бұрын
So is the better solution switching to 10 bpc color? Does that standard still have those issues?
@klimenkodr123
@klimenkodr123 5 жыл бұрын
What LTT video is this Ubuntu footage for? I'm curious Edit: gaming on Linux part 2. Had to watch to 32:13 :D
@VisualBasic6
@VisualBasic6 5 жыл бұрын
Nice !
@rafaelkrug3040
@rafaelkrug3040 3 жыл бұрын
Don't know if it's already answered but, can you share your export settings for this video?
@GarretSpenstHGF
@GarretSpenstHGF 4 жыл бұрын
have you tried h265 encoding? Does KZbin still create the banding from other file formats than h264?
@Tedd755
@Tedd755 5 жыл бұрын
49:40 "I kinda feel like the fuzzy beaver is my spirit animal" Giggity
@coin777
@coin777 3 жыл бұрын
That's only limited to mp4 container? Does it occur in mov?
@SuperSmashDolls
@SuperSmashDolls 5 жыл бұрын
28:02 The reason why bar textures like that compress really well is because every video codec ever (save for some weird experimental ones) is literally made up of those textures. Each frame is cut up into blocks and then a thing called Fast Fourier Transform (or FFT) is run to break up the block into an intensity and phase value for an 8x8 grid of 2D sine functions. This actually doesn't change the image, but it lets us throw out most of the functions' values (quantization) without significantly damaging the resulting image. So with Linus's face, the encoder throws out all but a handful of the lowest-frequency sines and still gets something that looks like Linus.
@TaranVH
@TaranVH 5 жыл бұрын
twitter.com/TaranVH/status/1056080543647903745
@TaranVH
@TaranVH 5 жыл бұрын
I thought it was DCT, Discrete cosine transform.
@SuperSmashDolls
@SuperSmashDolls 5 жыл бұрын
​@@TaranVH FFT is an algorithm for computing DFT (Discrete Fourier Transform), which is related to DCT (Discrete Cosine Transform). The difference between FFT/DFT and DCT is that the latter produces cosines only rather than sines of arbitrary phase. In practice most codecs post-JPEG will specify a transform similar to DCT but not mathematically identical. The main difference between a "correct" DCT and what the MPEG specs say doesn't matter for conceptual overviews, but the reason it's there is primarily so that integer-only implementations can generate correct results.
@aleksanderhaugdal9361
@aleksanderhaugdal9361 5 жыл бұрын
You can do nearest neighbour with draft mode in after effects.
@XQzmeeMusic
@XQzmeeMusic 5 жыл бұрын
So, did/should you use it in techquikie kind of video's?
@lovecastle7154
@lovecastle7154 5 жыл бұрын
Could this information be used to prove the ownership of videos? Almost like a watermark that shows itself only when rerendered?
@TV4ELP
@TV4ELP 3 жыл бұрын
The h264/h265 levels don't really do anything by themselves. They just restrict you in what settings you can use. Max Bitrate and color space etc. They were intended so that you can export to a device supporting a specific level and being a 100% in the capabilities of that device. If you leave it on auto/unrestricted, it will just use the closest which fits within your encoder settings. For example a low level wouldn't even let you export in 50mbit for example or in 4k at all. It just won't allow you, although it can do that a hundred percent, the level effects literally nothing for the player.
@MetroidChild
@MetroidChild 5 жыл бұрын
Maybe what you need is an RGB noise image (instead of straight black/white)? That would blend the colours as well instead of just the luminosity, I think that might be worth a shot. EDIT: Should have continued watching lol, also the random color cycling on grayscale footage is probably due to chroma subsampling, these usually work on a macro block basis as well so you would expect to see lots of wonky behaviour here if the gradient transitions in hue, a vertical RGB gradient with the intensity in the horizontal direction (+ the grayscale one) would give a more comprehensive view (gonna make one now).
Laser eye surgery made my vision WORSE
26:45
Taran Van Hemert
Рет қаралды 862 М.
HOW THE F*** DOES SCREEN CALIBRATION WORK? - Tutorial
55:16
Taran Van Hemert
Рет қаралды 92 М.
HAPPY BIRTHDAY @mozabrick 🎉 #cat #funny
00:36
SOFIADELMONSTRO
Рет қаралды 15 МЛН
100❤️
00:19
MY💝No War🤝
Рет қаралды 22 МЛН
Fix Color Banding In After Effects Gradients (This REALLY Works!)
12:23
John The Video Guy
Рет қаралды 31 М.
5 Bizarre Problems That Affect ONLY OLED TVs, & How to Fix Them
11:30
Color isn't what you think.
7:01
Taran Van Hemert
Рет қаралды 201 М.
Photoshop color is STILL broken!
12:35
Taran Van Hemert
Рет қаралды 98 М.
9 Cuts Every Video Editor Should Know | Filmmaking Tips
5:21
Shutterstock Tutorials
Рет қаралды 4,2 МЛН
All you need to know about BitRates and Color Banding
3:06
Mixing Different Framerates - The Ultimate Guide
1:26:51
Taran Van Hemert
Рет қаралды 126 М.
COLOR CORRECT Like A PRO
13:10
Matti Haapoja
Рет қаралды 2,1 МЛН
This upscaling tool is amazing! - Waifu2x tutorial
28:34
Taran Van Hemert
Рет қаралды 594 М.
Police Pea Pea and Food Vending Machine #peapea  #cartoonforkid
0:44
PeaPea Wonderland
Рет қаралды 35 МЛН
БУДЕТ ЗНАТЬ КАК ОБИЖАТЬ БАБУШКУ
0:18
МАКАРОН
Рет қаралды 2,1 МЛН