Use file.ffProbeData?.format?.duration if available

This commit is contained in:
HaveAGitGat 2023-02-12 23:03:18 +00:00
parent db3fecab6a
commit fbed3a0a84
9 changed files with 54 additions and 11 deletions

View file

@ -85,7 +85,16 @@ const plugin = (file, librarySettings, inputs, otherArguments) => {
// Bitrate = file size / (stream duration * .0075)
// Calculations were made based on the formula from this site:
// https://blog.frame.io/2017/03/06/calculate-video-bitrates/
duration = (file.meta.Duration !== `undefined` ? file.meta.Duration : stream.duration) * 0.0166667;
if (parseFloat(file.ffProbeData?.format?.duration) > 0) {
duration = parseFloat(file.ffProbeData?.format?.duration) * 0.0166667;
} else if(file.meta.Duration !== `undefined`){
duration = file.meta.Duration* 0.0166667;
}else{
duration = stream.duration * 0.0166667;
}
currentBitrate = ~~(file.file_size / (duration * 0.0075));
targetBitrate = ~~(currentBitrate / 2);
minimumBitrate = ~~(targetBitrate * 0.7);