找回密码
 立即注册
查看: 659|回复: 8

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

该用户从未签到

1

主题

4

回帖

0

VC币

新手上路

Rank: 1

积分
46
海马体插座 发表于 2024-7-7 22:26:17 | 显示全部楼层 |阅读模式
本帖最后由 海马体插座 于 2024-7-7 22:26 编辑

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

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






回复

使用道具 举报

该用户从未签到

0

主题

4

回帖

0

VC币

新手上路

Rank: 1

积分
58
薛定谔巴巴托斯 发表于 2024-7-8 08:13:06 | 显示全部楼层
能不能整成js脚本前端就能用
回复

使用道具 举报

该用户从未签到

1

主题

4

回帖

0

VC币

新手上路

Rank: 1

积分
46
海马体插座  楼主| 发表于 2024-7-8 11:29:53 | 显示全部楼层
薛定谔巴巴托斯 发表于 2024-7-8 08:13
能不能整成js脚本前端就能用

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

使用道具 举报

该用户从未签到

0

主题

4

回帖

0

VC币

新手上路

Rank: 1

积分
58
薛定谔巴巴托斯 发表于 2024-7-8 12:31:30 | 显示全部楼层
本帖最后由 薛定谔巴巴托斯 于 2024-7-8 12:32 编辑
海马体插座 发表于 2024-7-8 11:29
emby网页版并不支持读取ass内嵌字体

哦我想的是外挂字幕然后打开pot或者mpv播放,感觉这样可以做成js脚本吧
回复

使用道具 举报

该用户从未签到

1

主题

4

回帖

0

VC币

新手上路

Rank: 1

积分
46
海马体插座  楼主| 发表于 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

回复

使用道具 举报

该用户从未签到

0

主题

4

回帖

0

VC币

新手上路

Rank: 1

积分
58
薛定谔巴巴托斯 发表于 2024-7-8 15:20:07 | 显示全部楼层
海马体插座 发表于 2024-7-8 13:23
添加了个接口,只需要在调用外部播放器的时候,将原本的字幕URL修改下就可以,例如:

原始URL

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

使用道具 举报

该用户从未签到

1

主题

4

回帖

0

VC币

新手上路

Rank: 1

积分
46
海马体插座  楼主| 发表于 2024-7-8 15:32:33 | 显示全部楼层
薛定谔巴巴托斯 发表于 2024-7-8 15:20
感谢添加,请问能不能出个教程,感觉如果做成docker一键部署会更好

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

后期会完善下README的
回复

使用道具 举报

该用户从未签到

0

主题

4

回帖

0

VC币

新手上路

Rank: 1

积分
58
薛定谔巴巴托斯 发表于 2024-7-8 16:54:15 | 显示全部楼层
海马体插座 发表于 2024-7-8 15:32
Docker就没必要了,就一个单py文件和一个数据文件。直接运行就可以。

后期会完善下README的

好的谢谢
回复

使用道具 举报

该用户从未签到

1

主题

4

回帖

0

VC币

新手上路

Rank: 1

积分
46
海马体插座  楼主| 发表于 2024-8-19 18:08:05 | 显示全部楼层
本帖最后由 海马体插座 于 2024-8-19 18:09 编辑
薛定谔巴巴托斯 发表于 2024-7-8 15:20
感谢添加,请问能不能出个教程,感觉如果做成docker一键部署会更好

整合了下nginx反向代理做了个docker版,现在只需要设置下emby服务器地址,然后容器映射个端口到外面,就可以直接从新的端口实现自动子集化功能了。




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



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表