Skip to content
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

make --sub-auto and --audio-file-auto possible to autoload but do not prefer external tracks #5433

Open
zc62 opened this issue Jan 21, 2018 · 7 comments
Labels
core:file core:option-param-conf config, parameters, properties, options, shortcuts meta:feature-request

Comments

@zc62
Copy link
Contributor

zc62 commented Jan 21, 2018

The "do not select" here is NOT "strictly not selecting" (as what has been done to --external-files recently). This change simply makes auto-loaded external tracks seen as if they are internal tracks (but with higher tid than real internal ones) when selecting the track.~~

I think this behavior sounds more natural because when everything set to automatic, I don't really care which of the tracks are internal and which are external.

#5127 is probably saying the same thing. When auto-loading external files, all of the internal tracks with desired *slang will completely be ignored, because external has very high priority. IMO external should have such high priority when user specify external tracks with --sub-file or --audio-file, but when using auto-loading, it is most likely that users just want to make every track selectable.

There are external files not because users themselves made those files (and even want those files have higher priority), but because users simply got a bunch of files somewhere and simply want to play them.

EDIT: see my second comment below.

@wiiaboo
Copy link
Member

wiiaboo commented Jan 21, 2018

If there's internal english subtitles and the user chose to get external english subtitles, I'd figure external being prioritized makes sense.

@zc62
Copy link
Contributor Author

zc62 commented Jan 21, 2018

What if you want the internal eng sub but there are non-eng external subs preventing you from auto-selecting the eng sub? (Suppose you want to keep them, and you don't want to waste energy to launch mpv from the terminal and add --sub-auto=no for this video)

Auto-selecting between two eng subs requires #5133. But that is intended for internal vs internal, external vs external. For internal vs external, maybe when with --*-file-auto, this priority check can be lowered to just below --*lang? (*lang must be satisfied, then prefer external) Then #5127 can be fixed.
EDIT: on second thought this might not be good for existing settings. Because with --sub-auto=exact or --sub-auto=fuzzy/all but you don't indicate the language code in the filename like video_filename_wo_ext.eng.srt, it is most likely that the external subtitle will have "unknown" slang, but those subtitles are usually what we actually want. If one uses the new option that I propose in the comment below, then the user is responsible for the slang thing himself.

There are still some other possible reasons to choose internal ones:

  • External audio tracks are mostly multi-channel or commentary. Sometimes one would like to switch between internal and external. Then --audio-file-auto is necessary, otherwise those tracks are just invisible. In most cases these external tracks are not suitable to be default.
  • After 80d43ee we need to load audio files to see subtitle tracks packed in mka files, even if one does not want external audio tracks.

I do agree that the case you stated may happen. I don't know what average users see. In my personal experience, I see "same language internal audio vs external audio, prefer internal audio" far more than "same language internal sub vs external sub, prefer external sub", even more than "same language internal and external sub both exist".

@zc62
Copy link
Contributor Author

zc62 commented Jan 23, 2018

Or just make more options for --*-files-auto? There should be a way that doesn't harm existing settings. --*-files-auto=exact/fuzzy/all loads and selects external tracks, and --*-files-auto=something_else loads but does not prefer external tracks.

I think it is reasonable since even audio-add and sub-add commands have a flag auto to load but not select: https://mpv.io/manual/master/#command-interface-sub-add.

Now we have --audio/sub-files to load and select, --external-files to load but not select, I do think it is worthy to have more options to cover all the possibilities that users might want from --*-files-auto. (Though it is slightly different from --external-files here: "don't prefer", but not "don't select")

@zc62 zc62 changed the title [Feature Request] sub-auto and audio-file-auto: load but do not select [Feature Request] make --sub-auto and --audio-file-auto possible to autoload but do not prefer external tracks Jan 23, 2018
@Akemi Akemi changed the title [Feature Request] make --sub-auto and --audio-file-auto possible to autoload but do not prefer external tracks make --sub-auto and --audio-file-auto possible to autoload but do not prefer external tracks Sep 21, 2019
@Akemi Akemi added core:file core:option-param-conf config, parameters, properties, options, shortcuts labels Sep 21, 2019
@AdventurerRussia
Copy link

honestly, I didn't understand why they wouldn't introduce this, for example, the --alang=jpn parameter,ja doesn't work when external tracks are in other languages, but I would like to choose Japanese and then switch to external if necessary

@zc62
Copy link
Contributor Author

zc62 commented Feb 4, 2023

@AdventurerRussia This is because most core developers do not have similar use cases as we do. For example, wiiaboo already stated that they found the original design reasonable. Core developers did not close my issues, meaning they are open to this idea and want to see a PR for possible outcomes, and I did propose a seemingly more reasonable order in #6071, but unfortunately over the years I did not have chance to implement it myself (mainly because I seldom watch multi-track videos now). If you are interested in changing this, I hope my idea in #6071 can help (not sure how compare_track changed since then, though).

@AdventurerRussia
Copy link

this is very funny because mpv is used in very different scenarios. But the functionality for external tracks has to be modified with scripts. Although many trackers release anime with external tracks.
then what is the point of the language selection functionality if it is ignored when the tracks are external, I will not understand it.

@zc62
Copy link
Contributor Author

zc62 commented Feb 6, 2023

@AdventurerRussia Well, as I have already explained, keep complaining will not automatically make this change. To the opposite, too many complaints are likely to make core developers unhappy and reject this feature request. Instead of repeating "I do not understand", you have 3 better options to possibly make things change:

  1. implement this by yourself and raise a PR
  2. pay someone else to implement this for you if you do not write code
  3. upvote my feature request, describe your use cases and try to convince developers that this use case is reasonable. Also make sure this change will not affect others that are unaware of this change. Then, patiently wait for others that are both capable and interested in the idea to implement this. (This is what I was doing, but unfortunately my issues did not receive that many upvotes, therefore they did not catch any attention from core developers.)

In any case, repeating "I don't understand", "what is the point", etc. will only make things worse. I do appreciate it if you can realize this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
core:file core:option-param-conf config, parameters, properties, options, shortcuts meta:feature-request
Projects
None yet
Development

No branches or pull requests

5 participants