@t3lnet/sceneforge 1.0.16 → 1.0.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cli/utils/quality.js +12 -2
- package/package.json +1 -1
package/cli/utils/quality.js
CHANGED
|
@@ -65,7 +65,8 @@ export function getVideoEncodingArgs(options = {}) {
|
|
|
65
65
|
} = options;
|
|
66
66
|
|
|
67
67
|
const preset = QUALITY_PRESETS[quality] || QUALITY_PRESETS[DEFAULT_QUALITY];
|
|
68
|
-
|
|
68
|
+
// Only use crfOverride if it's a valid finite number
|
|
69
|
+
const crf = (crfOverride !== undefined && Number.isFinite(crfOverride)) ? crfOverride : preset.crf;
|
|
69
70
|
const encodingPreset = preset.preset;
|
|
70
71
|
|
|
71
72
|
const args = ["-c:v", codec, "-preset", encodingPreset, "-crf", String(crf)];
|
|
@@ -103,9 +104,18 @@ export function parseQualityArgs(args, getFlagValue, hasFlag) {
|
|
|
103
104
|
);
|
|
104
105
|
}
|
|
105
106
|
|
|
107
|
+
// Parse CRF value, only set if it's a valid number
|
|
108
|
+
let crf = undefined;
|
|
109
|
+
if (crfValue !== undefined && crfValue !== null && crfValue !== "") {
|
|
110
|
+
const parsed = parseInt(crfValue, 10);
|
|
111
|
+
if (!Number.isNaN(parsed)) {
|
|
112
|
+
crf = parsed;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
|
|
106
116
|
return {
|
|
107
117
|
quality: QUALITY_PRESETS[quality] ? quality : DEFAULT_QUALITY,
|
|
108
|
-
crf
|
|
118
|
+
crf,
|
|
109
119
|
codec: SUPPORTED_CODECS[codec] ? codec : DEFAULT_CODEC,
|
|
110
120
|
};
|
|
111
121
|
}
|