xxxxxxxxxx#2025-12-16 改动新增字幕OCR识别后重新渲染文字功能,为后续做字幕翻译做准备。
## 更早改动使用Rust编写的字幕插件,效率更高新增支持Astro的图形字幕,虽然无法做到尽善尽美,但是也比o11原本推流出来的效果好一点
x
version'3.3'services o11v4 imagecharmingcheung000/o110.0.2 container_nameo11v4 restartalways ports"23124:18484" volumes/root/docker/o11_data:/home/o11 extra_hosts"subtitle.rust.local:172.30.0.11" depends_onmpd-subtitle-hook-rust networksapp-network
mpd-subtitle-hook-rust imagecharmingcheung000/mpd-subtitle-hook-rustlatest container_namempd-subtitle-hook-rust volumes挂载字体目录:/app/fonts:ro environmentPROXY_HTTP= #http或者socks代理FONT_SIZE=40 #字体大小STROKE_WIDTH=2 #描边宽度BOTTOM_MARGIN=50 #底部距离CHAR_SPACING=5 #字距LINE_HEIGHT=2 #行距FONT_PATH=DFPHeiMedium-B5.ttf #字体文件名,ttf或者ttc都可以。字体文件放在挂载字体目录里,目前必须要放。 networks app-network ipv4_address172.30.0.11
networks app-network driverbridge ipam configsubnet172.30.0.0/16• 如果本机推流需要代理,请在mpd-subtitle-hook-rust中配置代理 • o11v4需要去掉代理设置,因为mpd和分片请求现在由mpd-subtitle-hook-rust处理 如果报错:
xxxxxxxxxxfailed to create network o11v4_app-network: Error response from daemon: invalid pool request: Pool overlaps with other one on this address space
请查看一下现在docker网段使用情况:
xxxxxxxxxxdocker network inspect $(docker network ls -q) | grep -E "Name|Subnet"然后`172.250.0.0改成一个没有占用过的网段即可。• Running Mode:Internal remuxer • 确保去掉代理设置
如果使用pixman容器的mytvsuper推翡翠台:
• 原地址:https://xxx.xxx.com/mytvsuper/J
• o11 Manifest填入:http://subtitle.rust.local:8000/jump?url=https://xxx.xxx.com/mytvsuper/J
• Keys按正常配置填写
当你发现某些频道出来的图片还是比正常的大一两个字号,这通常是因为这个频道的图片字幕是基于比720p更大的画布去做的。所以你可以在这些频道的代理链接里对画布加上1080p或者4k参数,去让这个字体显得小一点。
参数名canvas_size
原链接:http://subtitle.rust.local:8000/jump?url=https://xxx.xxx.com/mytvsuper/J
设置为1080p画布:http://subtitle.rust.local:8000/jump?canvas_size=1080p&url=https://xxx.xxx.com/mytvsuper/J
设置为4k画布:http://subtitle.rust.local:8000/jump?canvas_size=4k&url=https://xxx.xxx.com/mytvsuper/J
⚠️注意: 有些朋友填写的url没有URL Encode,所以最好不要把canvas_size加在url参数后面,以免被错误识别。加在url参数前面是最稳妥的选择。
可以添加OCR图片字幕组件 charmingcheung000/subtitle-ocr
这个组件会把图形字幕先OCR识别成文本,然后再走文本渲染字幕流程,这样就会是自己想要的字体效果。
x
version'3.3'services o11v4 imagecharmingcheung000/o110.0.2 container_nameo11v4 restartalways ports"23124:18484" volumes/root/docker/o11_data:/home/o11 extra_hosts"subtitle.rust.local:172.30.0.11" depends_onmpd-subtitle-hook-rust networksapp-network
mpd-subtitle-hook-rust imagecharmingcheung000/mpd-subtitle-hook-rustlatest container_namempd-subtitle-hook-rust volumes挂载字体目录:/app/fonts:ro environmentPROXY_HTTP= #http或者socks代理FONT_SIZE=40 #字体大小STROKE_WIDTH=2 #描边宽度BOTTOM_MARGIN=50 #底部距离CHAR_SPACING=5 #字距LINE_HEIGHT=2 #行距FONT_PATH=DFPHeiMedium-B5.ttf #字体文件名OCR_API_URL=http://subtitle.ocr.local:8080/ocr #⚠️⚠️⚠️⚠️⚠️⚠️注意看这里 networks app-network ipv4_address172.30.0.11 depends_on#⚠️⚠️⚠️⚠️⚠️⚠️注意看这里subtitle-ocr extra_hosts#⚠️⚠️⚠️⚠️⚠️⚠️注意看这里"subtitle.ocr.local:172.30.0.15" subtitle-ocr#⚠️⚠️⚠️⚠️⚠️⚠️注意看这里 imagecharmingcheung000/subtitle-ocrlatest container_namesubtitle-ocr networks app-network ipv4_address172.30.0.15 environmentRUST_LOG=info restartalways
networks app-network driverbridge ipam configsubnet172.30.0.0/16
参数名ocr=1
原链接:http://subtitle.rust.local:8000/jump?url=https://xxx.xxx.com/mytvsuper/J
开启OCR识别+重新渲染:http://subtitle.rust.local:8000/jump?ocr=1&url=https://xxx.xxx.com/mytvsuper/J
⚠️注意: 有些朋友填写的url没有URL Encode,所以最好不要把ocr参数加在url参数后面,以免被错误识别。加在url参数前面是最稳妥的选择。