View Single Post
Old 26th November 2020, 00:56   #7  |  Link
poisondeathray
Registered User
 
Join Date: Sep 2007
Posts: 5,370
Quote:
Originally Posted by HDVProjection View Post
Thanks for the response. I have in fact been re-encoding first to a high-def h264 beforehand, simply because CS6 has started displaying some importer difficulties with the prores files we've been getting (seems to be getting worse every year, I'm assuming because of codec changes and CS6 no longer being supported). Then I drop that mp4 into my CS6 timeline and straight to dynamic link --> Encore.
What you should be doing is encoding to a BD compatible elementary stream (no container), then importing that directly into Encore (or any authoring software) .


Quote:
The DCPs never have these issues (whether I make them myself with OpenDCP or we shop it out). Would it be easier and make more sense just to use the mp4 I'm creating for the compare? That is technically the source file, after all.
You're assuming the MP4 file is valid in the first place (it might not be) . Did you encode to a I-frame version ? That might reduce your chances of errors if you stick with your current process


Quote:
Can I get just a bit more hand-holding? What's the syntax for the ffmpeg psnr? Let's say the source is "MyFile.mp4" and the blu-ray stream is "00000.m2ts". Also, do I need to put these two in the same folder or anything? Finally, can I turn off any audio checks, have it just focus on picture consistency? Thanks again.

for ffmpeg, it's important to normalize the container timebase (e.g. mp4 vs. mkv vs. m2ts might have different timebases), or else you can be comparing different frames

You can explicitly specify the paths in the command line, or if the files are in the same directory, and you open the cmd at that directory, you can omit paths

eg. for a 23.976 BD (24000/1001),
if we assume "MyFile.mp4" is the source (let's assume it's ok or now...it might not be)

Code:
ffmpeg -r 24000/1001 -i "PATH\00000.m2ts" -r 24000/1001 -i "PATH\MyFile.mp4".mkv -lavfi  "[0:v]settb=1/AVTB,setpts=PTS-STARTPTS[main];[1:v]settb=1/AVTB,setpts=PTS-STARTPTS[ref];[main][ref]psnr="stats_file=ffmpeg_psnr.log"" -f null -

The problem is you get a per frame reading for every frame. You can't just eyeball it and "ah-ha" tell that certain frames are bad. The PSNR should be highish for every frame ,but should drop considerably on a mismatched frame . There might be some ways in python or excel/spreadsheet to automatically "cull" the values . If you plot them you can easily see dips

Or try one of the avisynth methods above, they only print lines which meet the criteria, so the frame numbers are already "culled"
poisondeathray is offline   Reply With Quote