feat(recorders): expose XDCAM HD422 bitrate field in growing mode
Growing mode now shows an editable 'XDCAM HD422 bitrate (Mbps)' input (codec stays fixed to the growing MXF path). Default seeds to 50 Mbps for growing, 25 for GPU master. Backend already honored recording_video_bitrate via _buildGrowingOrchestrator -b:v/minrate/maxrate; this surfaces the control in the config modal.
This commit is contained in:
parent
91d0d755a5
commit
2812705d1c
1 changed files with 18 additions and 3 deletions
|
|
@ -614,7 +614,10 @@ function RecorderConfigModal({ recorder, onClose, onSaved }) {
|
||||||
|
|
||||||
const [label, setLabel] = React.useState(recorder.label || '');
|
const [label, setLabel] = React.useState(recorder.label || '');
|
||||||
const [codec, setCodec] = React.useState(recorder.recording_codec || 'hevc_nvenc');
|
const [codec, setCodec] = React.useState(recorder.recording_codec || 'hevc_nvenc');
|
||||||
const [bitrate, setBitrate] = React.useState((recorder.recording_video_bitrate || '25').replace(/M$/i, ''));
|
// Seed bitrate from the stored value; fall back to a mode-appropriate default
|
||||||
|
// (50 Mbps for growing XDCAM HD422, 25 Mbps for a GPU master).
|
||||||
|
const _seedBitrate = (recorder.recording_video_bitrate || (recorder.growing_enabled === true ? '50' : '25')).replace(/M$/i, '');
|
||||||
|
const [bitrate, setBitrate] = React.useState(_seedBitrate);
|
||||||
const [growing, setGrowing] = React.useState(recorder.growing_enabled === true);
|
const [growing, setGrowing] = React.useState(recorder.growing_enabled === true);
|
||||||
const [projectId, setProjectId] = React.useState(recorder.project_id || PROJECTS[0]?.id || '');
|
const [projectId, setProjectId] = React.useState(recorder.project_id || PROJECTS[0]?.id || '');
|
||||||
const [saving, setSaving] = React.useState(false);
|
const [saving, setSaving] = React.useState(false);
|
||||||
|
|
@ -708,8 +711,10 @@ function RecorderConfigModal({ recorder, onClose, onSaved }) {
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* Codec + bitrate only apply to Standard mode (growing is fixed XDCAM). */}
|
{/* Standard mode: GPU codec + bitrate. Growing mode: bitrate only
|
||||||
{!growing && (
|
(codec is fixed to XDCAM HD422 MXF, but the target bitrate of the
|
||||||
|
growing essence is still operator-tunable). */}
|
||||||
|
{!growing ? (
|
||||||
<div className="rec-cfg-grid">
|
<div className="rec-cfg-grid">
|
||||||
<div className="field">
|
<div className="field">
|
||||||
<label className="field-label">Video codec</label>
|
<label className="field-label">Video codec</label>
|
||||||
|
|
@ -729,6 +734,16 @@ function RecorderConfigModal({ recorder, onClose, onSaved }) {
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
|
) : (
|
||||||
|
<div className="field">
|
||||||
|
<label className="field-label">XDCAM HD422 bitrate (Mbps)</label>
|
||||||
|
<input className="field-input" type="number" min="1" max="400" step="1"
|
||||||
|
value={bitrate} disabled={isRec}
|
||||||
|
onChange={e => setBitrate(e.target.value)} />
|
||||||
|
<div className="mono" style={{ fontSize: 10.5, color: 'var(--text-3)', marginTop: 4 }}>
|
||||||
|
Target bitrate of the growing MXF essence. Broadcast XDCAM HD422 is 50 Mbps; raise for higher quality.
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
<div className="field">
|
<div className="field">
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue