aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorendigma <endigma@mailcat.ca>2026-05-04 19:13:43 +0100
committerdec05eba <dec05eba@protonmail.com>2026-05-04 21:03:12 +0200
commit5e694a633bfe783799735316a008918aa4f93db7 (patch)
tree2ec8d6a7ce3be21741c54c87b9f19c9e89faef95 /src
parent4e84f0e49dd428e1d8c99104c98741ca749ba641 (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.cpp5
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;
}