diff options
| author | endigma <endigma@mailcat.ca> | 2026-05-04 19:13:43 +0100 |
|---|---|---|
| committer | dec05eba <dec05eba@protonmail.com> | 2026-05-04 21:03:12 +0200 |
| commit | 5e694a633bfe783799735316a008918aa4f93db7 (patch) | |
| tree | 2ec8d6a7ce3be21741c54c87b9f19c9e89faef95 /src | |
| parent | 4e84f0e49dd428e1d8c99104c98741ca749ba641 (diff) | |
Allow opus audio codec with mpegts container
The TODO comment next to the opus fallback noted this case was
unhandled. ffmpeg's mpegts muxer does support opus (DVB private-stream
0x06 with "Opus" registration descriptor) and demuxes it back fine,
verified with a live h264+opus mpegts mux/demux roundtrip. Without
this, anyone publishing to MediaMTX/SRT (or any other mpegts sink that
benefits from opus's lower latency vs aac) gets silently downgraded to
aac, which then can't be carried over WebRTC on the playback side.
Treat ".ts" the same as mp4/mkv/webm in select_audio_codec_with_fallback
so -ac opus is honoured when the container is mpegts.
Diffstat (limited to 'src')
| -rw-r--r-- | src/main.cpp | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/src/main.cpp b/src/main.cpp index df9eef5..4baa223 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -3018,11 +3018,10 @@ static gsr_audio_codec select_audio_codec_with_fallback(gsr_audio_codec audio_co break; } case GSR_AUDIO_CODEC_OPUS: { - // TODO: Also check mpegts? - if(file_extension != "mp4" && file_extension != "mkv" && file_extension != "webm") { + if(file_extension != "mp4" && file_extension != "mkv" && file_extension != "webm" && file_extension != "ts") { //audio_codec_to_use = "aac"; audio_codec = GSR_AUDIO_CODEC_AAC; - fprintf(stderr, "gsr warning: opus audio codec is only supported by .mp4, .mkv and .webm files, falling back to aac instead\n"); + fprintf(stderr, "gsr warning: opus audio codec is only supported by .mp4, .mkv, .webm and .ts files, falling back to aac instead\n"); } break; } |
