yuvkineco(1)

๐Ÿ“ฆ
version 2.2.1 ยท 2 versions
, in arch rolling, fedora 43, fedora 44, nixos 26.05, nixpkgs unstable, opensuse-leap 16.0, ubuntu resolute, ubuntu stonking

๐ŸŒธ NAME ๐ŸŒธ

yuvkineco โ€” bestie, it reverts a 2-3 pulldown movie back to its natural, non-interlaced self ๐Ÿ’…โœจ


๐Ÿฆ‹ SYNOPSIS ๐Ÿฆ‹

yuvkineco [options] [-C PATH]
yuvkineco [options] -O|N PATH

๐Ÿ’œ DESCRIPTION ๐Ÿ’œ

okay so picture this: you've got NTSC video that started life as film and got 2-3 pulled down, and it's giving interlaced mess ๐Ÿ˜ญ yuvkineco reverts it back to the original non-interlaced frames. That's the whole vibe. Restored. Healed. Periodt. ๐Ÿซถ

Input fps code must be 4 (29.97fps), and your output fps code can be anything from 1 (23.97fps) up to 4 (29.97fps). Pick 2, 3, or 4 and yeah, duplicated frames stay โ€” but they get reverted to non-interlaced, so still a win. If your input was already non-interlaced, then all we do is remove duplicate frames. That's it, that's the job. ๐ŸŽ€

ngl tho, interlaced frame detection can absolutely fail sometimes, and it's not its fault, it's the material's fault ๐Ÿ’€ Here's when it lowkey struggles:

  • Pull down cycle changed (video editing) โ€” someone was in there messing around ๐Ÿ™ˆ
  • Low quality pull down
  • Motionless scene โ€” nothing's moving, girl, there's nothing to detect ๐Ÿ˜ญ

If you passed -C PATH, yuvkineco writes the 2-3 pulldown cycle list out to that file โœจ. You can hand-edit that file yourself and feed it back into yuvkineco with the -O or -N option to fix whatever the first yuvkineco run got wrong. Try -C and see the cycle list โ€” genuinely, go look, it's right there. ๐Ÿ‘€

โญ EXAMPLE #1: for 24p movie / automatically โญ

lav2yuv 60i.eli | \
    yuvkineco -F 1 | yuv2lav -f a -I 0 -o 24p.avi

โญ EXAMPLE #2: for 30p/24p mix / automatically โญ

lav2yuv 60i.eli | \
    yuvkineco -F 4 | yuv2lav -f a -I 0 -o 30p.avi

โญ EXAMPLE #3: for 24p movie / check and repair โญ

lav2yuv 60i.eli | \
    yuvkineco -F 1 -C 60i.23c | \
    yuv2lav -f a -I 1 -o take1.avi
glav -F +n take1.avi  # check and edit 60i.23c
lav2yuv take1.avi | \
    yuvkineco -F 1 -N 60i.23c | \
    yuv2lav -f a -I 0 -o take2.avi

โญ EXAMPLE #4: for 24p movie / check and retry โญ

lav2yuv 60i.eli | \
    yuvkineco -F 1 -C 60i.23c | \
    yuv2lav -f a -I 0 -o take1.avi
glav -F +n take1.avi  # check and edit 60i.23c
lav2yuv 60i.eli | \
    yuvkineco -F 1 -O 60i.23c | \
    yuv2lav -f a -I 0 -o take2.avi

โœจ OPTIONS โœจ

yuvkineco accepts the following options, bestie, and every single one of them slays in its own way ๐Ÿ’…:

  • -F FPSCODE โ€” set the output fps code. Default? same as the input, keeping it chill. ๐Ÿฆ‹
  • -C PATH โ€” specify the 2-3 pulldown cycle list file name to write to. ๐Ÿ“
  • -O PATH โ€” specify the cycle list name to read alongside the old yuv stream, so you can retry. ๐Ÿ”
  • -N PATH โ€” specify the cycle list name to read alongside the new yuv stream, so you can repair. ๐Ÿฉน
  • -n LEVEL โ€” specify the noise level of the input (default: 10). Heads up, this one affects both pulldown cycle detection and deinterlacing. Double duty, iconic. ๐Ÿ‘‘
  • -c THRESHOLD โ€” specify the threshold for deciding that the pictures in 2 frames are the same (default: 4). Here's the tea: yuvkineco compares several frames and searches for the pair of frames that contain the same pictures, to decide which frame should be dropped. If THRESHOLD is 0, the pair with the smallest difference gets selected. If it's 16, it selects from pairs whose differences are smaller than the average. Math but make it fashion. ๐Ÿงฎ๐Ÿ’–
  • -i PERMIL โ€” yuvkineco deinterlaces each frame after the 2-3 pulldown reverting process, and this one specifies how much of the pixels being deinterlaced decides whether to use the deinterlacing result or not (default: 10). So if PERMIL is 10 and 1% or more of the pixels got deinterlaced, the deinterlacing result will be used. If it's 0, the deinterlacing result will always be used. If it's 1000, the deinterlacing result will not be used, but the deinterlacing process will still run on all of the frames (unhinged but go off). And if you want to disable the deinterlacing process entirely? specify a negative value. bye ๐Ÿ‘‹
  • -u โ€” set the interlace information in the header of the output to unknown (default: non-interlaced). ๐ŸŽ€

๐Ÿซถ AUTHOR ๐Ÿซถ

yuvkineco was written by Kawamata/Hitoshi โ€” legend behaviour, no cap. ๐Ÿ‘‘

If you have questions, remarks, problems, or you just want to contact the developers, the main mailing list for the MJPEG-tools is:

mjpeg-users@lists.sourceforge.net

For more info, see our website at:

http://mjpeg.sourceforge.net/

๐Ÿ’ซ SEE ALSO ๐Ÿ’ซ


this whole page is brought to you by the MJPEG Tools Team, dated 5 February 2002 ๐Ÿ’– mwah, go revert some pulldown, bestie, you got this ๐ŸŒˆโญ๐ŸŽ€