New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Forced subtitles not working when audio and subtitle language is different #15672
Comments
Still broken in 20190410 |
Not fixed in 18.2 either. |
This is how it's meant to be I believe see #3396 (comment) If I understood right then if the Force subtitles you wish to automatically started do not match the audio language then they should be flagged as Forced & Default. @ace20022 If you are around can you comment to confirm what correct behavior should be? |
This also seems to back up that behaviour is as designed and not a bug #9111 (comment) [edit] Just noticed the code comments at https://github.com/xbmc/xbmc/blob/master/xbmc/cores/VideoPlayer/VideoPlayer.cpp#L222-L234 So indeed working as designed. |
@jjd-uk I am a little confused about the correct procedure to have: Thanks |
I can't believe how this is the intended way it's supposed to work because if it is then the option should not be named "forced". |
Ok I've reopened issue as after some internal discussion I am now not 100% sure what is meant be to the correct behaviour. |
@ace20022 if you have any available time could you explain what should be correct operation. |
Thanks @jjd-uk - Have a good holiday. I think a good solution to this issue while maintaining the current rules is to add a new subtitle option "show with foreign audio":
You will also have an issue if the audio language is not flagged in the media file - should subs be enabled or disabled in this case etc |
I believe default and forced was supposed to work due to comments left in the code, however from speaking to someone internally earlier it seems the way it's currently coded if never gets to the relevant check. As for improvements, that would have to be a request on the forum. Perhaps there should be 2 language selectors, one for forced and one for full subs. |
MKV files can have multiple subtitle tracks marked as forced. For example the following
German audio track and German forced subtitle track are automatically chosen because both marked as default. When toggling audio track to English, the forced English subtitle track is automatically chosen. Kodi behaves correct IMHO. |
Using your template, do you believe this to be correct as well? Because it works really backwards to me and I've never seen any media player do it like this, ever. For example:
On this file, it will play using the Japanese audio and NOT enable the forced ENGLISH subtitle because the forced subtitle is not the same language as the audio track, if I change the tag from JPN to ENG using something like MKVToolNix it will enable the forced subtitle because now it matches the audio language. Audio and subtitle language should not need to match to use the forced tag, it ruins the functionally of anything foreign. EDIT: It can still function the same way for you, just have it enable the first forced subtitle in the list anyway even if no AUDIO + SUBTITLE language match is found. It would make it enable GER forced if you're on GER audio, like now for you, or ENG for ENG. But if no match is found just enable the first forced subtitle in the list, makes it possible to use with foreign media. |
Nope, I disagree. The FORCED-tag should not lead to a subtitle track being enabled automatically, but the DEFAULT-tag should. So in your example: Yes, the English subtitle track should be enabled automatically, because it is marked as DEFAULT subtitle track, independently of the language. |
If we went by Default tag in "Forced only" mode then we'd run into other issues, like I'm watching an English movie that has English subtitles but I don't want them enabled because I can watch without, It would enable that subtitle even when I've set "Forced only" in Settings. Forced should automatically enable subtitle otherwise it wouldn't be called forced. |
No. I disagree again. There may me multiple subtitle tracks marked as FORCED but there must only be up to one subtitle track marked as DEFAULT. It is also possible that there is no subtitle track marked as DEFAULT. In your example given last, the English subtitle track should be tagged as DEFAULT=no and FORCED=no, because it is probably the subtitle track required for non-English viewers only. Therefore it would not be enabled by default and has to be enabled manually when required. |
There is no way to only enabled Default tagged subtitles. Using Forced is the only way you can tell Kodi when you want a subtitle and when you don't want it. |
Hi, i don't know if i open my own issue to discuss subtitles auto-behavior (almost the same subject here), so i gonna start here. I think the behavior for FORCED subtitles is normal, they should be use for foreign language translation only and be based on the current Audio language and never be use for full translation. For your Anime you should have :
and if you want the correct subtitles to be use for all your video, you should setup : But this first 2 option (English or any other lang. / User interface language) don't ignore FORCED and DEFAULT subtitles so the full translation is never selected, and this is my issue.
The solution would be to change this behavior for this 2 option or add a new option apart to ignore FORCED and DEFAULT subtitles if one of the 2 option is selected, to allow the full translation to be use automatically.
Forced Only / Original language / Specific language (or UI) work correctly with this workaround but it's not working if you want more subtitles language and it's annoying to edit every subtitles movie/tv show/anime. |
Forced subtitles is for spoken / written stuff, which differs from the original audio stream. For example if you have russian language in your above mentioned english audio track. IMO it does not make any sense by concept to provide a japanese audio track only and an english forced sub track. |
Kodi can be a lot smarter at selecting subtitles automatically. Kodi could see if the video audio language differs from your preferred language and enable subtitles in your preferred language if they exist. At the moment you have to manually enable subs if your watching a foreign language movie. No current options exist for this use case to automatically have subtitles displayed (not counting always on). Plex currently does this - while with other apps you could just use the forced flag as a work around instead. |
@sammy2142 I agree that there is a missing option for "always enable subtitles".
In general its wrong tagged / not tagged (UNK) Implementing solutions to repair wrongly tagged tracks will lead to a big mess sooner or later. |
This would IMHO not make sense. A forced sub track should only be enabled for the corresponding language, see example above. |
Maybe I misunderstand it but will this also fix the issue that starting with v18, English subtitles embedded in eg. mkv are no longer automatically shown if you've set your preferred subtitle language, in my case, to Dutch? Currently there's no way to force any "alternative" subtitles which may be available. |
In this case almost always the user would have to mark the subtitle track as forced anyway. They may as well correctly tag/flag the audio track language if it is not tagged (unknown etc) at the same time. This will leave you with just the one option to decide whether you should enable the subtitles if the audio track is an unknown language or disable. At the end of the day I think it should be down to the user to correctly tag/flag audio/subtitle tracks if they want them displayed correctly all the time. |
This add on solves some of the problems though not all of them |
|
No. You want to missuse the 'forced' flag. 'Forced' subtitles shall be displayed only in 2 cases:
In my opinion only this makes sense:
When you want to display English subtitles for Japanese movies, just enable English subtitles in the menu for a particular movie. |
I really want the subtitles to display in this situation. Surely we can add a checkbox to force forced subtitles? |
In my case currently implemented logic is not working either. You can be a purist and say that this is encoding issue, but here is the reality - this is what I typically see in MKVs (original audio track is English / French / German / Spanish etc):
With my typical setup:
I'm landing with forced subtitles stream, which is completely not usable. I think all these automatic rules to handle forced subtitles (VideoPlayer.cpp#L220-L229) are fine but should be triggered only by choosen audio language, when preferred subtitle language is not set:
As soon as user will explicitly choose subtitle language, the automatic logic should be disabled and an option for handling forced subtitles should be presented:
Wouldn't that handle all these concerns with subtitles? |
First I agree that it look strange to ask for Forced subtitles in a language different from the audio one (would not consider it a KODI bug really...). But anyway if the OP or some else needs to achieve this or more complex situations, you can have a look at "Language Preference Manager" add-on, already mentionned earlier, which should do the tricks. https://forum.kodi.tv/showthread.php?tid=153783&page=24 Hope it can help ;) |
I used this for a while but I personally just went back to Plex instead, subtitles load the way I want there out of the box. For Kodi I think implementing something like LAV Filters is the way forward to please everyone, there I can just used this for loading subtitles in custom options: eng:eng|f,eng:off,:eng|!f,:eng |
I would do... 😃 or maybe just consider it as missing functionality (to opt out forced subtitles). For this particular need I was pushed to write my own plugin for Kodi 😄 |
@adam-aph Nevertherless if you would like to give it a try with LPM, I believe 2 basic rules like
Pol:Non will disable all subtitles (even default ones) when Pol audio exists and is chosen, except if it finds a Pol forced subtitle track (which you do have here). Sorry all, I did not mean to hijack this thread, but hopefully the discussion can help some ;-) ... |
Thanks, but I will focus on my own shit, it does exactly what I need in pretty ascetic way 😉 |
Bug report
Describe the bug
Here is a clear and concise description of what the problem is:
When playing a video with forced subtitles it doesn't automatically turn on if the subtitle language is different from the audio language.
For example I have an anime episode with JPN video, JPN audio and ENG forced subtitles, this doesn't work as subtitles are not enabled by default even with "Forced only" enabled in settings.
If I take the same file and change it in MKVToolNix to ENG video, ENG audio and ENG forced sub without actually changing the files it works and forced subtitles are enabled by default like they should.
Expected Behavior
Here is a clear and concise description of what was expected to happen:
Matching language for audio and subtitles should be irrelevant as forced should mean forced no matter what language is set on the file as long as the subtitle is flagged as forced.
Actual Behavior
Only enables forced subtitles by default if audio and subtitle language matches.
Possible Fix
To Reproduce
Steps to reproduce the behavior:
Debuglog
The debuglog can be found here:
kodi.log
Screenshots
Here are some links or screenshots to help explain the problem:
Additional context or screenshots (if appropriate)
Here is some additional context or explanation that might help:
Your Environment
Used Operating system:
Android
iOS
Linux
OSX
Raspberry-Pi
Windows
Windows UWP
Operating system version/name: Android TV 8.0.0
Kodi version: Kodi 18.1 20190228
note: Once the issue is made we require you to update it with new information or Kodi versions should that be required.
Team Kodi will consider your problem report however, we will not make any promises the problem will be solved.
The text was updated successfully, but these errors were encountered: