mirror of
https://github.com/obsproject/obs-studio.git
synced 2024-09-20 04:42:18 +02:00
UI: Add custom muxer settings for ffmpeg-mux
This commit is contained in:
parent
d870bbb643
commit
d4c4a0d1aa
@ -334,6 +334,7 @@ Basic.Settings.Output.MaxRetries="Maximum Retries"
|
|||||||
Basic.Settings.Output.Advanced="Enable Advanced Encoder Settings"
|
Basic.Settings.Output.Advanced="Enable Advanced Encoder Settings"
|
||||||
Basic.Settings.Output.EncoderPreset="Encoder Preset (higher = less CPU)"
|
Basic.Settings.Output.EncoderPreset="Encoder Preset (higher = less CPU)"
|
||||||
Basic.Settings.Output.CustomEncoderSettings="Custom Encoder Settings"
|
Basic.Settings.Output.CustomEncoderSettings="Custom Encoder Settings"
|
||||||
|
Basic.Settings.Output.CustomMuxerSettings="Custom Muxer Settings"
|
||||||
|
|
||||||
# basic mode 'output' settings - advanced section
|
# basic mode 'output' settings - advanced section
|
||||||
Basic.Settings.Output.Adv.Rescale="Rescale Output"
|
Basic.Settings.Output.Adv.Rescale="Rescale Output"
|
||||||
|
@ -667,6 +667,16 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item row="5" column="0">
|
||||||
|
<widget class="QLabel" name="label_420">
|
||||||
|
<property name="text">
|
||||||
|
<string>Basic.Settings.Output.CustomMuxerSettings</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="5" column="1">
|
||||||
|
<widget class="QLineEdit" name="simpleOutMuxCustom"/>
|
||||||
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
@ -1232,6 +1242,16 @@
|
|||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item row="6" column="0">
|
||||||
|
<widget class="QLabel" name="label_9001">
|
||||||
|
<property name="text">
|
||||||
|
<string>Basic.Settings.Output.CustomMuxerSettings</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="6" column="1">
|
||||||
|
<widget class="QLineEdit" name="advOutMuxCustom"/>
|
||||||
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
@ -428,6 +428,8 @@ bool SimpleOutput::StartRecording()
|
|||||||
"SimpleOutput", "FilePath");
|
"SimpleOutput", "FilePath");
|
||||||
const char *format = config_get_string(main->Config(),
|
const char *format = config_get_string(main->Config(),
|
||||||
"SimpleOutput", "RecFormat");
|
"SimpleOutput", "RecFormat");
|
||||||
|
const char *mux = config_get_string(main->Config(), "SimpleOutput",
|
||||||
|
"MuxerCustom");
|
||||||
|
|
||||||
os_dir_t *dir = path ? os_opendir(path) : nullptr;
|
os_dir_t *dir = path ? os_opendir(path) : nullptr;
|
||||||
|
|
||||||
@ -459,6 +461,7 @@ bool SimpleOutput::StartRecording()
|
|||||||
obs_data_t *settings = obs_data_create();
|
obs_data_t *settings = obs_data_create();
|
||||||
obs_data_set_string(settings, ffmpegOutput ? "url" : "path",
|
obs_data_set_string(settings, ffmpegOutput ? "url" : "path",
|
||||||
strPath.c_str());
|
strPath.c_str());
|
||||||
|
obs_data_set_string(settings, "muxer_settings", mux);
|
||||||
|
|
||||||
obs_output_update(fileOutput, settings);
|
obs_output_update(fileOutput, settings);
|
||||||
|
|
||||||
@ -711,6 +714,8 @@ inline void AdvancedOutput::SetupRecording()
|
|||||||
{
|
{
|
||||||
const char *path = config_get_string(main->Config(), "AdvOut",
|
const char *path = config_get_string(main->Config(), "AdvOut",
|
||||||
"RecFilePath");
|
"RecFilePath");
|
||||||
|
const char *mux = config_get_string(main->Config(), "AdvOut",
|
||||||
|
"RecMuxerCustom");
|
||||||
bool rescale = config_get_bool(main->Config(), "AdvOut",
|
bool rescale = config_get_bool(main->Config(), "AdvOut",
|
||||||
"RecRescale");
|
"RecRescale");
|
||||||
const char *rescaleRes = config_get_string(main->Config(), "AdvOut",
|
const char *rescaleRes = config_get_string(main->Config(), "AdvOut",
|
||||||
@ -744,6 +749,7 @@ inline void AdvancedOutput::SetupRecording()
|
|||||||
}
|
}
|
||||||
|
|
||||||
obs_data_set_string(settings, "path", path);
|
obs_data_set_string(settings, "path", path);
|
||||||
|
obs_data_set_string(settings, "muxer_settings", mux);
|
||||||
obs_output_update(fileOutput, settings);
|
obs_output_update(fileOutput, settings);
|
||||||
obs_data_release(settings);
|
obs_data_release(settings);
|
||||||
}
|
}
|
||||||
|
@ -274,6 +274,7 @@ OBSBasicSettings::OBSBasicSettings(QWidget *parent)
|
|||||||
HookWidget(ui->simpleOutCustom, EDIT_CHANGED, OUTPUTS_CHANGED);
|
HookWidget(ui->simpleOutCustom, EDIT_CHANGED, OUTPUTS_CHANGED);
|
||||||
HookWidget(ui->simpleOutRecQuality, COMBO_CHANGED, OUTPUTS_CHANGED);
|
HookWidget(ui->simpleOutRecQuality, COMBO_CHANGED, OUTPUTS_CHANGED);
|
||||||
HookWidget(ui->simpleOutRecEncoder, COMBO_CHANGED, OUTPUTS_CHANGED);
|
HookWidget(ui->simpleOutRecEncoder, COMBO_CHANGED, OUTPUTS_CHANGED);
|
||||||
|
HookWidget(ui->simpleOutMuxCustom, EDIT_CHANGED, OUTPUTS_CHANGED);
|
||||||
HookWidget(ui->advOutEncoder, COMBO_CHANGED, OUTPUTS_CHANGED);
|
HookWidget(ui->advOutEncoder, COMBO_CHANGED, OUTPUTS_CHANGED);
|
||||||
HookWidget(ui->advOutUseRescale, CHECK_CHANGED, OUTPUTS_CHANGED);
|
HookWidget(ui->advOutUseRescale, CHECK_CHANGED, OUTPUTS_CHANGED);
|
||||||
HookWidget(ui->advOutRescale, CBEDIT_CHANGED, OUTPUTS_CHANGED);
|
HookWidget(ui->advOutRescale, CBEDIT_CHANGED, OUTPUTS_CHANGED);
|
||||||
@ -288,6 +289,7 @@ OBSBasicSettings::OBSBasicSettings(QWidget *parent)
|
|||||||
HookWidget(ui->advOutRecEncoder, COMBO_CHANGED, OUTPUTS_CHANGED);
|
HookWidget(ui->advOutRecEncoder, COMBO_CHANGED, OUTPUTS_CHANGED);
|
||||||
HookWidget(ui->advOutRecUseRescale, CHECK_CHANGED, OUTPUTS_CHANGED);
|
HookWidget(ui->advOutRecUseRescale, CHECK_CHANGED, OUTPUTS_CHANGED);
|
||||||
HookWidget(ui->advOutRecRescale, CBEDIT_CHANGED, OUTPUTS_CHANGED);
|
HookWidget(ui->advOutRecRescale, CBEDIT_CHANGED, OUTPUTS_CHANGED);
|
||||||
|
HookWidget(ui->advOutMuxCustom, EDIT_CHANGED, OUTPUTS_CHANGED);
|
||||||
HookWidget(ui->advOutRecTrack1, CHECK_CHANGED, OUTPUTS_CHANGED);
|
HookWidget(ui->advOutRecTrack1, CHECK_CHANGED, OUTPUTS_CHANGED);
|
||||||
HookWidget(ui->advOutRecTrack2, CHECK_CHANGED, OUTPUTS_CHANGED);
|
HookWidget(ui->advOutRecTrack2, CHECK_CHANGED, OUTPUTS_CHANGED);
|
||||||
HookWidget(ui->advOutRecTrack3, CHECK_CHANGED, OUTPUTS_CHANGED);
|
HookWidget(ui->advOutRecTrack3, CHECK_CHANGED, OUTPUTS_CHANGED);
|
||||||
@ -1025,6 +1027,8 @@ void OBSBasicSettings::LoadSimpleOutputSettings()
|
|||||||
"RecQuality");
|
"RecQuality");
|
||||||
const char *recEnc = config_get_string(main->Config(), "SimpleOutput",
|
const char *recEnc = config_get_string(main->Config(), "SimpleOutput",
|
||||||
"RecEncoder");
|
"RecEncoder");
|
||||||
|
const char *muxCustom = config_get_string(main->Config(),
|
||||||
|
"SimpleOutput", "MuxerCustom");
|
||||||
|
|
||||||
audioBitrate = FindClosestAvailableAACBitrate(audioBitrate);
|
audioBitrate = FindClosestAvailableAACBitrate(audioBitrate);
|
||||||
|
|
||||||
@ -1048,6 +1052,8 @@ void OBSBasicSettings::LoadSimpleOutputSettings()
|
|||||||
idx = ui->simpleOutRecEncoder->findData(QString(recEnc));
|
idx = ui->simpleOutRecEncoder->findData(QString(recEnc));
|
||||||
if (idx == -1) idx = 0;
|
if (idx == -1) idx = 0;
|
||||||
ui->simpleOutRecEncoder->setCurrentIndex(idx);
|
ui->simpleOutRecEncoder->setCurrentIndex(idx);
|
||||||
|
|
||||||
|
ui->simpleOutMuxCustom->setText(muxCustom);
|
||||||
}
|
}
|
||||||
|
|
||||||
void OBSBasicSettings::LoadAdvOutputStreamingSettings()
|
void OBSBasicSettings::LoadAdvOutputStreamingSettings()
|
||||||
@ -1131,6 +1137,8 @@ void OBSBasicSettings::LoadAdvOutputRecordingSettings()
|
|||||||
"RecRescale");
|
"RecRescale");
|
||||||
const char *rescaleRes = config_get_string(main->Config(), "AdvOut",
|
const char *rescaleRes = config_get_string(main->Config(), "AdvOut",
|
||||||
"RecRescaleRes");
|
"RecRescaleRes");
|
||||||
|
const char *muxCustom = config_get_string(main->Config(), "AdvOut",
|
||||||
|
"RecMuxerCustom");
|
||||||
int tracks = config_get_int(main->Config(), "AdvOut", "RecTracks");
|
int tracks = config_get_int(main->Config(), "AdvOut", "RecTracks");
|
||||||
|
|
||||||
int typeIndex = (astrcmpi(type, "FFmpeg") == 0) ? 1 : 0;
|
int typeIndex = (astrcmpi(type, "FFmpeg") == 0) ? 1 : 0;
|
||||||
@ -1138,6 +1146,7 @@ void OBSBasicSettings::LoadAdvOutputRecordingSettings()
|
|||||||
ui->advOutRecPath->setText(path);
|
ui->advOutRecPath->setText(path);
|
||||||
ui->advOutRecUseRescale->setChecked(rescale);
|
ui->advOutRecUseRescale->setChecked(rescale);
|
||||||
ui->advOutRecRescale->setCurrentText(rescaleRes);
|
ui->advOutRecRescale->setCurrentText(rescaleRes);
|
||||||
|
ui->advOutMuxCustom->setText(muxCustom);
|
||||||
|
|
||||||
int idx = ui->advOutRecFormat->findText(format);
|
int idx = ui->advOutRecFormat->findText(format);
|
||||||
ui->advOutRecFormat->setCurrentIndex(idx);
|
ui->advOutRecFormat->setCurrentIndex(idx);
|
||||||
@ -2123,6 +2132,7 @@ void OBSBasicSettings::SaveOutputSettings()
|
|||||||
SaveEdit(ui->simpleOutCustom, "SimpleOutput", "x264Settings");
|
SaveEdit(ui->simpleOutCustom, "SimpleOutput", "x264Settings");
|
||||||
SaveComboData(ui->simpleOutRecQuality, "SimpleOutput", "RecQuality");
|
SaveComboData(ui->simpleOutRecQuality, "SimpleOutput", "RecQuality");
|
||||||
SaveComboData(ui->simpleOutRecEncoder, "SimpleOutput", "RecEncoder");
|
SaveComboData(ui->simpleOutRecEncoder, "SimpleOutput", "RecEncoder");
|
||||||
|
SaveEdit(ui->simpleOutMuxCustom, "SimpleOutput", "MuxerCustom");
|
||||||
|
|
||||||
SaveCheckBox(ui->advOutApplyService, "AdvOut", "ApplyServiceSettings");
|
SaveCheckBox(ui->advOutApplyService, "AdvOut", "ApplyServiceSettings");
|
||||||
SaveComboData(ui->advOutEncoder, "AdvOut", "Encoder");
|
SaveComboData(ui->advOutEncoder, "AdvOut", "Encoder");
|
||||||
@ -2140,6 +2150,7 @@ void OBSBasicSettings::SaveOutputSettings()
|
|||||||
SaveComboData(ui->advOutRecEncoder, "AdvOut", "RecEncoder");
|
SaveComboData(ui->advOutRecEncoder, "AdvOut", "RecEncoder");
|
||||||
SaveCheckBox(ui->advOutRecUseRescale, "AdvOut", "RecRescale");
|
SaveCheckBox(ui->advOutRecUseRescale, "AdvOut", "RecRescale");
|
||||||
SaveCombo(ui->advOutRecRescale, "AdvOut", "RecRescaleRes");
|
SaveCombo(ui->advOutRecRescale, "AdvOut", "RecRescaleRes");
|
||||||
|
SaveEdit(ui->advOutMuxCustom, "AdvOut", "RecMuxerCustom");
|
||||||
|
|
||||||
config_set_int(main->Config(), "AdvOut", "RecTracks",
|
config_set_int(main->Config(), "AdvOut", "RecTracks",
|
||||||
(ui->advOutRecTrack1->isChecked() ? (1<<0) : 0) |
|
(ui->advOutRecTrack1->isChecked() ? (1<<0) : 0) |
|
||||||
|
Loading…
Reference in New Issue
Block a user