海马体插座 发表于 2024-7-7 22:26:17

在emby中实时处理字体嵌入字幕的思路与实现

本帖最后由 海马体插座 于 2024-7-7 22:26 编辑

本人一直是用emby管理番剧的,但是关于字幕的字体一直都没找到满意的解决方案。
不久前偶然发现了论坛大佬写的工具:assfonts: 字体文件子集化工具,才知道原来还可以将字体嵌入到ass中。
参考emby+nginx实现直链播放的方法,这里提出一个新的思路。
当客户端请求字体时,使用nginx实时将ass文件发送到外部程序,并将嵌入字体后的ass替换原本的请求返回给客户端。
不用手动处理字幕,也不用额外安装字体,同时也解决了某些平台不支持安装字体的问题。

已实现基本功能,供参考: github.com/RiderLty/fontInAss
将VCB的50G字体包上传了下,可直接调用。




https://fonts.storage.rd5isto.org/QQ%E6%88%AA%E5%9B%BE20240707222313.png

薛定谔巴巴托斯 发表于 2024-7-8 08:13:06

能不能整成js脚本前端就能用

海马体插座 发表于 2024-7-8 11:29:53

薛定谔巴巴托斯 发表于 2024-7-8 08:13
能不能整成js脚本前端就能用

emby网页版并不支持读取ass内嵌字体

薛定谔巴巴托斯 发表于 2024-7-8 12:31:30

本帖最后由 薛定谔巴巴托斯 于 2024-7-8 12:32 编辑

海马体插座 发表于 2024-7-8 11:29
emby网页版并不支持读取ass内嵌字体
哦我想的是外挂字幕然后打开pot或者mpv播放,感觉这样可以做成js脚本吧

海马体插座 发表于 2024-7-8 13:23:00

薛定谔巴巴托斯 发表于 2024-7-8 12:31
哦我想的是外挂字幕然后打开pot或者mpv播放,感觉这样可以做成js脚本吧

添加了个接口,只需要在调用外部播放器的时候,将原本的字幕URL修改下就可以,例如:

原始URL
htt p://192.168.3.1:7096/emby/Videos/12251/61581b79b9d05ab12da240ac2c22c149/Subtitles/0/Stream.ass

新URL

htt p://localhost:8011/process_url?ass_url=htt p://192.168.3.1:7096/emby/Videos/12251/61581b79b9d05ab12da240ac2c22c149/Subtitles/0/Stream.ass

薛定谔巴巴托斯 发表于 2024-7-8 15:20:07

海马体插座 发表于 2024-7-8 13:23
添加了个接口,只需要在调用外部播放器的时候,将原本的字幕URL修改下就可以,例如:

原始URL


感谢添加,请问能不能出个教程,感觉如果做成docker一键部署会更好

海马体插座 发表于 2024-7-8 15:32:33

薛定谔巴巴托斯 发表于 2024-7-8 15:20
感谢添加,请问能不能出个教程,感觉如果做成docker一键部署会更好

Docker就没必要了,就一个单py文件和一个数据文件。直接运行就可以。

后期会完善下README的{:4_679:}

薛定谔巴巴托斯 发表于 2024-7-8 16:54:15

海马体插座 发表于 2024-7-8 15:32
Docker就没必要了,就一个单py文件和一个数据文件。直接运行就可以。

后期会完善下README的


好的谢谢{:4_681:}

海马体插座 发表于 2024-8-19 18:08:05

本帖最后由 海马体插座 于 2024-8-19 18:09 编辑

薛定谔巴巴托斯 发表于 2024-7-8 15:20
感谢添加,请问能不能出个教程,感觉如果做成docker一键部署会更好
整合了下nginx反向代理做了个docker版,现在只需要设置下emby服务器地址,然后容器映射个端口到外面,就可以直接从新的端口实现自动子集化功能了。{:13_906:}




docker run -d --name=fontinass --restart=unless-stopped \
-p 8012:8012 \
-e EMBY_SERVER_URL=http://: \
riderlty/fontinass:latest



页: [1]
查看完整版本: 在emby中实时处理字体嵌入字幕的思路与实现