Steven, I now use, following your advices:
nice -19 lav2yuv record_01.avi | y4mshift -n -2 -b 12,8,744,560 | y4mscaler -I sar=1:1 -O sar=59:54 -O size=704x576 -S option=sinc:6 | yuvmedianfilter -T 3 | yuvdeinterlace -f | mpeg2enc -f 8 -V 500 -c -D 10 -E -10 -q 2 -K tmpgenc -o record_01_cvs.m2v I use the -f 8 flag with mpeg2enc, thanks to your advices! The quality is fine. However, I have a black border all around the picture. It seems to be ok for making a DVD, as you explained. However, for the moment, the video I work on right now is intended to be displayed on a computer monitor. Therefore, I need the picture to have a 4/3 aspect, without any border. I'm working on it. But if you have any suggestion... ;-) I re-reading the man pages of y4mscaler... Thank you. Nicolas. On Wed, Apr 20, 2005 at 03:35:41PM -0700, Steven M. Schultz wrote: > > On Wed, 20 Apr 2005, Nicolas wrote: > > > Damn, y4mscaler and mpeg2enc are driving me crazy... =( > > Just takes a little practice :) > > > Thanks for pointing me to yuvdeinterlace, Steven! I now use: > > Welcome. > > > nice -19 lav2yuv record_01.avi | y4mshift -n -2 | y4mscaler > > -I active=744x560+12+8TL -O size=744x560 -S option=sinc:6 | > > yuvmedianfilter -T 3 | yuvdeinterlace -f | mpeg2enc -f 0 -V 500 -c -D 10 > > -E -10 -q 2 -K tmpgenc -o record_01_cvs.m2v > > > However, as you see, I had to use the -f 0 flag for mpeg2enc. If I use > > the -f 8 flag as I did before, I have that error: > > **ERROR: [mpeg2enc] Horizontal size is greater than permitted in > > Correct - you can't put 744x560 on a DVD. For 625line ("PAL") the > valid frame sizes for a DVD are: 720x576, 704x576, 352x576 and > MPEG-1 352x288. No other sizes are valid. And 560 lines is not a > valid number of lines for PAL. > > http://www.dvddemystified.com/dvdfaq.html#3.4 > > > And then it stops. > > As it should ;) If you tell mpeg2enc it's producing output for a DVD > then it will enforce the DVD limits on the frame size. > > > I need: > > - a good quality > > Then don't deinterlace :) Or rather, if the DVD will be played > on TV sets then leave it interlaced since almost all TV sets are > interlaced. OH, and as I mention again later on TVs overscan so > you will not see the edges that you're trying to crop. > > So you will degrade the image slightly by upscaling 560 lines to 576. > Upscaling introduces no new information, it has to fabricate the new > number of lines by (basically) interpolation. You'll loose some detail, > the image will be a little blurrier/softer. > > > - a cropped video, with no black borders > > Be careful to take into account the fact that video pixels aren't > square. For PAL the pixels have an aspect of 59:54 (they are slightly > wider than they are tall). MJPEG cards product square pixels - that > is why you have a 768x576 frame - 768x576 with 59:54 pixels is the > same as 704x576 using 59:54 pixels! > > Refer to: http://www.mir.com/DMG/aspect.html > > In particular the first section with the formula: > > width DAR > -------- = ----- > height SAR > > DAR (Display Aspect Ratio) is probably the usual 4:3, SAR for PAL is > 59:54 and height must be 576. Solve for 'width' (and round up to > the next multiple of 16). > > Or you just leave the math to y4mscaler ;) See below. > > > there're some very large green blocks on the right border of the > > picture. Moreover, there're some parts of the image (with a lot of > > details) which are "blocky" > > Probably because you 1) didn't specify a bitrate and the default is > very low (~1152Kb/s) and 2) -f 0 is generic MPEG-1 (not MPEG-2). > > Then too 744 is not a multiple of 16 and encoders really prefer having > the dimensions be a multiple of 16 (which 720, 704, 352 are - so is > 576). > > > How can I crop my pictures using y4mscaler? I tried, as given by Steven: > > y4mscaler -O sar=src size=704x480 > > > > But that does not produced the expected result... > > That's because that was only an example. You were expected to put > in appropriate numbers for your needs (PAL, input framesize, etc) :) > I use that step as a final crop before going into the encoder. > > Something like this will be a LOT closer to what you need (but I have > not tested it): > > y4mscaler -I active=744x560+12+8TL -I sar=1:1 -O sar=59:54 -O size=704x576 > > But you really don't want to do that... > > That will degrade the image because you're cropping the top > and bottom 8 lines (total of 16) and then scaling up 560 to 576 lines. > > But y4mscaler will do The Right Thing to preserve the aspect ratio. > > On a TV set (which others may view the DVD on) the top and bottom > black bars will NOT be seen due to overscan. TVs lose between 5 and 10% > of the edges. > > A better way to handle the noise in the borders is to turn them to > pure black but leave them present. > > Far better to do something like this using the original full 768x576 > frame that you captured, blacken the top 8 and bottom 8 lines BUT > LEAVE THEM PRESENT - you must have 576 lines for PAL, not 560! > > Use the '-b' option of y4mshift to put black on the borders. Something > like "-b 12,8,754,560". That is what I do for analog captures - it > blackens the VCR noise/junk in the borders and allows the encoder > to use fewer bits to encode the border areas. > > The end commands would be something like > > lav2yuv ... |y4mshift -n 2 -b 12,8,744,560 | \ > y4mscaler -I sar=1:1 -O sar=59:54 -O size=704x576 -S option=sinc:6 | > ... > > What you can NOT do is arbitrarily pick your size and then scale > the two dimensions to fit the frame both horizontally and vertically. > You'll mangle the aspect ratio that way (people will be too skinny or > too fat and circles will not be round). The number of lines is fixed > at either 576 or 288, the two aspect ratios are fixed (you can not > change them as desired) at 4:3 and 59:54 (or 16:9 and 118:81). > > If you're making DVDs then there are a lot of restrictions that have > to be observed. For computer only playback the restrictions are fewer, > you can set your frame sizes as desired - but for DVDs the choices > are few and specific and govern how you have to crop and scale the > image data. > > Cheers, > Steven Schultz > > > > ------------------------------------------------------- > This SF.Net email is sponsored by: New Crystal Reports XI. > Version 11 adds new functionality designed to reduce time involved in > creating, integrating, and deploying reporting solutions. Free runtime info, > new features, or free trial, at: http://www.businessobjects.com/devxi/728 > _______________________________________________ > Mjpeg-users mailing list > Mjpeg-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/mjpeg-users > -- --- conti / OxStOnE -------------- O ----- Z750 & Linux ----------- ._ /\_> ------- Powered -------------- (x)> (x) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click _______________________________________________ Mjpeg-users mailing list Mjpeg-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mjpeg-users