mpv-player / mpv

🎥 Command line video player
https://mpv.io
Other
28.19k stars 2.9k forks source link

secondary-sub-scale option? #14989

Open Darkmaster006 opened 1 week ago

Darkmaster006 commented 1 week ago

Expected behavior of the wanted feature

Hello! I've been tinkering with the options to show two subtitles at the same time (which is especially useful for learning new languages, for example); but I have not been able to scale each subtitle separately. So far, I have this:

mpv --sid=4 --secondary-sid=3 --sub-pos=95 --secondary-sub-pos=100 --sub-scale=1 video.mkv

Let's say ID 4 is Chinese, ID 3 is English. Chinese is chosen as primary language, and the idea with --sub-pos=95 is so that it goes above the English, while --secondary-sub-pos=100 is so that English goes below the Chinese.

What I would like to do is have the, in this case, Chinese, be scaled bigger than the English. I have sub-scale=0.500 in my mpv.conf, so --sub-scale=1 would be double, but it seems to scale both subtitles at the same time, which is not what I would like. There does not seem to be a "--secondary-sub-scale" option anywhere, so it seems the default is to scale both, could this option be added? Thank you very much.

Alternative behavior of the wanted feature

No response

Log File

No response

Sample Files

No response

kuraga commented 1 week ago

(which is especially useful for learning new languages, for example)

I use it in such way, too!

Darkmaster006 commented 1 week ago

(which is especially useful for learning new languages, for example)

Use it as such!

What do you mean?

VimWei commented 1 week ago

mpv-0001 mpv-0002

VimWei commented 1 week ago

Fixed :)

How?

Darkmaster006 commented 1 week ago
  • dualsubs-creat.lua

    • Create bilingual ASS subtitles with pop movie style
    • Uses currently selected primary and secondary subtitles
    • Supports both external and embedded subtitles

mpv-0001 mpv-0002

Thank you, this could be very useful, but I couldn't get it to work. I got both dualsubs-creat.lua dualsubs-init.lua and dualsubs-creat.conf dualsubs-init.conf and I want to use Primary sub: Chinese (simplified) Secondary sub: Spanish (if there's no Spanish, either English or French) My absolute perfect config would be: mpv --sid=1 --secondary-sid=3 --sub-pos=90 --secondary-sub-pos=95 "video.mkv" 1 being Chinese (simplified) 2 is Chinese (trad) 3 is Spanish Chinese goes above Spanish, either at 95 if CHI is 90, or at 100 if CHI is 95. Then, if secondary sub scale existed: mpv --sid=1 --secondary-sid=3 --sub-pos=90 --secondary-sub-pos=95 --sub-scale=1 --secondary-sub-scale=0.5 "video.mkv" that is, Chinese at 1 or 1.1 and Spanish at 0.5 or maybe 0.6. In any case, I tried changing the code in dualsubs-init.conf, from primary_langs=en,eng,english secondary_langs=zh,chs,chi,chinese to primary_langs=zh,chs,chi,chinese secondary_langs=es,spa,spanish but it would not work, and it always default the second subtitle to the other Chinese track (trad) in the file, even when I use --secondary-sid=3 it just changes it to 2. Also, the dualsubs-creat.lua does not seem to work, as what shift+B does is just start to cycle through the video in a weird way where I can't control it anymore. Either way, thank you very much, any help is appreciated.

VimWei commented 1 week ago

I haven't tested it with .mkv video files or subtitle formats other than .srt.

You could test it using a .mp4 video file with .zh.srt and .es.srt subtitle files.

If you encounter any issues, feel free to use notdiamond.ai for assistance.

VimWei commented 1 week ago

dualsubs-create.lua takes as input the current primary and secondary subtitles that are visible to you. You don't necessarily need to use dualsubs-init.lua. dualsubs-init.lua and dualsubs-create.lua are two separate lua srcipt. dualsubs-init.lua only serves to make mpv automatically load dual subtitles when starting a video, and has no other purpose.

Darkmaster006 commented 1 week ago

dualsubs-create.lua takes as input the current primary and secondary subtitles that are visible to you. You don't necessarily need to use dualsubs-init.lua. dualsubs-init.lua and dualsubs-create.lua are two separate lua srcipt. dualsubs-init.lua only serves to make mpv automatically load dual subtitles when starting a video, and has no other purpose.

I see, so in case I've got four subtitles, it would take only the first two always? Thanks.

VimWei commented 1 week ago

I see, so in case I've got four subtitles, it would take only the first two always? Thanks.

No. It will take subs which you set in primary sub and secondary sub, just what you see in the screen when you play the video.

Darkmaster006 commented 6 days ago

I see, so in case I've got four subtitles, it would take only the first two always? Thanks.

No. It will take subs which you set in primary sub and secondary sub, just what you see in the screen when you play the video.

Alright, I see what you mean now. Sadly, this does not seem to work with .mkv. After "parsing" the video two times, each for one sub, I guess, it says: [dualsubs_creat] No external primary subtitle file found, reading from video [dualsubs_creat] No external secondary subtitle file found, reading from video [dualsubs_creat] Failed to create bilingual subtitles