From ff06927c7176e6d9faaddec3ce4a24648ed8ec63 Mon Sep 17 00:00:00 2001 From: derrod Date: Tue, 18 Apr 2023 23:42:03 +0200 Subject: [PATCH] UI: Disable auto-remux for AV1+PCM, use MOV for PCM --- UI/window-basic-main.cpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/UI/window-basic-main.cpp b/UI/window-basic-main.cpp index e07083e87..8b0714ad7 100644 --- a/UI/window-basic-main.cpp +++ b/UI/window-basic-main.cpp @@ -7392,14 +7392,23 @@ void OBSBasic::AutoRemux(QString input, bool no_show) const obs_encoder_t *videoEncoder = obs_output_get_video_encoder(outputHandler->fileOutput); - const char *codecName = obs_encoder_get_codec(videoEncoder); + const obs_encoder_t *audioEncoder = + obs_output_get_audio_encoder(outputHandler->fileOutput, 0); + const char *vCodecName = obs_encoder_get_codec(videoEncoder); + const char *aCodecName = obs_encoder_get_codec(audioEncoder); const char *format = config_get_string( config, isSimpleMode ? "SimpleOutput" : "AdvOut", "RecFormat2"); + /* AV1+PCM cannot be remuxed into any supported format (until FFmpeg 6.1) */ + if (strcmp(vCodecName, "av1") == 0 && + strncmp(aCodecName, "pcm", 3) == 0) + return; + /* Retain original container for fMP4/fMOV */ if (strncmp(format, "fragmented", 10) == 0) { output += "remuxed." + suffix; - } else if (strcmp(codecName, "prores") == 0) { + } else if (strcmp(vCodecName, "prores") == 0 || + strncmp(aCodecName, "pcm", 3) == 0) { output += "mov"; } else { output += "mp4";