UI: Add fragmented MP4/MOV formats
This commit is contained in:
parent
05b1be4f27
commit
705173a0c3
4 changed files with 112 additions and 80 deletions
|
|
@ -1031,6 +1031,7 @@ void OBSBasicSettings::LoadColorFormats()
|
|||
|
||||
void OBSBasicSettings::LoadFormats()
|
||||
{
|
||||
#define FORMAT_STR(str) QTStr("Basic.Settings.Output.Format." str)
|
||||
ui->advOutFFFormat->blockSignals(true);
|
||||
|
||||
formats.reset(ff_format_supported());
|
||||
|
|
@ -1059,6 +1060,25 @@ void OBSBasicSettings::LoadFormats()
|
|||
ui->advOutFFFormat->insertItem(0, AV_FORMAT_DEFAULT_STR);
|
||||
|
||||
ui->advOutFFFormat->blockSignals(false);
|
||||
|
||||
ui->simpleOutRecFormat->addItem(FORMAT_STR("FLV"), "flv");
|
||||
ui->simpleOutRecFormat->addItem(FORMAT_STR("MKV"), "mkv");
|
||||
ui->simpleOutRecFormat->addItem(FORMAT_STR("MP4"), "mp4");
|
||||
ui->simpleOutRecFormat->addItem(FORMAT_STR("MOV"), "mov");
|
||||
ui->simpleOutRecFormat->addItem(FORMAT_STR("fMP4"), "fmp4");
|
||||
ui->simpleOutRecFormat->addItem(FORMAT_STR("fMOV"), "fmov");
|
||||
ui->simpleOutRecFormat->addItem(FORMAT_STR("TS"), "ts");
|
||||
|
||||
ui->advOutRecFormat->addItem(FORMAT_STR("FLV"), "flv");
|
||||
ui->advOutRecFormat->addItem(FORMAT_STR("MKV"), "mkv");
|
||||
ui->advOutRecFormat->addItem(FORMAT_STR("MP4"), "mp4");
|
||||
ui->advOutRecFormat->addItem(FORMAT_STR("MOV"), "mov");
|
||||
ui->advOutRecFormat->addItem(FORMAT_STR("fMP4"), "fmp4");
|
||||
ui->advOutRecFormat->addItem(FORMAT_STR("fMOV"), "fmov");
|
||||
ui->advOutRecFormat->addItem(FORMAT_STR("TS"), "ts");
|
||||
ui->advOutRecFormat->addItem(FORMAT_STR("HLS"), "m3u8");
|
||||
|
||||
#undef FORMAT_STR
|
||||
}
|
||||
|
||||
static void AddCodec(QComboBox *combo, const ff_codec_desc *codec_desc)
|
||||
|
|
@ -1844,7 +1864,7 @@ void OBSBasicSettings::LoadSimpleOutputSettings()
|
|||
ui->simpleNoSpace->setChecked(noSpace);
|
||||
ui->simpleOutputVBitrate->setValue(videoBitrate);
|
||||
|
||||
int idx = ui->simpleOutRecFormat->findText(format);
|
||||
int idx = ui->simpleOutRecFormat->findData(format);
|
||||
ui->simpleOutRecFormat->setCurrentIndex(idx);
|
||||
|
||||
const char *speakers =
|
||||
|
|
@ -2022,7 +2042,7 @@ void OBSBasicSettings::LoadAdvOutputRecordingSettings()
|
|||
ui->advOutRecRescale->setCurrentText(rescaleRes);
|
||||
ui->advOutMuxCustom->setText(muxCustom);
|
||||
|
||||
int idx = ui->advOutRecFormat->findText(format);
|
||||
int idx = ui->advOutRecFormat->findData(format);
|
||||
ui->advOutRecFormat->setCurrentIndex(idx);
|
||||
|
||||
ui->advOutRecTrack1->setChecked(tracks & (1 << 0));
|
||||
|
|
@ -3621,7 +3641,7 @@ void OBSBasicSettings::SaveOutputSettings()
|
|||
SaveCombo(ui->simpleOutputABitrate, "SimpleOutput", "ABitrate");
|
||||
SaveEdit(ui->simpleOutputPath, "SimpleOutput", "FilePath");
|
||||
SaveCheckBox(ui->simpleNoSpace, "SimpleOutput", "FileNameWithoutSpace");
|
||||
SaveCombo(ui->simpleOutRecFormat, "SimpleOutput", "RecFormat");
|
||||
SaveComboData(ui->simpleOutRecFormat, "SimpleOutput", "RecFormat");
|
||||
SaveCheckBox(ui->simpleOutAdvanced, "SimpleOutput", "UseAdvanced");
|
||||
SaveComboData(ui->simpleOutPreset, "SimpleOutput", presetType);
|
||||
SaveEdit(ui->simpleOutCustom, "SimpleOutput", "x264Settings");
|
||||
|
|
@ -3648,7 +3668,7 @@ void OBSBasicSettings::SaveOutputSettings()
|
|||
|
||||
SaveEdit(ui->advOutRecPath, "AdvOut", "RecFilePath");
|
||||
SaveCheckBox(ui->advOutNoSpace, "AdvOut", "RecFileNameWithoutSpace");
|
||||
SaveCombo(ui->advOutRecFormat, "AdvOut", "RecFormat");
|
||||
SaveComboData(ui->advOutRecFormat, "AdvOut", "RecFormat");
|
||||
SaveComboData(ui->advOutRecEncoder, "AdvOut", "RecEncoder");
|
||||
SaveCheckBox(ui->advOutRecUseRescale, "AdvOut", "RecRescale");
|
||||
SaveCombo(ui->advOutRecRescale, "AdvOut", "RecRescaleRes");
|
||||
|
|
@ -4709,7 +4729,9 @@ void OBSBasicSettings::AdvOutRecCheckWarnings()
|
|||
warningMsg += QTStr("OutputWarnings.CannotPause");
|
||||
}
|
||||
|
||||
if (ui->advOutRecFormat->currentText().compare("flv") == 0) {
|
||||
QString recFormat = ui->advOutRecFormat->currentData().toString();
|
||||
|
||||
if (recFormat == "flv") {
|
||||
ui->advRecTrackWidget->setCurrentWidget(ui->flvTracks);
|
||||
} else {
|
||||
ui->advRecTrackWidget->setCurrentWidget(ui->recTracks);
|
||||
|
|
@ -4718,20 +4740,18 @@ void OBSBasicSettings::AdvOutRecCheckWarnings()
|
|||
errorMsg = QTStr("OutputWarnings.NoTracksSelected");
|
||||
}
|
||||
|
||||
QString recFormat = ui->advOutRecFormat->currentText();
|
||||
QString recEncoder = ui->advOutRecEncoder->currentText();
|
||||
|
||||
if (recEncoder.contains("ProRes")) {
|
||||
if (recFormat.compare("mkv") == 0) {
|
||||
if (recFormat == "mkv") {
|
||||
ui->autoRemux->setText(
|
||||
QTStr("Basic.Settings.Advanced.AutoRemux")
|
||||
.arg("mov"));
|
||||
} else if (recFormat.compare("mov") == 0) {
|
||||
if (!warningMsg.isEmpty()) {
|
||||
} else if (recFormat == "mov") {
|
||||
if (!warningMsg.isEmpty())
|
||||
warningMsg += "\n\n";
|
||||
}
|
||||
|
||||
warningMsg += QTStr("OutputWarnings.MP4Recording");
|
||||
|
||||
ui->autoRemux->setText(
|
||||
QTStr("Basic.Settings.Advanced.AutoRemux")
|
||||
.arg("mov") +
|
||||
|
|
@ -4746,11 +4766,9 @@ void OBSBasicSettings::AdvOutRecCheckWarnings()
|
|||
.arg(recFormat);
|
||||
}
|
||||
} else {
|
||||
if (recFormat.compare("mp4") == 0 ||
|
||||
recFormat.compare("mov") == 0) {
|
||||
if (!warningMsg.isEmpty()) {
|
||||
if (recFormat == "mp4" || recFormat == "mov") {
|
||||
if (!warningMsg.isEmpty())
|
||||
warningMsg += "\n\n";
|
||||
}
|
||||
|
||||
warningMsg += QTStr("OutputWarnings.MP4Recording");
|
||||
ui->autoRemux->setText(
|
||||
|
|
@ -5317,9 +5335,9 @@ void OBSBasicSettings::SimpleRecordingEncoderChanged()
|
|||
warning += SIMPLE_OUTPUT_WARNING("CannotPause");
|
||||
}
|
||||
|
||||
if (qual != "Lossless" &&
|
||||
(ui->simpleOutRecFormat->currentText().compare("mp4") == 0 ||
|
||||
ui->simpleOutRecFormat->currentText().compare("mov") == 0)) {
|
||||
QString format = ui->simpleOutRecFormat->currentData().toString();
|
||||
|
||||
if (qual != "Lossless" && (format == "mp4" || format == "mov")) {
|
||||
if (!warning.isEmpty())
|
||||
warning += "\n\n";
|
||||
warning += QTStr("OutputWarnings.MP4Recording");
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue