wang-bin / mdk-sdk

multimedia development kit. download:
https://sourceforge.net/projects/mdk-sdk/files/
289 stars 32 forks source link

额外字幕的添加 #159

Closed axojhf closed 11 months ago

axojhf commented 11 months ago

Is your feature request related to a problem? Please describe. 当字幕并没有和视频文件混流在一起的时候,目前mdk好像还是没办法额外从本地文件或url链接添加字幕

Describe the solution you'd like Player可以尝试多暴露出几个函数:

  1. autoFindSubtitle(bool enable); 是否自动寻找同目录下文件名前缀相同的字幕文件 如:媒体文件为aaa.mp4时尝试寻找aaa.ass,aaa.sc.ass字幕文件
  2. setSubtitle(char *url); 从指定的url(包括本地路径)载入字幕文件

以及应该可以允许现有函数setActiveTracks选择额外载入的字幕轨道

Describe alternatives you've considered Additional context 关于自动寻找字幕,根据我对potplayer,XySubFilter,mpv的观察,它们都能自动识别的文件名类似如下的形式

视频文件名:aaa.mkv 字幕文件名:

此外XySubFilter貌似是可以设置字幕搜索路径的: image

wang-bin commented 11 months ago

https://github.com/wang-bin/mdk-sdk/wiki/Player-APIs#void-setmediaconst-char-url-mediatype-type 这个接口可以设置外挂字幕、音轨url,url指定的文件有相应的轨道就行,比如可以是单纯的ass文件,也可以是个有字幕的视频,可以配合setActiveTracks一起使用选择url里哪个轨道。没有支持自动查找和加载主要是考虑到不同平台的文件系统访问区别很大,沙箱环境甚至没法直接访问未通过ui交互授权的路径(比如uwp、ios、macos),所以干脆让应用自己去处理,目前也没想到更好的行为统一的方法。

axojhf commented 11 months ago

https://github.com/wang-bin/mdk-sdk/wiki/Player-APIs#void-setmediaconst-char-url-mediatype-type 这个接口可以设置外挂字幕、音轨url,url指定的文件有相应的轨道就行,比如可以是单纯的ass文件,也可以是个有字幕的视频,可以配合setActiveTracks一起使用选择url里哪个轨道。没有支持自动查找和加载主要是考虑到不同平台的文件系统访问区别很大,沙箱环境甚至没法直接访问未通过ui交互授权的路径(比如uwp、ios、macos),所以干脆让应用自己去处理,目前也没想到更好的行为统一的方法。

好的,确实是漏了API文档,另外可以麻烦在头文件和文档添加一下设置额外字幕的注释么,我当时是直接搜subtitle的,也没仔细看就漏了

wang-bin commented 11 months ago

wiki已更新,头文件后面再更新

axojhf commented 11 months ago

好的