> On Oct 6, 2025, at 16:06, baigao via ffmpeg-devel <[email protected]>
> wrote:
>
> ---
> libavformat/whip.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/libavformat/whip.c b/libavformat/whip.c
> index 472c6dbf16..6ace9240f9 100644
> --- a/libavformat/whip.c
> +++ b/libavformat/whip.c
> @@ -617,12 +617,14 @@ static int generate_sdp_offer(AVFormatContext *s)
> "o=FFmpeg %s 2 IN IP4 %s\r\n"
> "s=FFmpegPublishSession\r\n"
> "t=0 0\r\n"
> - "a=group:BUNDLE 0 1\r\n"
> "a=extmap-allow-mixed\r\n"
> "a=msid-semantic: WMS\r\n",
> WHIP_SDP_SESSION_ID,
> WHIP_SDP_CREATOR_IP);
>
> + if (whip->audio_par && whip->video_par)
> + av_bprintf(&bp, "a=group:BUNDLE 0 1\r\n");
> +
After testing this patch, I found something need to be improved
The bug cause by the a=group:BUNDLE use non-exist mid when there is single
stream
Some SFUs reject non-bundle SDP(like SRS), and Chrome generate SDP with BUNDLE
even though there is single stream.
So, to improve compatibility, please consider making such change
diff --git a/libavformat/whip.c b/libavformat/whip.c
index 6ace9240f9..5b9520041b 100644
--- a/libavformat/whip.c
+++ b/libavformat/whip.c
@@ -622,8 +622,12 @@ static int generate_sdp_offer(AVFormatContext *s)
WHIP_SDP_SESSION_ID,
WHIP_SDP_CREATOR_IP);
- if (whip->audio_par && whip->video_par)
- av_bprintf(&bp, "a=group:BUNDLE 0 1\r\n");
+ av_bprintf(&bp, "a=group:BUNDLE");
+ if (whip->audio_par)
+ av_bprintf(&bp, " 0");
+ if(whip->video_par)
+ av_bprintf(&bp, " 1");
+ av_bprintf(&bp, "\r\n");
if (whip->audio_par) {
if (whip->audio_par->codec_id == AV_CODEC_ID_OPUS)
> if (whip->audio_par) {
> if (whip->audio_par->codec_id == AV_CODEC_ID_OPUS)
> acodec_name = "opus";
> --
> 2.51.0
>
> _______________________________________________
> ffmpeg-devel mailing list -- [email protected]
> To unsubscribe send an email to [email protected]
Thanks
Jack
_______________________________________________
ffmpeg-devel mailing list -- [email protected]
To unsubscribe send an email to [email protected]