diff --git a/script.html b/script.html index 3fea10e..fe1c37d 100644 --- a/script.html +++ b/script.html @@ -939,7 +939,12 @@ function pzPaint(lines) { if (!PZ.length) { el.innerHTML = ""; return; } var total = PZ.reduce(function (a, b) { return a + (b.seconds || 0); }, 0); var bought = segs.length * 8; - var over = PZ.filter(function (x) { return x.over; }); + // Spoken here, but filmed by Veo, which was asked to over-enunciate so the + // mouth is readable and therefore runs slower. Measured on a real clip: + // 17 words took 7.02s filmed against about 5.7s spoken, so ~1.25x. + var FILMED = 1.25; + var filmed = total * FILMED; + var over = PZ.filter(function (x) { return (x.seconds || 0) * FILMED > 8.0; }); el.innerHTML = '
' + 'opening still' + '' + '' - + PZ.length + ' lines · ' + total.toFixed(1) + 's spoken, ' - + bought + 's of shots' - + (total > bought - ? '
Spoken, this runs ' - + total.toFixed(1) + ' seconds but only ' + bought + ' seconds are being ' - + 'filmed. Something will be cut off. Shorten the words, or buy more length.
' - : (total < bought * 0.85 - ? '
Spoken, this runs only ' - + total.toFixed(1) + ' seconds across ' + bought + ' seconds of video, ' - + 'so roughly ' + ((bought - total) / PZ.length).toFixed(1) + ' seconds of ' - + 'every shot is silence. That is where trailing sound effects and echo come ' - + 'from: the model is handed a gap and fills it. More words per shot is the fix.
' + + PZ.length + ' lines · ' + total.toFixed(1) + 's spoken, about ' + + filmed.toFixed(1) + 's once filmed, against ' + bought + 's of shots' + + (filmed > bought + ? '
Filmed, this would run about ' + + filmed.toFixed(1) + ' seconds but only ' + bought + ' seconds are being ' + + 'shot. Something will be cut off. Shorten the words, or buy more length.
' + : (filmed < bought * 0.88 + ? '
Filmed, this would run about ' + + filmed.toFixed(1) + ' seconds across ' + bought + ' seconds of video, ' + + 'leaving roughly ' + ((bought - filmed) / PZ.length).toFixed(1) + ' seconds ' + + 'of silence at the end of every shot. That is where trailing sound effects ' + + 'and echo come from: the model is handed a gap and fills it. More words per ' + + 'shot is the fix.
' : '')) + (over.length ? '
Shot' + (over.length > 1 ? 's ' : ' ') + over.map(function (x) { return x.index; }).join(", ") - + ' will not fit in eight seconds: ' - + over.map(function (x) { return x.index + " runs " + x.seconds.toFixed(1) + "s"; }).join(", ") + + ' will not fit in eight seconds once filmed: ' + + over.map(function (x) { return x.index + " would run " + (x.seconds * FILMED).toFixed(1) + "s"; }).join(", ") + '. Trim those lines before filming.
' : '') + '
' + PZ.map(function (x) { + var f = (x.seconds || 0) * FILMED; return '
' - + 'shot ' + x.index + ' · ' + x.seconds.toFixed(1) + 's' - + (x.over ? ' over' : '') - + ' · ' + esc(x.line.slice(0, 64)) + '
'; + + 'shot ' + x.index + ' · ' + x.seconds.toFixed(1) + 's spoken, ~' + + f.toFixed(1) + 's filmed' + + (f > 8 ? ' over' : '') + + ' · ' + esc(x.line.slice(0, 60)) + '
'; }).join("") + '
';