From b2d686e8f4e4fa36d3636811a8d5eba0701b98cf Mon Sep 17 00:00:00 2001 From: tytan652 Date: Thu, 15 Dec 2022 13:08:17 +0100 Subject: [PATCH] obs-ffmpeg: Allow opus for SRT and RIST --- plugins/obs-ffmpeg/obs-ffmpeg-mpegts.c | 11 +++++++---- plugins/obs-ffmpeg/obs-ffmpeg-mux.c | 2 +- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/plugins/obs-ffmpeg/obs-ffmpeg-mpegts.c b/plugins/obs-ffmpeg/obs-ffmpeg-mpegts.c index 15014a25b..f4145c936 100644 --- a/plugins/obs-ffmpeg/obs-ffmpeg-mpegts.c +++ b/plugins/obs-ffmpeg/obs-ffmpeg-mpegts.c @@ -955,11 +955,14 @@ static bool set_config(struct ffmpeg_output *stream) obs_data_release(settings); /* 3. Audio settings */ - // 3.a) set audio encoder and id to aac + // 3.a) set audio codec & id from audio encoder obs_encoder_t *aencoder = obs_output_get_audio_encoder(stream->output, 0); - config.audio_encoder = "aac"; - config.audio_encoder_id = AV_CODEC_ID_AAC; + config.audio_encoder = obs_encoder_get_codec(aencoder); + if (strcmp(config.audio_encoder, "aac") == 0) + config.audio_encoder_id = AV_CODEC_ID_AAC; + else if (strcmp(config.audio_encoder, "opus") == 0) + config.audio_encoder_id = AV_CODEC_ID_OPUS; // 3.b) get audio bitrate from the audio encoder. settings = obs_encoder_get_settings(aencoder); @@ -1295,7 +1298,7 @@ struct obs_output_info ffmpeg_mpegts_muxer = { #else .encoded_video_codecs = "h264", #endif - .encoded_audio_codecs = "aac", + .encoded_audio_codecs = "aac;opus", .get_name = ffmpeg_mpegts_getname, .create = ffmpeg_mpegts_create, .destroy = ffmpeg_mpegts_destroy, diff --git a/plugins/obs-ffmpeg/obs-ffmpeg-mux.c b/plugins/obs-ffmpeg/obs-ffmpeg-mux.c index 8d8539fbe..c202d8345 100644 --- a/plugins/obs-ffmpeg/obs-ffmpeg-mux.c +++ b/plugins/obs-ffmpeg/obs-ffmpeg-mux.c @@ -946,7 +946,7 @@ struct obs_output_info ffmpeg_mpegts_muxer = { OBS_OUTPUT_SERVICE, .protocols = "SRT;RIST", .encoded_video_codecs = "h264", - .encoded_audio_codecs = "aac", + .encoded_audio_codecs = "aac;opus", .get_name = ffmpeg_mpegts_mux_getname, .create = ffmpeg_mux_create, .destroy = ffmpeg_mux_destroy,