bpking1 / embyExternalUrl

some emby/jellyfin scripts
MIT License
780 stars 134 forks source link

arm架构只支持旧版脚本,新版会报错 #75

Closed chaomarks closed 7 months ago

chaomarks commented 7 months ago

应该是0.0.5版本的支持4.7.14.0,用挂载+strm的方式可以,脚本升级后不支持,emby升级后用不了脚本,只会走服务器,arm版的

chaomarks commented 7 months ago

新版报错 /docker-entrypoint.sh: Configuration complete; ready for start up 2024/04/01 08:43:46 [emerg] 1#1: "js_set" directive is not allowed here in /etc/nginx/conf.d/emby.conf:14 nginx: [emerg] "js_set" directive is not allowed here in /etc/nginx/conf.d/emby.conf:14 用的是conf.d文件夹里只有两个文件的版本

chen3861229 commented 7 months ago

最好升级一下nginx的最新版本或者确保njs > 0.4.0, 这个有点太老了,Changes with njs 0.4.0 Release Date: 23 April 2020

image

chaomarks commented 7 months ago

感谢大佬的回答!按照你的解决方案更换了nginx的镜像,nginx镜像更换成nginx:stable-alpine3.17,能代理emby了,用代理端口能播放strm直链但是无法播放本地媒体,以前用的是nginx:alpine镜像两种都可以就是本地慢一点!正在寻找解决方案!

chaomarks commented 7 months ago

// 路径映射,会在xxxMountPath之后从上到下依次全部替换一遍,不要有重叠 // arg0: 0: 默认做字符串替换, 1: 前插, 2: 尾插 // arg1: 0: 默认只处理/开头的路径且不为strm, 1: 只处理strm内部为/开头的相对路径, 2: 只处理strm内部为远程链接的 // arg2: 来源, arg3: 目标 const embyPathMapping = [ // [0, 0, "/mnt/aliyun-01", "/mnt/aliyun-02"], // [0, 2, "http:", "https:"], // [0, 2, ":5244", "/alist"], // [0, 0, "D:", "F:"], // [0, 0, /blue/g, "red"], // 此处正则不要加引号 // [1, 1, ${alistPublicAddr}/d], // [2, 2, "?xxx"], ]; ————这个配置参数是否是用来设置本地和直链一起生效的———— // rclone 的挂载目录, 例如将od, gd挂载到/mnt目录下: /mnt/onedrive /mnt/gd ,那么这里就填写 /mnt // 通常配置一个远程挂载根路径就够了,默认非此路径开头文件将转给原始emby处理,不用重复填写至disableRedirectRule // 如果没有挂载,全部使用strm文件,此项填[""],必须要是数组 const embyMountPath = ["/mnt"]; ————我将这个参数设置为空,代理依然不会播放本地媒体————

chen3861229 commented 7 months ago

最正规的是填写embyMountPath这个,根据你的媒体挂载路径和实际的alist地址取多出来的开头路径前缀填入

不过还有一种填写方式是用disableRedirectRule指定本地路径的前缀会直接转给原始媒体服务器处理

chaomarks commented 7 months ago

最正规的是填写embyMountPath这个,根据你的媒体挂载路径和实际的alist地址取多出来的开头路径前缀填入

不过还有一种填写方式是用disableRedirectRule指定本地路径的前缀会直接转给原始媒体服务器处理

我用最新版的没有挂载网盘到NAS本地,直链strm是直接用公网alist地址,然后还有本地媒体,现在是本地本地无法播放,strm直链可以播放,disableRedirectRule这个属性有点看不懂,具体怎么配置,比如本地路径是/media/海报墙/a.mp4,怎么设置呢

chaomarks commented 7 months ago

本帖问题全部解决!以下是具体情况: 本人设备:arm架构,emby镜像版本:[emby/embyserver_arm64v8:4.8.3.0],nginx镜像:[nginx:stable-alpine3.17-perl],作者脚本:2024.4.1版本。期望功能:本地媒体和strm(内容为alist公网https链接)都可以播放,已经实现。 脚本修改处:constant文件,改为自己的 1.const embyHost = "http://172.17.0.1:8096"; 2.const alistAddr = "http://172.17.0.1:5244"; 3.const alistToken = "alsit-123456"; 4.const disableRedirectRule = [ // [0, "/mnt/sda1"],第一行 // [1, ".mp3"], // [2, "Google"], // [2, "/NAS/", true],第四行 // [3, /private/ig], ];这个去掉第一行和第四行的前面的双斜杠注释,第一行我改为自己的本地目录但是应该没啥区别 以上配置修改完后直接重启就可以实现本地和直链都能快速播放