Browse Source

UI: Add config option to use MP4 for debug recording

derrod 1 year ago
parent
commit
e223e7b5ca
2 changed files with 26 additions and 6 deletions
  1. 14 4
      UI/multitrack-video-output.cpp
  2. 12 2
      UI/window-basic-main-outputs.cpp

+ 14 - 4
UI/multitrack-video-output.cpp

@@ -161,11 +161,21 @@ static OBSOutputAutoRelease create_output()
 
 static OBSOutputAutoRelease create_recording_output(obs_data_t *settings)
 {
-	OBSOutputAutoRelease output = obs_output_create(
-		"flv_output", "flv multitrack video", settings, nullptr);
+	OBSOutputAutoRelease output;
+	bool useMP4 = obs_data_get_bool(settings, "use_mp4");
 
-	if (!output)
-		blog(LOG_ERROR, "Failed to create multitrack video flv output");
+	if (useMP4) {
+		output = obs_output_create("mp4_output", "mp4 multitrack video",
+					   settings, nullptr);
+	} else {
+		output = obs_output_create("flv_output", "flv multitrack video",
+					   settings, nullptr);
+	}
+
+	if (!output) {
+		blog(LOG_ERROR, "Failed to create multitrack video %s output",
+		     useMP4 ? "mp4" : "flv");
+	}
 
 	return output;
 }

+ 12 - 2
UI/window-basic-main-outputs.cpp

@@ -2854,16 +2854,26 @@ OBSDataAutoRelease BasicOutputHandler::GenerateMultitrackVideoStreamDumpConfig()
 						       "FilenameFormatting");
 	bool overwriteIfExists =
 		config_get_bool(main->Config(), "Output", "OverwriteIfExists");
+	bool useMP4 = config_get_bool(main->Config(), "Stream1",
+				      "MultitrackVideoStreamDumpAsMP4");
 
 	string f;
 
 	OBSDataAutoRelease settings = obs_data_create();
 	f = GetFormatString(filenameFormat, nullptr, nullptr);
-	string strPath = GetRecordingFilename(path, "flv", noSpace,
-					      overwriteIfExists, f.c_str(),
+	string strPath = GetRecordingFilename(path, useMP4 ? "mp4" : "flv",
+					      noSpace, overwriteIfExists,
+					      f.c_str(),
 					      // never remux stream dump
 					      false);
 	obs_data_set_string(settings, "path", strPath.c_str());
+
+	if (useMP4) {
+		obs_data_set_bool(settings, "use_mp4", true);
+		obs_data_set_string(settings, "muxer_settings",
+				    "write_encoder_info=1");
+	}
+
 	return settings;
 }