<div dir="ltr"><div><div><div><div><div>Thanks everyone, a lot of great responses in this discussion, and I certainly appreciate the help!<br><br><br></div>Mike Stucky:<br></div>I ran some tests with a modified version of your update, omitting the frame rate specifier and using yadif=1:-1:1.   This worked great on interlaced SD content... but it failed on my progressive HD sample.  I gave it a progressive-scan 1280x720 59.940 fps input, and got a progressive scan 1280x720 output at 119.880 fps!    So that third yadif flag, "deint", which I set to 1 meaning "Only deinterlace frames marked as interlaced" did not do as I had expected.   'mediainfo' correctly identifies the source video as progressive... so I'm not quite sure why that didn't work?  (In other words, what does "frames marked as interlaced" actually mean for MPEG2 content within ffmpeg?) <br><br><br></div>Dennis:<br></div>Thanks for the seektable / seeking explanations!    <br>I'll add -g 120 to my parameter list to give more frequent but a reasonable number of keyframes, and try your suggestion for the scenecut threshold.<br></div><div>The '-movflags faststart' part is interesting, and definitely sounds beneficial for my usage, so I'll add that one too.   The documentation says it can take a while... have you seen a significant impact to encoding speed from that option?<br></div><div>Thanks!<br><br><br></div><div>Mike Perkins:<br></div><div>Good information.  Hopefully things should be at least a *little* easier for the players to sort out, as I should ultimately end up not needing any deinterlacing at playback.<br><br><br></div><div>Michael Wisniewski:<br></div><div>Thanks for the script.  I'm certainly not tied to ffmpeg, so if something else works better that would be fine with me.  Not being familiar with HandBrakeCLI, it doesn't look like your script does anything specific to manage the deinterlacing.  Does HandBrake do this automatically?  (In particular, does HandBrake do it the "nice" way automatically, instead of ffmpeg's default of just copying fields with artifacts into a progressive container?)<br><br><br></div><div>f-myth-users:<br></div><div class="gmail_extra">Back when I was running an interlaced system end-to-end, I had a huge problem with everything automatically cropping, shifting, and scaling for overscan reasons.  The end result was that even on an output configured to *exactly* the same resolution and refresh rate as the input, I didn't have 1:1 alignment of the scanlines, so everything was blurred from the interpolation and looked bad... and like you said, with visible interlacing artifacts even with interlaced content on an interlaced display.  At the time with the hardware I had, some of these settings couldn't be changed (or couldn't be changed enough).  We upgraded from a CRT TV to a large workstation-grade CRT monitor (high resolution, progressive scan) and it was amazing how much better the exact same recordings looked... even without any smart deinterlacing for playback.<br><br></div><div class="gmail_extra">I later ran an interlaced setup driving a HD CRT projector directly with an analog RGB connection.  For that, I had much better control... but by then I was into the situation where I had a mix of interlaced SD content, interlaced and progressive DVDs, and HD content at various resolutions.  For picture quality, I had the best luck when I deinterlaced and pre-scaled ALL of the content after recording, but then let the display output "re-interlace".   It worked really well, but that was a very specific case.<br><br></div><div class="gmail_extra">While you still have your original files, have you tried letting your scripts fully deinterlace them (not just copy fields like your and my first rounds did), and then playing those progressive files back on your interlaced output?   Depending on your output configuration, the extra lines/fields inserted from the deinterlace may just be discarded with very little quality difference from the original...  but if there is any scaling in the chain, like the overscan provisions, it might solve some of your artifacts when it re-interlaces.<br><br></div><div class="gmail_extra">Good luck!<br></div><div class="gmail_extra"><br><br><br></div><div class="gmail_extra">Thanks again everyone!<br></div><div class="gmail_extra">- Dave<br></div><div class="gmail_extra"><br></div><div class="gmail_extra"><br></div></div>