Merge pull request #17419 from rwebster85/mp4-audio-subtitle-names

Check the "name" tag for audio/subtitle probe to fix MP4 not showing correctly - Fixes issue #17418
This commit is contained in:
Cody Robibero
2026-07-24 21:30:54 -04:00
committed by GitHub
4 changed files with 26 additions and 11 deletions
@@ -757,11 +757,17 @@ namespace MediaBrowser.MediaEncoding.Probing
if (string.IsNullOrEmpty(stream.Title))
{
// mp4 missing track title workaround: fall back to handler_name if populated and not the default "SoundHandler"
string handlerName = GetDictionaryValue(streamInfo.Tags, "handler_name");
if (!string.IsNullOrEmpty(handlerName) && !string.Equals(handlerName, "SoundHandler", StringComparison.OrdinalIgnoreCase))
// FFprobe exposes MP4 track names via the name tag rather than title
stream.Title = GetDictionaryValue(streamInfo.Tags, "name");
if (string.IsNullOrEmpty(stream.Title))
{
stream.Title = handlerName;
// fall back to handler_name if populated and not the default "SoundHandler"
string handlerName = GetDictionaryValue(streamInfo.Tags, "handler_name");
if (!string.IsNullOrEmpty(handlerName) && !string.Equals(handlerName, "SoundHandler", StringComparison.OrdinalIgnoreCase))
{
stream.Title = handlerName;
}
}
}
}
@@ -781,11 +787,17 @@ namespace MediaBrowser.MediaEncoding.Probing
if (string.IsNullOrEmpty(stream.Title))
{
// mp4 missing track title workaround: fall back to handler_name if populated and not the default "SubtitleHandler"
string handlerName = GetDictionaryValue(streamInfo.Tags, "handler_name");
if (!string.IsNullOrEmpty(handlerName) && !string.Equals(handlerName, "SubtitleHandler", StringComparison.OrdinalIgnoreCase))
// FFprobe exposes MP4 track names via the name tag rather than title
stream.Title = GetDictionaryValue(streamInfo.Tags, "name");
if (string.IsNullOrEmpty(stream.Title))
{
stream.Title = handlerName;
// fall back to handler_name if populated and not the default "SubtitleHandler"
string handlerName = GetDictionaryValue(streamInfo.Tags, "handler_name");
if (!string.IsNullOrEmpty(handlerName) && !string.Equals(handlerName, "SubtitleHandler", StringComparison.OrdinalIgnoreCase))
{
stream.Title = handlerName;
}
}
}
}