A pre-upload check like this is cheap insurance, since the platform transcode only makes existing problems worse. One addition worth scripting is ffprobe on avg_frame_rate versus r_frame_rate, because a variable frame rate file from a phone can pass a quick look and still drift out of sync after re-encoding. Running the ebur128 filter for integrated loudness and true peak in the same pass also catches the clipping case before upload.
Thanks, that's a good catch. The script only checks r_frame_rate right now, so a variable frame rate phone clip could slip through. Comparing it against avg_frame_rate and flagging any mismatch is a cheap extra check, and it fits right next to the ebur128 pass that's already there.
StackShortlist
Proof Over Promises.
A pre-upload check like this is cheap insurance, since the platform transcode only makes existing problems worse. One addition worth scripting is ffprobe on avg_frame_rate versus r_frame_rate, because a variable frame rate file from a phone can pass a quick look and still drift out of sync after re-encoding. Running the ebur128 filter for integrated loudness and true peak in the same pass also catches the clipping case before upload.