From c8b2db9760355e27fbe309fd529542eb6ce40513 Mon Sep 17 00:00:00 2001 From: pkv Date: Thu, 17 Mar 2022 20:31:34 +0100 Subject: [PATCH] obs-libfdk: Set bitstream to ADTS for mpegts output This sets the aac bitstream to ADTS for the mpegts output. This fixes a bug with mpegts ouput where the avformat muxer issues an error with fdk-aac encoder. Signed-off-by: pkv --- plugins/obs-libfdk/obs-libfdk.c | 6 +++++- plugins/rtmp-services/rtmp-custom.c | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/plugins/obs-libfdk/obs-libfdk.c b/plugins/obs-libfdk/obs-libfdk.c index 234ca0ea6..b6e93cdb7 100644 --- a/plugins/obs-libfdk/obs-libfdk.c +++ b/plugins/obs-libfdk/obs-libfdk.c @@ -96,6 +96,8 @@ static void *libfdk_create(obs_data_t *settings, obs_encoder_t *encoder) int bitrate = (int)obs_data_get_int(settings, "bitrate") * 1000; int afterburner = obs_data_get_bool(settings, "afterburner") ? 1 : 0; audio_t *audio = obs_encoder_audio(encoder); + bool set_to_ADTS = obs_data_get_bool(settings, "set_to_ADTS"); + int transmux = set_to_ADTS ? 2 : 0; int mode = 0; AACENC_ERROR err; @@ -159,7 +161,9 @@ static void *libfdk_create(obs_data_t *settings, obs_encoder_t *encoder) aacEncoder_SetParam(enc->fdkhandle, AACENC_BITRATEMODE, 0)); CHECK_LIBFDK( aacEncoder_SetParam(enc->fdkhandle, AACENC_BITRATE, bitrate)); - CHECK_LIBFDK(aacEncoder_SetParam(enc->fdkhandle, AACENC_TRANSMUX, 0)); + + CHECK_LIBFDK( + aacEncoder_SetParam(enc->fdkhandle, AACENC_TRANSMUX, transmux)); CHECK_LIBFDK(aacEncoder_SetParam(enc->fdkhandle, AACENC_AFTERBURNER, afterburner)); diff --git a/plugins/rtmp-services/rtmp-custom.c b/plugins/rtmp-services/rtmp-custom.c index 3b7ca2240..2649a76b9 100644 --- a/plugins/rtmp-services/rtmp-custom.c +++ b/plugins/rtmp-services/rtmp-custom.c @@ -122,6 +122,7 @@ static void rtmp_custom_apply_settings(void *data, obs_data_t *video_settings, strncmp(service->server, RTMP_PROTOCOL, strlen(RTMP_PROTOCOL)) != 0) { obs_data_set_bool(video_settings, "repeat_headers", true); + obs_data_set_bool(audio_settings, "set_to_ADTS", true); } }