I have a DVD I am scaling and the DVD is rec.601 if I am not mistaken. The problem here is that even if I flag the video as rec.601 in h.264 settings, it still plays back with incorrect colors. I believe the flag is being ignored by the player and it is deciding to choose the colorspace based on resolution.
I am attempting to adjust the colorspace with this and no clamping
It works, but I am noticing a nasty side effect I am not liking. It's adding in artifacts everywhere over the video.Code:ColorMatrix(hints=true, mode="rec.601->rec.709", clamp=0, threads=0)
This does not happen if I use RGB, but I need to keep it in YV12 for TV playback I believe. My encoder even tries to tell me to make it YV12 when adding to queue.
Is there any alternative method of conversion out there via avisynth usage? Is there a problem if it is adding in artifacts like this?
+ Reply to Thread
Results 1 to 7 of 7
Last edited by killerteengohan; 8th Sep 2019 at 07:31.
why clamp=0, wouldn't clamp=1 no be the saver way to go?users currently on my ignore list: deadrats, Stears555
Your source video isn't interlaced, right? (in case it is, make sure to set interlaced=true)users currently on my ignore list: deadrats, Stears555
Your telling me things I already know. Thanks, but what I am looking for is an answer to my original question.
Just wanted to make sure you didn't make some common mistake since you didn't share much info.
A single line which uses hints=true suggest you use MPEG2Source as Source filter, but it doesn't really say whether:
a. your source really is Rec.601
b. whether you it's interlaced, telecine, mixed, whatever..
-> No problem, I shut up and whish you luck finding the cause of the problem.
Cu Selurusers currently on my ignore list: deadrats, Stears555
I don't know what artifacts you are referring to exactly but maybe try dither tools:
Dither_convert_8_to_16 () Dither_resize16 (720, 480, csp="YV24") # change to the desired dimensions Dither_convert_yuv_to_rgb (matrix="601", output="rgb48y", lsb_in=true) r = SelectEvery (3, 0) g = SelectEvery (3, 1) b = SelectEvery (3, 2) Dither_convert_rgb_to_yuv (r, g, b, matrix="709", lsb=false, mode=0, output="YV12")
Possibly the internal filters of AviSynth+ are also capable of producing better quality. I haven't evaluated this. I imagine something like:
ConvertBits(16) ConvertToRGB(matrix="Rec601") ConvertToYV12(matrix="Rec709") ConvertBits(8, dither=0)
Note about screenshots: for display and often screenshot creation you convert from YUV to RGB. If you have YUV 601 and YUV 709 but use the very same conversion path to RGB they will look different. This doesn't necessarily mean your script or video encode are wrong because these usually don't involve that conversion.