View Full Version : Colored bar in h264 video
dialsc
29th December 2010, 10:20
hello,
i have a silly problem. i demuxed the h264 video stream from a bluray and converted it using megui into a h264 encoded mp4 to down size it. the video stream demuxed is the raw one from the bluray, unchanged. that's the way i normally do it.
unfortunately this time i encounter a problem. a colored bar occurs in the resulting video, see the image. has anyone an idea what could be the root of this problem?
thx,
dialsc
example: http://gallery.das-online.org/d/18640-1/coloredBarProblem.jpg
pandy
29th December 2010, 13:51
looks like corrupted stream - verify stream for presence of errors.
dialsc
29th December 2010, 15:12
well, the original video stream plays fine, without such errors. do you mind giving me a hint on how to verify it?
nm
29th December 2010, 15:25
well, the original video stream plays fine, without such errors.
You mean the ripped stream? Which source filter are you using in AviSynth?
LoRd_MuldeR
29th December 2010, 15:37
well, the original video stream plays fine, without such errors. do you mind giving me a hint on how to verify it?
How did you check the "original" stream? If you are using Avisynth input, you should check the identical AVS file that are going to feed into x264. Use VirtualDub for that purpose.
And what H.264 decoder did you use to review the x264-encoded stream? Broken decoders, such as CoreAVC 1.x, can easily result in decoding artifacts from valid streams...
dialsc
29th December 2010, 16:18
hoo, a lot of questions. i'll try to answer them... ;)
i used tsMuxeR to demux the content of a m2ts file which i originally created from a bluray using tsMuxeR, too. that gave me - beside other files - a .h264 file.
i used vlc to play the original m2ts and it does not show the colored bars but look fine. i haven't played the .h264 file because i simply do not know how ;)
my script which i use in megui as input is quite simple. it uses the .h264 file as the source. that is what i allways do:
LoadPlugin("C:\Program Files (x86)\MeGUI\tools\dgavcindex\DGAVCDecode.dll")
AVCSource("D:\BluRays\theMovie\theMovie.track_4113.dga")
#deinterlace
crop( 0, 142, 0, -142)
#resize
#denoise
LoRd_MuldeR
29th December 2010, 16:25
i used vlc to play the original m2ts and it does not show the colored bars but look fine. i haven't played the .h264 file because i simply do not know how ;)
The fact that your original stream plays okay in VLC doesn't tell us anything :rolleyes:
Please use the exactly same AVS file that you are going to feed into MeGUI/x264 and open it in VirtualDub (or another suitable tool). Then check for artifacts carefully!
(DGAVCDecode is likely to be the problem here. This Plugin is not developed any more and thus uses an extremely outdated libavcodec version...)
roozhou
29th December 2010, 16:40
You can directly encode from the .m2ts file without demuxing it to .h264. AFAIK x264 should be capable of reading .h264 files as well. You don't have to use avs and dgavcdec to do this.
RunningSkittle
29th December 2010, 20:34
You can directly encode from the .m2ts file without demuxing it to .h264. AFAIK x264 should be capable of reading .h264 files as well. You don't have to use avs and dgavcdec to do this.
only if x264 compiled with lavf or ffms:)
dialsc
29th December 2010, 22:45
ha, using the m2ts directly as input looks like to solve the problem. i did a short test encoding this way and the colored bars are not there anymore. THANK YOU SO MUCH ;)
one little question: can i always use the m2ts directly as input or just if it contains a h264 stream?
Blue_MiSfit
30th December 2010, 04:54
You can always use the m2ts directly, or you can remux to another container.
I personally prefer to use eac3to to do two things - A) Extract / transcode audio stream(s) and subtitles, B) Remux video to MKV.
The reason for this is that ffms2 (one of the methods of decoding video directly into x264 or into AviSynth) works very well with MKV containers, but can can can have issues with MPEG Transport Streams (of which m2ts is a flavor). H.264 elementary streams can be tricky, and most players don't support them directly. Having a video inside a proper container is also very handy for working in AviSynth, because doing so ensures good seek performance. This is sometimes not the case with an elementary stream. I occasionally peek at sources before encoding them, and frequently compare source to encoded result. Good seek performance is a big deal in these types of applications!
Thanks to eac3to's parallel processing, this remux can happen at the same time that you're extracting / transcoding audio streams, so it basically doesn't take any extra time..
Derek
dialsc
30th December 2010, 11:55
hi, after encoding the video unfortunately i'm facing a further problem. the video stutters and having a look to the resulted mp4 file with mediaInfo showed me that the fps is 19.181 but it should be 23.976.
the avi script created by megui has this value set:
DirectShowSource("E:\BluRays\theMovie\theMovie.m2ts", fps=23.976, audio=false, convertfps=true)
LoadPlugin("C:\Program Files (x86)\MeGUI\tools\avisynth_plugin\TIVTC.dll")
TDecimate(cycleR=1)
crop( 0, 142, 0, -142)
#resize
#denoise
any idea why this happens?
thx,
dialsc
roozhou
30th December 2010, 12:00
@dialsc
23.976 * 4/5 = 19.181
dialsc
30th December 2010, 12:02
@roozhou
please accept my appologies but also this callculation looks correct to me i do not know what you want me to say with it... ;)
according to this post: http://forum.doom9.org/showthread.php?t=153585 one should not use the TDecimate parameter in the aviScript if the input source is 23.976 FPS. i realy do not know enough about the whole avi/h264/encoding stuff to decide if i should or not. if i should not, could it be that this is a bug of megui and i'd better remove it from the script?
furthermore in that post one recommends not to use DirectShowSource if it's possible to avoid but use the megui's built-in File Indexer. isn't that the opposite of what was recommended here?
nm
30th December 2010, 12:34
@roozhou
please accept my appologies but also this callculation looks correct to me i do not know what you want me to say with it... ;)
TDecimate(cycleR=1) removes 1 of every 5 frames.
could it be that this is a bug of megui and i'd better remove it from the script?
Looks like a bug if frame decimation was added automatically.
furthermore in that post one recommends not to use DirectShowSource if it's possible to avoid but use the megui's built-in File Indexer. isn't that the opposite of what was recommended here?
If "File Indexer" means DGAVCIndex, it's not the way to go. I'd try FFMS2 as Blue_MiSfit suggested, or maybe DSS2 if you happen to have a fast DirectShow H.264 decoder such as DiAVC installed and want to use that.
RunningSkittle
30th December 2010, 19:06
can have issues with MPEG Transport Streams (of which m2ts is a flavor).
Wasnt this fixed a while back?
dialsc
30th December 2010, 19:56
just to give a feedback. removing TDecimate(cycleR=1)
solved the problem with the wrong fps... ;)
Plorkyeran
1st January 2011, 00:47
Wasnt this fixed a while back?
Many of the issues have been fixed but there are still a few remaining.
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.