1 - 将服务器文件入库转码

将服务器里的视频文件入库到视频管理,入库自动分类,封面自动入库,入库自动烧录ass和srt字幕。

入库步骤

入库文件夹为movies,如果我程序安装路径为/home/express-ffmpeg,则入库文件夹为/home/express-ffmpeg/movies

首先设置好入库文件类型,可在转码设置处设置,设置参考:

#比如入库mp4文件,则填入.mp4,多个后缀之间用英文逗号,分开
.mp4,.mkv,.avi,.rmvb,.dat,.flv,.mpg,.mpeg,.rm,.mov,.wmv,.asf

最后再将需要切片的视频上传或转移到入库文件夹,然后点击视频管理的扫描入库即可。

且视频入库期间,如果存在名称重复的视频,则不会入库到视频管理处。

入库自动分类

入库支持自动分类,如我在入库文件夹movies新建一个名为教育片的子文件夹,那么我将视频存放到教育片的文件夹,入库的时候这些视频会自动分类教育片,且如果该分类不存在会自动创建。

入库分类只支持一级目录,比如movies/教育片;二级及以上层级的目录均不会入库,如movies/教育片/儿童教育等。

入库自动增加前缀

提示:如果入库分类的一级目录符合自动增加前缀的要求,那么不会触发自动分类,也就仅作为自动命名使用。

入库支持自动增加前缀,适用于多个剧集,且单集名称均为集数命名,如0102

如我在入库文件夹movies新建一个子文件夹,命名要求:rename剧集名称,如rename西游记,然后将所有单集存放到该文件夹,入库的时候,里面视频会自动加上剧集名称前缀,如01会命名成西游记 0102会命名成西游记 02

封面自动入库

入库支持使用自有封面,即转码完成后,封面1封面2均显示的是自己入库的时候设置的封面。

需要将封面文件的名称修改成对应的视频名称,存放到同一入库根目录文件夹或者一级分类文件夹,如:

#入库文件夹movies的根目录
movies/西游记.mp4
movies/西游记.jpg

#入库文件夹movies的一级分类神话片文件夹
movies/神话片/西游记.mp4
movies/神话片/西游记.jpg

且后缀不用管,前面名称一样就行,且封面仅支持jpgjpegpngwebp

入库烧录ass和srt字幕

入库支持字幕文件烧录,也就是转码的时候,会自动烧录入库文件夹的asssrt字幕文件。

规则和封面自动入库一样,即将asssrt字幕的名称修改成对应的视频名称,存放到同一入库根目录文件夹或者一级分类文件夹,如:

#入库文件夹movies的根目录
movies/西游记.mp4
movies/西游记.ass

#入库文件夹movies的一级分类神话片文件夹
movies/神话片/西游记.mp4
movies/神话片/西游记.ass

后缀不用管,前面名称一样就行,这样转码的时候字幕会自动烧录进视频,注意秒切是不会烧录字幕的。

筛选字幕烧录

提示:该功能可指定烧录带有语言标识的字幕文件,即无需字幕文件和视频同名。

一般字幕文件需和视频同名才会被烧录,如果你的字幕文件有一到多个,且都带有语言标识,也就是和视频不完全同名,可前往转码设置设置筛选字幕烧录功能项,可以烧录指定语言的字幕文件。

设置格式zh-Hanszh-Hans|BluRayzh-Hans|BluRay|forced,支持N个关键词,多个关键词使用|分开,参数详解:

1、如设置zh-Hans,则会匹配同时包含视频名称和zh-Hans的字幕文件,如:
movies/西游记.mp4
movies/西游记.zh-Hans.ass
movies/西游记.zh-Hant.ass
这时候视频会匹配并烧录字幕 西游记.zh-Hans.ass

2、如设置zh-Hans|BluRay,则会匹配同时包含视频名称、zh-Hans和BluRay的字幕文件,如:
movies/西游记.mp4
movies/西游记.zh-Hans.ass
movies/西游记.zh-Hant.ass
movies/西游记.zh-Hans.BluRay.ass
movies/西游记.zh-Hant.BluRay.ass
这时候视频会匹配并烧录字幕 西游记.zh-Hans.BluRay.ass

3、如设置zh-Hans|BluRay|forced,则会匹配同时包含视频名称、zh-Hans、BluRay和forced的字幕文件,如:
movies/西游记.mp4
movies/西游记.zh-Hans.ass
movies/西游记.zh-Hant.ass
movies/西游记.zh-Hans.BluRay.ass
movies/西游记.zh-Hant.BluRay.ass
movies/西游记.zh-Hans.BluRay.forced.ass
movies/西游记.zh-Hant.BluRay.forced.ass
这时候视频会匹配并烧录字幕 西游记.zh-Hans.BluRay.forced.ass

该设置项为递进筛选,通常第一个关键词为语言,如果第一个关键词没有筛选到任何字幕文件,则不会继续筛选,会默认使用和视频同名的字幕文件。

如果第一个关键词只筛选出一个字幕文件,则不会继续筛选,会默认使用该字幕文件。

如果第一个关键词筛选出多个字幕文件,则会使用第二个关键词从选出的字幕文件继续筛选,直到只选出一个字幕文件后不会继续筛选,会默认使用该字幕文件;当关键词都用完了,还是有多个字幕文件符合,则会随机使用其中一个字幕文件。

入库API使用

可远程使用该apimovies所有视频入库到视频库,再自动转码,用法如下:

POST /api/ruku

body: {
    apikey,
}

response: {
    success: 1,
}

#curl命令使用示例,apikey可在转码设置处获取
curl http://127.0.0.1:3000/api/ruku -d "apikey=5c20cEga"

2 - 下载网盘的视频入库转码

如果我们本地上传的速度很慢,可以先传到网盘,再将网盘文件下载入库,或直接下载网盘现有的资源。

一般我们使用EFV上传视频的时候,由于本地和服务器之间网络连接不理想,导致上传比较慢,这里我们可以通过网盘中转提高上传效率。

大致原理就是,我们将视频文件上传到一些合适的网盘,如阿里云、115、百度、天翼等网盘,然后再使用服务器下载这些网盘的视频,通过入库功能导入到EFV进行转码切片。

或者你网盘有很多视频文件,也可以直接把视频下载到服务器,再入库进行转码,

这里就推荐一款比较好的工具AList,差不多算是你见过的网盘都可以挂载了,很全面,支持网盘如下:

本地存储
Crypt
阿里云盘Open
阿里云盘
OneDrive/APP/SharePoint(国际版、世纪互联、de、us)
GoogleDrive
123云盘/分享/直链
FTP/SFTP
PikPak/分享
S3对象存储
又拍云对象存储
WebDAV(支持无API的OneDrive/SharePoint)
Teambition(中国、国际)
分秒帧
天翼云盘(个人云、 家庭云)
中国移动云盘(个人云、 家庭云)
中国联通云盘
四川电信魔盘
Yandex.Disk
百度网盘/分享
夸克网盘
迅雷网盘
蓝奏云、蓝奏云优享版
小飞机网盘
阿里云盘分享
谷歌相册
Mega.nz
一刻相册
TeraBox-海外百度
AList v2/v3
SMB
别名
115
Seafile
Cloudreve
Trainbit
UrlTree
IPFS
UC网盘
Dropbox
腾讯微云
腾讯智能创作平台
超星星小组盘
曲奇云盘

后期支持列表可能会有变化,具体可查看官方文档 ⇒ 传送门

安装AList

首先安装DockerLinux快速安装Docker传送门,然后在SSH客户端使用命令:

#/opt/alist为数据存放目录,自行修改,且为绝对路径。
docker run -d --restart=unless-stopped -v /opt/alist:/opt/alist/data -p 5244:5244 -e PUID=0 -e PGID=0 -e UMASK=022 --name="alist" xhofe/alist:latest

#设置Alist的admin管理员密码,NEW_PASSWORD为密码,可自行修改
docker exec -it alist ./alist admin set NEW_PASSWORD

接下来浏览器访问AListweb地址,也就是服务器ip:5244

如访问不了,则还需要开放服务器的5244端口,使用命令:

#CentOS 7+、AlmaLinux、Rocky Linux系统
firewall-cmd --zone=public --add-port=5244/tcp --permanent
firewall-cmd --reload

#Debian、Ubuntu系统
ufw allow 5244

如果你有安装宝塔,也可以直接在宝塔左侧安全开放。

挂载网盘

我们通过浏览器访问AListweb地址,也就是服务器ip:5244,再使用管理员账户登录。

接着直接访问服务器ip:5244/@manage/storages,点击添加,选择适合自己的网盘;可参考 ⇒ 传送门

挂载好了后,我们直接访问AList主页就可以获取到相应的视频链接,然后可以通过切片后台的下载中心或者其它方式下载到服务器入库转码了。

挂载或使用期间如果出现相关错误,可参考:AList报错码解决AList常见问题

3 - 多码率设置和自适应M3U8

多码率转码会在转码的时候保持源视频分辨率,或强行修改视频的分辨率,然后根据设置的码率智能分配。

多码率说明及设置

提示:多码率相关功能仅在转码下生效,秒切不生效,秒切默认为源片分辨率和码率。

多码率转码可以同时将视频转码到240P360P480P640P720P1080P2K原画多个分辨率视频,且转码时候均会压缩体积。

原画也就是默认设置为源片的分辨率和码率参数转码,并会给你压缩体积。

码率设置

点击EFV后台左侧 ⇒ 转码设置 ⇒ 多码率和码率设置;如果你想同时转多个分辨率视频就选择多个分辨率即可。

这里会根据你的选择,强行给你改变源片的分辨率和码率,且清晰度主要由码率决定,码率为可变码率,会随机波动。

帧率设置

点击EFV后台左侧 ⇒ 转码设置 ⇒ 帧率设置;在相同分辨率码率下,帧率越高,视频可能越流畅,但转码可能会越慢,自行根据服务器配置进行选择。

跳过高分辨率说明

点击EFV后台左侧 ⇒ 转码设置 ⇒ 跳过高分辨率;如果你多码率选择360P720P1080P,且开启了跳过高码率,则如果源片为720P,则转码的时候,只会给你转360P720P,也就是设置的分辨率里面,不会给你转码到比源片高的分辨率。

且当设置的分辨率都高于源片的分辨率的时候,默认给你转码原画,即源片的分辨率和码率。

自适应M3U8说明

自适应M3U8为魔改版m3u8,会将你多码率转码生成的所有分辨率m3u8合成为一个自适应m3u8,用户读取自适应M3U8的时候,会根据用户网络情况自动匹配最佳分辨率m3u8,防止用户卡顿。

自适应M3U8EFV自动生成的虚拟链接,即你在服务器上找不到该m3u8文件,但是你依然可以访问该链接。

相关设置

提示:如果你的自适应M3U8播放失败,可以参考下方说明进行解决。

通过自适应M3U8获取的所有分辨率m3u8的域名均为转码设置的设置域名,请求如下:

#自适应m3u8链接,拼接组合:/movie/auto/ + 视频id + .m3u8
/movie/auto/61f68205eeeec878ae3fe3d5.m3u8

#该自适应m3u8的内容
#EXTM3U
#EXT-X-STREAM-INF:BANDWIDTH=4000000,AVERAGE-BANDWIDTH=4000000,RESOLUTION=848x477
http://127.0.0.1:3000/videos/202201/31/61f68205eeeec878ae3fe3d5/gee9g1/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=7000000,AVERAGE-BANDWIDTH=7000000,RESOLUTION=1280x720
http://127.0.0.1:3000/videos/202201/31/61f68205eeeec878ae3fe3d5/217g7g/index.m3u8

http://127.0.0.1:3000就是转码设置的设置域名对应的参数,所以该域名必须设置且要正确,不然会导致自适应M3U8获取不到所有分辨率m3u8的正确域名,最终导致播放不了。

且该设置域名可以直接填入EFV绑定的域名地址;如果你的m3u8全部同步到了云存储,这里也可以设置云存储的域名,即自适应M3U8会获取到云存储的m3u8地址,也可以播放。可以自行拓展玩法。

4 - 封面1和封面2及截图说明

转码会自动生成封面1、封面2及相关截图,这里会简单说明封面1和封面2的区别,及截图处理逻辑

封面1

提示:苹果CMS采集和WordPress导入默认使用封面1,可在后台各自的设置页面调整到封面2。

封面1的长和宽由转码设置自定义封面宽度和长度选项决定,可自行设置或默认即可;

通过程序自动生成,后台上传,或详情编辑的豆瓣接口获取的封面,均会根据设置自动裁剪处理。

但通过服务器封面入库、下载中心入库的封面是不会对长宽进行处理,均会保留入库源图的长宽大小。

封面2

提示:内置CMS默认使用封面2,且为横屏显示,如果你已使用竖屏海报,可在CMS设置调整到竖屏显示。

封面2为自适应宽高比例,且数据库里边带有其宽高数据。

通过程序转码自动生成的封面2逻辑和封面1一样,长和宽由转码设置自定义封面宽度和长度选项决定。

但通过后台上传的封面2 、服务器封面入库、或详情编辑的豆瓣接口获取的封面不会按照你设置的长宽裁剪,而是会自适应处理宽高比例,适用于影视相关的海报图片。

注意封面2还预留一个不裁剪上传选项,即不对上传图片做任何处理,最大化保留源图的长宽大小,可上传gif动态图片。

截图

提示:如果需要视频第一帧图片,可以前往转码设置开启第一帧截图。

截图的长宽由视频分辨率决定,默认从转码处理后的MP4截图,也就是此时截图长宽就是你设置的转码分辨率。

如果你想设置转码之前截图,也就是不经过处理的源片截图,需前往转码设置开启转码前截图,此时截图长宽就是源片分辨率。

截图逻辑就是,视频总时长除以设置的截图数,取平均时长的截图。

5 - 跑马灯和水印设置步骤

静态图片水印、gif动态图片水印、文字跑马灯、静态文字水印、全屏弹动水印、文字闪现水印,ASS水印等。
提示:加水印、跑马灯必须要转码下才生效;秒切是无效的,也就不会给你加任何水印、跑马灯。

目前跑马灯和水印支持7种类型,即:

静态图片水印
文字跑马灯
静态文字水印
图片弹/移动水印,即图片水印在全屏有规律移动
文字随机闪现水印,即文字在全屏无规律的出现
gif动态水印,可用作特效动态水印
ASS水印,可用于ASS水印和跑马灯

操作步骤

先点击EFV后台左侧 ⇒ 转码相关 ⇒ 水印/跑马灯设置 ⇒ 所见即所得编辑器 ⇒ 点击添加按钮,具体操作可看下方视频。

视频演示

提示:请点击播放器右下角全屏按钮进行观看。
绑定分类和随机使用水印
提示:目前EFV最新版和演示视频区别就是,新版已新增分类绑定和随机使用水印功能,操作更灵活。

设置好各种类型的跑马灯和水印后,默认对全部的视频同时生效,如果你想部分的水印和跑马灯只对某些分类的视频生效,则可直接在跑马灯/水印页面给跑马灯和水印绑定好视频分类即可。

绑定好分类后,转码的时候,该水印和跑马灯就只对该分类的视频生效,其它分类的视频就不会生效了,可以用来给不同分类的视频设置不同的水印和跑马灯。

最后如果你同类型的水印和跑马灯设置了很多个,然后想每次视频转码随机使用其中1或多个,则可直接在跑马灯/水印页面点击随机设置,进行相关调整即可。

时间说明

默认的时间规则从0秒开始,然后根据持续时间间隔时间的设置来循环,这里的失效时间仅为0秒到多少秒不出现指定跑马灯/水印。

比如我设置跑马灯持续时间为30秒,间隔时间为200秒,失效时间为40秒,则具体规则如下:

1、根据默认的时间规则,跑马灯出现顺序为0-30秒,200-230秒,400-430秒等。
2、由于我设置的失效时间为40秒,也就是0秒到40秒不出现该跑马灯,则上面的0-30秒段跑马灯不会出现,只会出现200-230秒,400-430秒等。
3、也就是如果失效时间在30-200秒之间的效果都一样,都是从第二段200-230秒,400-430秒等出现。

持续时间:静态图片、静态文字、gif动态这3个水印可以不设置,不设置默认全程显示;但是跑马灯、文字闪现、图片移动这些水印必须设置,不然会转码错误。

间隔时间:不支持静态图片、静态文字、gif动态这3个水印,即这些水印可以不用设置;但是跑马灯、文字闪现、图片移动这些水印必须设置,不然会转码错误。

失效时间:对所有水印都起作用,如不设置,则不会对水印开始时间产生影响,即从0秒开始作用。

操作说明

添加好相关类型水印后,需要使用鼠标左键拖动水印的位置,用来获取水印的坐标。

跑马灯由于是水平移动,所以只需要调整高度即可;图片弹动水印和文字闪现水印运动轨迹都是内置的,所以你可以随便移动到哪,仅用于获取坐标并设置时间。

最后每一个水印设置好相关时间后,都要点保存设置;如果未提交之前想重新调整下位置和时间,可以继续拖动水印并设置,调整完毕后点保存即可。

文本水印字体修改

跑马灯水印、静态文字水印、文字闪现水印,这几个水印的字体样式都是可以修改的,可直接前往转码设置,找的字体相关设置项进行调整。

ASS水印设置

目前ASS水印编辑功能还未完善,上手可能有点难度,有经验的可以试试。

先点击EFV后台左侧 ⇒ 转码相关 ⇒ 转码设置 ⇒ 开启全局ASS特效字幕,然后设置ASS水印代码即可。

ASS水印会和上方设置的各种类型的水印、跑马灯同时生效,在转码的时候会自动烧录进所有视频中。

6 - 自定义切片路径设置规则

支持自定义切片路径,但依旧以切片目录videos为参考,随机组合年月日、视频名称及分辨率等路径命名方式。

自定义切片路径,并不是说给你存放到任意文件夹,还是以切片目录videos为参考,只是更改M3U8存储目录的命名方式。

设置步骤

点击EFV后台左侧 ⇒ 转码设置 ⇒ 找到自定义切片路径选项,且默认设置路径为{yy}{mm}/{dd}/{id}/{random}

路径可用的变量参数如下:

#可用日期的变量,可以使用1个或多个,可以都不用,组合参考{yy}{mm}/{dd},{yy}/{mm}{dd}
{yy}为当前年份2021
{mm}为当前月份04
{dd}为当前日期21

#用来存储视频的变量,必须存在一个或多个,推荐要么只使用{id},要么{id}{name}一起用,防止出现文件夹重复的报错。
{id}为24位唯一ID,也就是不会重复
{name}为转码的视频名

#可用的分辨率存储变量,必须存在一个,且只能存在一个,要么{random},要么{hd}
{random}为随机6位字符
{hd}为分辨率如720

注意除了分辨率变量,其它变量可以连在一起,也可以使用/隔开,也就是文件夹目录层的写法。

分辨率变量必须放到最后面,并使用/隔开,如/{random}/{hd},不然转码会出错。

示例参考

#示例一
{yy}{mm}/{dd}/{id}/{random},即生成的m3u8链接参考/videos/202105/01/608ce526c78d944ef4707a89/g803c3/index.m3u8

#示例二
{id}/{random},即生成的m3u8链接参考/videos/608ce526c78d944ef4707a89/g803c3/index.m3u8

#示例三
{id}/{hd},即生成的m3u8链接参考/videos/608ce526c78d944ef4707a89/720/index.m3u8

#示例四
{yy}{mm}/{dd}/{name}/{hd},即生成的m3u8链接参考/videos/202105/01/你好帅/1080/index.m3u8

#示例五
{yy}{mm}/{dd}/{id}{name}/{hd},即生成的m3u8链接参考/videos/202105/01/608ce526c78d944ef4707a89你好帅/1080/index.m3u8

还有更多的组合建议自己测试下,如果你需要使用{name}来区分视频文件夹,则建议和{id}一起用,防止出现文件夹重复的报错,当然如果你确定视频不会重复,则可以只用{name}

7 - 去除跑马灯和水印步骤

目前支持同时除去多个位置和时间段的水印、跑马灯,推荐和烧录跑马灯、水印搭配使用,效果更加。
提示:去水印、跑马灯必须要转码下才生效;秒切是无效的,也就不会给你去除任何水印、跑马灯。

去除水印、跑马灯过程中,会最大程度的给你还原之前的视频画面,但不会给你100%还原,目前还没有可以100%完全还原的技术。

所以在去除的时候,建议在去除的同位置上,加上自己的水印、跑马灯,这样去除的时候,会同时烧录你的水印,可达到最佳效果。

操作步骤

提示:目前暂时不能处理那种随机位置的水印,随机水印推荐使用水平镜像翻转功能,可以模糊随机水印,间接达到去水印目的,可转码相关开启该功能。

设置去水印、跑马灯之前,需要先停止自动转码,否则需要去除水印的视频开始转码的话,再设置是无效的。

先点击EFV后台左侧 ⇒ 转码相关 ⇒ 去水印/跑马灯设置 ⇒ 添加模板 ⇒ 编辑模板,具体操作可看下方视频。

模板的作用就是根据参照视频提前设置好相关除去规则,然后和该参照视频拥有同时间段,同位置水印、跑马灯的视频可直接使用,无需再次设置相关去除规则。

视频演示

提示:请点击播放器右下角全屏按钮进行观看。
绑定分类
提示:目前EFV最新版和演示视频区别就是,新版已新增分类绑定功能,操作更方便。

设置好去除规则模板后,可直接在模板页面给该模板绑定好视频分类,再将需要去除的视频调整到该分类,最后转码的时候该分类的视频自动使用该模板去除规则,无需手动给视频单独设置模板了。

操作注意事项

设置的时候,你只需要长按鼠标左键,框住你选择的水印或跑马灯范围即可,设置期间框框可自行调整大小,坐标参数会自动根据你的框获取。

每次只能添加一个规则,如果你有多个位置、时间段的水印或跑马灯,那么需要添加多次。

最后给视频选择去除模板的时候,该视频必须符合你选择的模板去除规则,不然转码有概率会出错。

8 - srt和ass字幕烧录教程

目前可以将服务器字幕文件入库烧录进视频,后台上传字幕文件,mkv等包含字幕流的视频时会自动提取字幕等。
提示:烧录字幕必须要转码下才生效,秒切是无效的,也就不会给你烧录任何字幕。

srt和ass字幕入库

即将服务器的字幕文件入库烧录,具体说明和操作可查看 ⇒ 传送门

后台上传字幕

目前支持asssrt字幕,字幕和视频同名会自动匹配,如西游记.mp4西游记.ass,匹配后会在视频转码期间自动烧录字幕。

自动提取字幕

如果你的视频包含字幕流,比如mkv等,可点击EFV后台左侧 ⇒ 转码相关 ⇒ 开启自动提取字幕功能。

开启该功能后,系统会优先判断是否存在字幕文件,即有没有入库或后台上传过字幕文件,如都没有,则会在转码的时候自动提取srtass字幕文件,并烧录进视频中;如有多个字幕,默认提取第一个字幕,且优先提取中文字幕。

筛选字幕烧录

提示:该功能可指定烧录带语言标识的字幕文件,即无需和视频同名,适用于入库字幕、后台上传字幕和BT管理下载带字幕的视频。

一般字幕文件需和视频同名才会被烧录,如果你的字幕文件有一到多个,且都带有语言标识,也就是和视频不完全同名,可前往转码设置设置筛选字幕烧录功能项,可以烧录指定语言的字幕文件。

设置格式zh-Hanszh-Hans|BluRayzh-Hans|BluRay|forced,支持N个关键词,且多个关键词使用|分开,参数详解:

1、如设置zh-Hans,则会匹配同时包含视频名称和zh-Hans的字幕文件,如:
西游记.mp4
西游记.zh-Hans.ass
西游记.zh-Hant.ass
这时候视频会匹配并烧录字幕 西游记.zh-Hans.ass

2、如设置zh-Hans|BluRay,则会匹配同时包含视频名称、zh-Hans和BluRay的字幕文件,如:
西游记.mp4
西游记.zh-Hans.ass
西游记.zh-Hant.ass
西游记.zh-Hans.BluRay.ass
西游记.zh-Hant.BluRay.ass
这时候视频会匹配并烧录字幕 西游记.zh-Hans.BluRay.ass

3、如设置zh-Hans|BluRay|forced,则会匹配同时包含视频名称、zh-Hans、BluRay和forced的字幕文件,如:
西游记.mp4
西游记.zh-Hans.ass
西游记.zh-Hant.ass
西游记.zh-Hans.BluRay.ass
西游记.zh-Hant.BluRay.ass
西游记.zh-Hans.BluRay.forced.ass
西游记.zh-Hant.BluRay.forced.ass
这时候视频会匹配并烧录字幕 西游记.zh-Hans.BluRay.forced.ass

该设置项为递进筛选,通常第一个关键词为语言,如果第一个关键词没有筛选到任何字幕文件,则不会继续筛选,会默认使用和视频同名的字幕文件。

如果第一个关键词只筛选出一个字幕文件,则不会继续筛选,会默认使用该字幕文件。

如果第一个关键词筛选出多个字幕文件,则会使用第二个关键词从选出的字幕文件继续筛选,直到只选出一个字幕文件后不会继续筛选,会默认使用该字幕文件;当关键词都用完了,还是有多个字幕文件符合,则会随机使用其中一个字幕文件。

9 - 如何控制TS切片的大小

目前可以通过结合智能切片、切片时长和码率功能,来调整单个TS体积,用于改善切片访问效果。

相关说明

提示:这里会大概介绍下TS切片大小的优缺点,自行根据服务器配置进行适当调整。

TS 切片较大时的优缺点

优点:

  • 减少请求次数:播放器不用频繁请求服务器,服务器压力小。
  • 硬盘读写效率高:尤其是机械硬盘(HDD),大文件减少寻道次数,读取效率高。
  • 缓存和带宽利用好:能更好利用稳定的网络和大带宽。

缺点:

  • 初始加载慢:视频开始播放前,下载较大文件会更慢,用户要等更长时间。
  • 跳转慢:用户拖动播放条时,播放器需要下载大文件,跳转速度会慢。
  • 适应网络波动差:如果网络不稳定,下载大文件可能会导致卡顿或中断。

TS 切片较小时的优缺点

优点:

  • 加载速度快:小文件能更快下载,视频开始播放更迅速。
  • 跳转响应快:用户拖动播放进度条时,小文件能快速下载,跳转更快。
  • 适应网络波动好:即使网络不稳定,较小的文件也能快速下载,减少卡顿。
  • 缓存更容易:小文件更容易被缓存,提升播放流畅度。

缺点:

  • 请求次数多:播放器频繁请求服务器,服务器负载增加。
  • 硬盘压力大:对于机械硬盘,频繁读取小文件会降低性能,特别是随机读写时。
  • 带宽利用率低:由于每次请求都要传输额外的协议数据,带宽利用效率降低。

如何选择合适的 TS 切片大小

根据硬盘类型选择:

  • 机械硬盘(HDD):更适合较大的切片(如 6-10 秒),因为 HDD 随机读取小文件时效率较低,需要减少频繁读写。
  • 固态硬盘(SSD):可以使用较小的切片(如 2-6 秒),因为 SSD 在处理小文件时性能优秀,并且读写速度快。

根据网络带宽情况选择:

  • 带宽稳定、速度快:可以使用较大的切片(如 6-10 秒),减少请求次数,充分利用带宽。
  • 网络波动大或速度较慢:使用较小的切片(如 2-6 秒),适应网络波动,减少卡顿。

综合考虑用户体验:

  • 希望视频快速加载:使用较小的切片(如 2-6 秒),这样用户点击播放时,视频能更快开始。
  • 服务器负载较高:切片不要太小(推荐 6-10 秒),这样可以减少请求次数,减轻服务器压力。

总结建议

  • 对新手来说,一开始可以选择 4-6 秒的切片大小,这是一个相对安全的范围,适合大多数情况。
  • 如果发现服务器压力大或硬盘性能差(如机械硬盘),可以尝试把切片大小调大到 6-10 秒。
  • 如果用户网络不好或需要快速加载,可以尝试较小的切片(如 2-4 秒)。

可通过测试你具体的网络和硬件条件,找到一个最适合的切片大小来平衡加载速度和服务器负担。

设置教程

可前往转码设置,然后设置切片时长,如果是秒切,则实际时长会根据原视频关键帧进行适当调整;即如果你设置4秒,则实际时长会上下波动。

如果你想精准控制时长,即切片时长设置4秒,且所有的切片全部为4秒,则需关闭秒切,并开启智能切片即可。

如何最大化缩小单个切片体积

如果你服务器网络和硬盘极其优秀,或者使用云存储,可以尝试下该方案。

可前往转码设置关闭秒切,再开启智能切片,并将切片时长设置为1,也就是将所有切片的时长精准控制为1秒。

然后还可以再通过降低码率,继续缩小切片体积,在转码设置找到码率设置,根据自己转码的分辨率,适当调低对应的码率值即可,注意码率降低后,画质也会降低,适当调整就行了。

10 - 设置动态片头和片中广告

支持动态添加切片和片中广告,任何视频均生效,且多个广告会随机读取,片中广告也可指定播放次数。

片头和片中广告可以随时添加、删除,且同时设置多个广告视频会随机读取一个播放。

设置步骤

该功能为动态处理M3U8,即不会修改本地的M3U8内容,仅仅只是从EFV读取M3U8文件的时候,才会给加上这些广告,且不管是开启还是关闭切片广告,或新增切片广告内容,对所有的视频都是立即生效。

添加并设置切片广告

前往程序后台 ⇒ 点击左侧转码相关 ⇒ 动态切片广告, 先点广告设置,如下:

先别开启广告,只设置广告转码后的分辨率、码率和帧率,记得如果是转码,分辨率和你转码的分辨率选择一样,多码率就折中;如果是秒切,就选择最靠近你源片的分辨率,这样兼容性最好。

接下来我们开始添加视频广告,添加方法有2种,如下:

1、点击【添加视频广告】,将你提前准备好的视频广告上传上去。
2、点击【生成视频广告】,设置视频广告文字、持续时间、背景图点击生成。注意该处背景音乐是固定的,可自行替换,路径public/stream/bgm.mp3。

添加好视频广告后,需要在浏览器刷新一下切片广告界面,就会显示该广告名称。

然后点击转码全部切片广告,转码完成后,开始设置片头或片中。

最后设置好切片广告后,还需要开启切片广告,不然所有视频不会生效。

开启切片广告和设置片中显示次数

接下来继续点击广告设置,开启切片广告,并且根据自己的需求设置片中广告显示次数,如无片中广告可不用管。

最后片头和片中广告默认对全部的视频生效,如果你想部分视频不生效,则看该页面最下方。

设置片头和片中广告对部分视频不生效

由于片头和片中广告设置后,默认对全部的视频生效,如果你想部分视频不生效,则进行以下步骤。

开启/关闭跳过切片广告

前往程序后台 ⇒ 进入视频管理,批量选择不想生效的视频,点击下方批量跳过切片广告,进行关闭或开启即可。

开启和关闭是立即生效的,可以根据自己需求进行调整。

如何查看视频是否开启/关闭跳过切片广告

前往视频管理,先去标题栏把是否跳过切片广告调出来,方便标题栏查看。

然后点击其它筛选,选择已跳过未跳过即可。

最后可以批量进行相关操作了。

相关说明

关于线路管理对切片广告的影响

2023-07-22版本开始,切片广告已适配了线路管理功能,如设置线路后,切片广告也会走该线路,说明如下:

1、如果你是同步到云存储或者其它服务器做线路管理,需要手动把切片广告传到对应的地方,切片广告路径为public/stream,将stream文件夹上传到同步端,和同步过去的切片videos文件夹同目录即可。
2、如果你是自建cdn或使用商用cdn则无需进行其它设置,cdn会自动读取缓存。

时间戳防盗链说明

如果你只使用时间戳防盗链的广告跳转功能,则不需要设置片头和片中广告,直接添加视频并切片即可,如果添加多个切片广告,则无权限的会随机返回其中一个切片广告。

11 - 新增和随时替换片中广告

支持视频烧录片中广告,且烧录后可随时替换新的广告视频,也可移除你添加的片中广告,而且M3U8链接不会改变。

该功能会自动提取所有转码完成的视频,并将你的广告视频随机烧录进视频的片中部分,且烧录后可以随时再次替换新的广告视频,也可以移除你添加的片中广告,而且处理后的视频M3U8链接不会发生任何改变。

设置步骤

添加广告视频

前往程序后台 ⇒ 点击左侧转码相关 ⇒ 新增/替换片中广告,先点添加广告视频,如下:

可添加多个广告视频,默认争对所有视频生效,且烧录的时候会随机提取1个广告视频。

如果你只想广告视频给指定分类使用,则可以给广告视频绑定好分类,那么这些广告视频仅对这些分类的视频生效,对其它分类无效。

按照规则,如果某些分类没有一个广告视频,那么该分类的视频不会进行任何新增、替换片中广告的处理。

广告设置

接下来继续点击广告设置,说明如下:

#是否开启添加/替换片中广告
开启后,会给你转码完成的视频,新增片中广告,或替换片中广告。

#是否移除已添加的片中广告
开启后,已添加过片中广告的视频,均会移除片中广告,即恢复到原视频。

#广告标识
必填,用英文数字组合即可,如kjkj22jk,即视频新增或替换广告后,均会被记录标识信息,那么之后就不会处理该视频;如果你后面需要给视频重新替换新的广告视频,那么修改不一样的标识就行。

#烧录的时间区间
必填,格式为:百分比数值:百分比数值,如30:80,也就是在每个视频的30%到80%时间段,随机在某个位置烧录片中广告。

#烧录的并发数
默认为3,也就是每次同时处理3个视频,切勿设置太高,如果机器性能好点,可以适当调高。

最后根据自己需求进行相关设置,且该功能涉及到部分转码,所以添加替换和移除处理的会稍微有点慢,耐心等待自动处理完毕即可。

如何查看视频是否已烧录片中广告

前往视频管理,先去标题栏把是否已烧录片中广告调出来,方便标题栏查看。

然后点击其它筛选,选择已烧录或未烧录片中的视频即可。

12 - FTP多用户上传入库

可添加多个FTP用户,每个用户上传视频后,会自动入库到视频管理,且上传支持自动分类,自动入库封面,烧录字幕等。

操作说明

提示:建议使用之前,务必看一遍文档下方的注意事项。

支持入库的文件

视频格式如下:

mp4、mkv、avi、rmvb、dat、flv、mpg、mpeg、rm、mov、wmv、asf、m4v、3gp、webm、ts、ogv、divx

封面格式如下:

jpg、jpeg、png、webp

字幕格式如下:

srt、ass

分类入库

FTP用户在根目录新建一个名为教育片的子文件夹,那么将视频上传到教育片文件夹或其子文件夹,那么上传成功后,这些视频会自动分类教育片,且如果该分类不存在会自动创建。

封面和字幕入库

这里上传的时候,只需要封面、字幕名称和视频名称一样即可,这样转码的时候,会给视频自动匹配同名的封面或字幕,然后自动处理。

注意事项

如果你新增用户后,使用FTP客户端访问不了,则检查下FTP端口是否为23723,如果端口正确,则需要使用SSH客户端开放端口,使用命令:

#CentOS 7+、AlmaLinux、Rocky Linux系统
firewall-cmd --zone=public --add-port=1024-65535/tcp
firewall-cmd --reload

#Debian、Ubuntu系统
ufw allow 1024:65535/tcp

如果你登录FTP后,进行上传等操作因为网络原因很慢,则推荐在FTP客户端配置一下代理地址,体验会好很多,上传也会变快。

自建代理地址

如果你有使用翻墙等软件,由于这些软件都会提供本地代理,具体代理地址可自己查看这些软件的相关设置,再将代理地址填入到FTP客户端,重新连接FTP即可生效。

如果你没代理地址,可以买一个网络好点的VPS服务器,建议自己先找一下,最好距离近一点,找不到也可以试试Vultr传送门,可以随时删除和创建服务器。

先在需要搭建代理的服务器安装DockerLinux快速安装Docker传送门

接下来再安装BBR网络加速,使用命令:

wget --no-check-certificate -O /opt/bbr.sh https://github.com/teddysun/across/raw/master/bbr.sh
chmod 755 /opt/bbr.sh
/opt/bbr.sh

BBR安装完成后,再开始安装代理,这里使用privoxy工具,在SSH客户端使用命令:

#5432为代理的设置端口,可自行修改
docker run -d --restart=unless-stopped --name privoxy -p 5432:8118 vimagick/privoxy

然后还需要开放服务器的5432端口,使用命令:

#CentOS 7+、AlmaLinux、Rocky Linux系统
firewall-cmd --zone=public --add-port=5432/tcp --permanent
firewall-cmd --reload

#Debian、Ubuntu系统
ufw allow 5432

如果你有安装宝塔,也可以直接在宝塔左侧安全开放,最后我们的代理地址为http://服务器ip:5432,再将代理地址填入到FTP客户端,如果网络还是不行,可以尝试把服务器删了,再创建其它地区的服务器,重新安装。

13 - 批量重新转码指定视频

可批量将已转码的视频根据当前的转码设置,重新生成新的截图、M3U8切片等数据;且截图、M3U8等链接保持不变。

一般我们使用期间,有的之前是秒切,现在想加水印了;或者之前的水印跑马灯不需要了,现在需要换新的水印跑马灯,而又想保持所有链接不变,这时候可以使用重转功能。

使用说明

提示:如果你需要频繁换水印或跑马灯,建议转码前,先前往转码设置开启保留源片,这样每次重新转码均会使用源片。

符合重转的视频会在重转期间删除该视频的M3U8切片和截图等数据,并在重转期间根据当前的转码设置,生成新的截图、预览视频和M3U8切片等数据,且相关链接保持不变。

如果视频源片存在,即转码设置开启过保留源片,则默认使用源片,不存在会自动合并视频M3U8为MP4,且服务器本地TS切片不存在则会跳过合并,即不会对视频做重转处理,对于本地M3U8切片有水印或跑马灯,建议配合去水印和跑马灯功能一起使用,效果更佳。

注意事项

如果重转前,视频是秒切,重转后,变成了转码,那么多码率设置的分辨率建议和秒切挂靠分辨率保持一致,即重转前视频分辨率为1080P,重转后也为1080P、那么同分辨率1080P的M3U8链接会不变。

如果重转前,视频是转码,重转后,依然是转码,那么建议重转前后的多码率设置保持一致,这样所有分辨率M3U8链接会不变,如果重转前视频分辨率为720P、1080P,重转后为1080P、原画,那么只有同分辨率1080P的M3U8链接会不变,不同的会随机生成。

操作步骤

先前往EFV后台左侧 ⇒ 转码相关 ⇒ 视频管理,通过筛选等方式,找出需要重转的视频,再点击下方的批量重新转码功能即可。

重转默认保留所选视频的封面1和2,仅删除M3U8切片和其它截图等数据,如果你想删除封面,则开启;并会在重转期间生成新的封面数据。

14 - 烧录封面广告和片头广告

目前可设置N个封面图片和N个片头广告,并在切片的时候,会自动烧录进视频,而且可以只烧录进某分类视频。

烧录封面广告

目前将封面广告图片烧录进视频开头后,如果保留切片后的MP4,这些MP4视频在社交、网盘、电脑桌面、视频播放器等应用软件显示的封面均为该广告图片。

可直接前往程序后台 ⇒ 点击左侧转码相关 ⇒ 片头视频设置, 按照功能页面的说明添加好封面图片、持续时间,最后开启广告即可。

烧录片头广告

目前将片头广告烧录进视频的开头后无法进行替换;如果你想随时替换片头广告,则推荐使用切片广告功能,还支持片中广告 ⇒ 使用教程

可直接前往程序后台 ⇒ 点击左侧转码相关 ⇒ 封面广告设置, 按照功能页面的说明添加好片头广告视频,最后开启广告即可。

相关说明

封面广告和片头广告默认争对所有视频生效,如果你只想给指定分类使用,则可以设置后,分别给这些广告绑定好分类即可。

如果封面广告和片头广告同时开启,则会先烧录片头广告,再烧录封面广告,最终效果就是封面广告会在最前面,片头广告在后面。

15 - 视频防盗防播及图片加密

支持时间戳+播放次数防盗链,图片加密,图片转换文本,切片伪装图片,指定地区ip过滤访问,HLS双重加密等。

引用网址

提示:该功能可阻止其它网站直接使用EFV的M3U8链接进行播放使用。

可点击EFV后台左侧 ⇒ 转码相关 ⇒ 防盗链/图片加密设置,进行相关设置。

在此处设置指定站点域名后,只允许m3u8切片在该域名所建立的网站上播放,其它站点调用均会失败。

设置域名需加http(s)://前缀,比如https://demo.efvcms.com,且支持泛域名,比如https://*.efvcms.com,即efvcms.com的所有https子域名都能使用;且多域名配置中间用|分开,比如https://demo.efvcms.com|https://*.efvtest.com,可设置无数个域名。

注意http://只能给http://域名引用,https://只能给https域名引用,如果你想给同一域名的http://https://都使用,那么分别设置2个即可,如http://demo.efvcms.com|https://demo.efvcms.com

TS禁止下载合并

提示:该功能屏蔽了绝大部分的下载工具,即禁止被这些工具下载合成M3U8。

可点击EFV后台左侧 ⇒ 防盗链/图片加密设置,开启该功能即可。

TS切片伪装PNG图片

提示:该功能除了一些特殊用途外,还可以防止被一些工具直接下载合并。

可点击EFV后台左侧 ⇒ 转码相关 ⇒ 转码设置,开启该功能即可。

时间戳+播放次数防盗链

提示:目前结合防盗、兼容性、对接难度来说,此防盗链算是最适合的。

可点击EFV后台左侧 ⇒ 转码相关 ⇒ 防盗链/图片加密设置,相关设置项如下:

#时间戳+播放次数防盗链
开启防盗链的开关,开启后所有m3u8均无法直接访问,需根据规则组装获取可访问的m3u8链接才能正常访问。

#设置时间戳防盗链key值
防盗链对接逻辑的一部分,可随时修改,随时生效

#开启TS或伪装切片的时间戳防盗链验证
防盗链默认只会验证M3U8和TS加密的KEY文件,如果你想连切片也一起验证,则开启。

#开启时间戳防盗链ip验证
开启该功能后,当用户访问视频TS加密的key文件或切片文件时,会验证其ip地址是否和访问m3u8地址的ip一致,不一样会阻止访问,也就是禁止绕过m3u8访问切片。

#设置时间戳防盗链的json解析接口
可设置一到多个解析接口地址,用来解析m3u8链接,并生成可直接播放的新m3u8链接

对接原理

开启时间戳防盗链功能后,我们需要使用播放次数、过期时间戳、时间戳KEY值和M3U8链接进行组装加密,获取到一个可供播放的新KEY,然后该M3U8链接后面加上这个新KEY值就可以正常播放了。

主要对接参数说明:

播放次数:比如我播放次数设置2,即请求2次M3U8链接后,会直接失效。
过期时间戳:比如我设置5分钟后过期,即5分钟后该M3U8链接直接失效。

如果访问M3U8链接的时候,使用的新KEY值不对,或者单ip播放次数用完、时间戳已过期,都会提示无权限。

单独访问TS加密的KEY文件和切片文件的时候,使用的IP和对应的M3U8IP来源不一样,或新KEY值不对,KEY文件播放次数用完等,也会提示无权限。

返回信息

访问M3U8无权限的时候默认会返回403提示,如果你想返回一段视频,可以添加切片广告 ⇒ 传送门

如果添加多个切片广告,则无权限的会随机返回其中一个切片广告视频。

对接说明

可通过自行对接 或 直接使用解析接口获取可访问的m3u8链接,按需求选择即可,对接文档 ⇒ 传送门,然后自行开发对接。

自带的CMS、苹果CMS爱影CMS均已适配,且自带的CMS开启该功能后会自动处理,苹果CMS可前往发布到苹果CMS文档获取对接文件 ⇒ 传送门,爱影CMS可前往发布到爱影CMS文档获取对接文件 ⇒ 传送门

动态加密封面/截图

提示:该功能为动态处理,即服务器里面的图片并未加密,只是读取的时候给你加密,且开启和关闭均立即生效。

可点击EFV后台左侧 ⇒ 转码相关 ⇒ 防盗链/图片加密设置,开启该功能;且不能同时开启图片转换txt文本功能,不然txt文本功能优先级会高于加密

开启图片加密后,基本上转码生成的封面、截图全部会被加密乱码,完全看不到任何实质内容,需要在前端使用特有的解密逻辑,方可正常显示。

这里提供一个简单的对接示例 ⇒ 传送门,并根据文档示例集成到自己的网站即可。

封面/截图动态转换txt文本

提示:该功能为动态处理,即服务器里面的图片并未处理,只是读取的时候给你转txt,且开启和关闭均立即生效。

可点击EFV后台左侧 ⇒ 转码相关 ⇒ 防盗链/图片加密设置,开启该功能。

开启之后,程序会自动将封面/截图自动转换成txt文本,且默认的截图和图片均会无法正常查看,直接请求会显示403 Forbidden提示。

使用方法

我的图片链接为/videos/202104/16/60797eb23b54185df2317c5f/cover.jpg,我直接将.jpg换成.txt就可以了。

比如/videos/202104/16/60797eb23b54185df2317c5f/cover.txt,读取的时候会自动转换成txt文本。

且原有.jpg地址会返回403 Forbidden提示,既不会显示图片了,然后直接在前端使用base64解密调用。

这里提供一个简单的对接示例 ⇒ 传送门,并根据文档示例集成到自己的网站即可。

HLS双重防盗链

提示:该防盗链属于里面盗取难度最大的,几乎不可能被盗,由于国产浏览器问题,推荐专注国外用户的可以使用。

可点击EFV后台左侧 ⇒ 转码相关 ⇒ 防盗链/图片加密设置,设置防盗链KEY值,且设置自动开启,留空立即关闭。

然后前往转码设置,开启TS加密,也就是需和TS加密搭配一起使用才生效,即该功能仅仅对TS加密的M3U8有效。

加密原理

该功能参考保利威视的防盗链策略,EFV系统对M3U8KEY文件链接和KEY文件内容进行双向加密,通过修改hls.js文件来达到自己的解密逻辑,做到双向对称加密和解密。

再将hls.js文件解密的逻辑通过JS混淆加密的方式保护,并魔改hls.js,实现了绑定域名调用,使其防盗链防下载防合并防破解的功能极其强大。

比如我开启并设置HLS双重防盗链后,在没有解密的情况下,读取一个M3U8文件,内容如下:

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:5
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-KEY:METHOD=AES-128,URI="http://192.168.3.16?token=FEfKlXoXbFF7xr7yPAK2k81G5kZesZEQyAlqDPc67GIS1VUVAZfO0euFgQMxjRpAplZpOxuv/to="
#EXTINF:4.800000,
indexEccdE0fc0ACcdC0A.ts
#EXTINF:4.360000,
indexf81cggd7A0c0905E.ts
#EXTINF:3.320000,
index31696Ba7gab3CA3d.ts

会发现TS加密的key文件地址为本地地址,意味着读取不到key文件,也就是播放不了该M3U8

如果在我们已经对接过解密的网站播放,通过抓包获取到了key文件链接,并获取到key文件内容,依然不能下载,因为key文件内容也会加密,也就是说的双重加密,总之盗取难度极大。

使用说明

由于国产浏览器会替换你的解密hls.js文件,会导致解密失效,所以专注国外用户的可以使用,国内不推荐。

需要使用的可自行查看文档获取解密hls.js文件 ⇒ 传送门,并根据文档教程集成到自己的网站即可。

16 - 云存储同步详细设置

支持S3、七牛云、Backblaze B2、腾讯云OSS、阿里云OSS、其它服务器、谷歌云、Bunny、CF R2、华为云、Wasabi、Blob。

一般我们转码后,有的对播放速度不满意,除了使用CDN加速外,还可以将切片上传到其它服务器、阿里云OSS、七牛云或者其他云存储进行加速。

目前已支持以下存储:

亚马逊S3,也适用于接口支持AWS S3的存储服务
Minio存储,适用于同步到其它服务器
Cloudflare R2
华为云
七牛云
阿里云OSS
腾讯云OSS
又拍云
Wasabi
Bunny
Google Cloud Storage
Azure Blob Storage
Backblaze B2

同步原理

提示:最新版已新增剧集封面同步,如当前使用版本无同步剧集封面功能,则推荐更新到最新版后使用。

同步期间会自动扫描所有已转码完成的视频切片文件夹和已发布的剧集封面文件夹,并根据你的同步设置,对文件夹里的截图、切片等文件进行上传和删除处理。

当某个视频的所有指定文件均上传成功,则会记录该视频,下次自动扫描的时候,会跳过该视频,也就不会再次上传,如果你更换了云存储,想重新上传该视频,可清空该视频的同步记录,从而会重新扫描并上传该视频,清空教程可看下面。

当某个视频有一个文件因网络问题上传失败,则该文件会有3次重试次数,如果3次依旧失败,那么该文件在本轮扫描不会再次上传,并且该文件所属的视频也不会被记录,也就是在下轮自动扫描中,会重新再次被扫描上传,可尽量防止因网络问题造成同步缺切片导致出现播放问题。

操作步骤

先前往EFV后台左侧 ⇒ 转码相关 ⇒ 云储存设置,添加对应的云存储,然后开启同步。

同步参数

云存储需要的同步参数在每个类型添加页面都有说明,这里说一下比较难找的几个。

S3endpoints参考 ⇒ 点击查看

Wasabiendpoints参考 ⇒ 点击查看,基本上组成就是s3.region.wasabisys.com

CF R2endpoints参考 ⇒ 点击查看,基本上组成就是https://ACCOUNT_ID.r2.cloudflarestorage.com

Backblaze B2region查看方法,如果桶的endpoints3.us-west-002.backblazeb2.comregion可以填us-west-002,也就是中间的那段字符串。

Minio存储需要在接收同步的服务器上安装Minio,安装教程 ⇒ 点击查看;还需要让转码服务器Minio服务器的时间一致,不然同步会失败,可使用date命令进行时间查看。

如果两台服务器时间不一样,可以分别在ssh客户端运行命令改一下:

rm -rf /etc/localtime
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

#查看修改后的时间
date

如何查看视频是否已同步

前往视频管理,先去标题栏把是否已同步调出来,方便标题栏查看。

然后点击其它筛选,选择已同步或未同步的视频即可。

如果你想查看剧集的封面是否已同步,可前往剧集状态筛选进行相关选择即可。

如何批量设置同步指定视频

提示:程序默认同步所有已转码完成的视频数据和已添加的剧集封面数据,如使用指定同步功能,则在配置云存储同步的时候,开启指定同步功能。

前往视频管理 ⇒ 然后批量选择你要同步的视频,点击下方批量设置同步即可

然后可以点击其它筛选,选择未设置指定同步,筛选出未设置的,方便快速进行设置其它视频。

指定剧集就需要前往剧集管理设置,方法都一样,最后如果你想清空设置的信息,可前往云存储设置页面,点击清空按钮,进行清空。

如何一键清空所有视频和剧集同步记录

可直接在云存储设置页面,点击清空按钮,进行清空,清空后,已同步的所有记录均会清空,这时候可重新同步所有数据。

同步日志查看

使用SSH客户端,比如Xshell软件,登录服务器,再使用命令:

pm2 log efvasync

修改监控间隔时间

目前默认间隔3分钟,先编辑helper/newcloud.js文件,需要修改代码await agenda.every("3 minutes", "auto async"),修改如下:

#分钟单位minute,且大于1分钟用minutes
1 minute
2 minutes
3 minutes

#秒钟单位,比如20秒
20 seconds

#如果我要修改为30秒,则具体代码
await agenda.every("30 seconds", "auto async");

根据自行情况进行相关修改,不建议改太低,否则会占用资源;修改完重新开启同步即可。

如何加快同步速度

提示:机器性能一般的默认即可,不然上传太猛服务器容易崩掉,或者被云存储服务商限制,导致上传出错,不是太赶速度就微调下即可。

目前同步原理就是,按时监听未同步的视频,然后每次只处理2个未同步视频,处理该未同步视频的时候,每次同时上传5个切片,依次传完。

如果你的视频量大,且都是长视频,并且同步远远赶不上秒切速度,则可以修改如下配置进行同步加速,编辑helper/newcloud.js文件,修改如下:

#同时处理未同步的视频数,默认2
asyncMapLimit(unAsyncFiles, 2, async (file)

#处理每个未同步的视频的时候,每次上传的切片数,默认5
await asyncMapLimit(files, 5, async (file)

最后修改完毕后,重新点击开启同步就行了。

17 - 分发即线路管理设置

该功能会动态修改M3U8里面的TS切片地址,使其从其它服务器、云存储等读取切片,从而解决负载、带宽等问题。

线路管理原理详解

一般我们播放m3u8视频时候,实际上是通过访问m3u8文件索引的切片达到播放目的,且默认从本地服务器读取,如:

#比如我的m3u8链接地址如下:
http://efvcms.com/videos/201910/28/5db7045f57112a77e0aca6df/6agc5a/index.m3u8

#当用户读取m3u8后,这时候会依次从服务器读取切片文件,然后完成播放,链接大致如下:
http://efvcms.com/videos/201910/28/5db7045f57112a77e0aca6df/6agc5a/index0.ts
http://efvcms.com/videos/201910/28/5db7045f57112a77e0aca6df/6agc5a/index1.ts
http://efvcms.com/videos/201910/28/5db7045f57112a77e0aca6df/6agc5a/index2.ts
http://efvcms.com/videos/201910/28/5db7045f57112a77e0aca6df/6agc5a/index3.ts

从上面会发现,切片全部从本地服务器即m3u8的域名里读取。

接下来设置了2个线路域名,此时m3u8的切片加载和之前就不一样了,下:

#我的m3u8链接地址和之前一样,如下:
http://efvcms.com/videos/201910/28/5db7045f57112a77e0aca6df/6agc5a/index.m3u8

#当用户读取m3u8后,这时候会分别从你添加的线路域名读取全部的切片,然后完成播放,链接大致如下:
http://a.fenfa.com/videos/201910/28/5db7045f57112a77e0aca6df/6agc5a/index0.ts
http://b.fenfa.com/videos/201910/28/5db7045f57112a77e0aca6df/6agc5a/index1.ts
http://a.fenfa.com/videos/201910/28/5db7045f57112a77e0aca6df/6agc5a/index2.ts
http://b.fenfa.com/videos/201910/28/5db7045f57112a77e0aca6df/6agc5a/index3.ts

这里就可以看到,切片全部从线路域名里读取;且设置线路前后,只是加载切片链接的域名变化了,其它都不变。

所以当本地服务器因为带宽,硬盘IO等问题,导致播放卡的时候,可以利用线路管理从其它服务器,CDN或云存储等读取切片,从而解决问题。

线路管理设置步骤

设置均为动态处理,即不管是开启还是关闭线路,或新增线路域名,对所有的视频都是立即生效。

准备线路域名

线路域名只需要满足一个条件,就是用户通过该域名可以访问到视频切片,这里有2种方法,分别如下:

第一种,将切片等文件同步到其它服务器,或云存储如亚马逊S3CF R2等,同步教程 ⇒ 点击查看;然后再给云存储,或接收同步文件的服务器绑定一个域名,即线路域名;注意接收文件的服务器绑定域名的时候,根目录需要设置到桶目录,即根目录包含同步过来的videos文件夹。

第二种,使用我们自研的CDN系统,即自己准备一个网络比较好的vps,自建cdn,该cdn会将源站的切片缓存到cdn服务器,再通过cdn域名,提供给用户观看,CDN系统 ⇒ 使用教程

这里如果你不用第三方云存储的话,就建议使用第二种,配置和使用极其方便。

设置线路管理

先前往EFV后台左侧 ⇒ 转码相关 ⇒ 线路管理,创建一条新的线路,主要设置项如下:

#默认线路链接
你想几个线路域名提供切片读取,就填写几个线路域名,中间使用英文竖线|分开,最后面不能带/,如https://cdn1.efvcms.com|https://cdn2.efvcms.com

#移动线路链接<填入后,移动用户访问会走该线路,不填则使用默认线路>
输入移动线路链接,需要带http或者https,多线路用|分割,如https://cdn1.efvcms.com|https://cdn2.efvcms.com

#电信线路链接<填入后,电信用户访问会走该线路,不填则使用默认线路>
输入电信线路链接,需要带http或者https,多线路用|分割,如https://cdn1.efvcms.com|https://cdn2.efvcms.com

#联通线路链接<填入后,联通用户访问会走该线路,不填则使用默认线路>
输入联通线路链接,需要带http或者https,多线路用|分割,如https://cdn1.efvcms.com|https://cdn2.efvcms.com

#定时任务切换
设置定时时间后,会按设置时间自动使用该线路,可在网络高峰期时间段自动切换到该线路,可改善播放体验。

#是否使用该线路
开启后,该条线会立即被使用;如果你设置了多条线路,且都开启了默认线路按钮,那么只生效最后开启默认的那个线路。

#开放该线路
开启后,任何人都可以读取该线路,第三方CMS使用需开启;关闭后则需要通过用户组判断。

定时线路使用推荐

定时任务格式为时钟:分钟,如21:3001:3005:15,时钟为24小时制,也就是每天几时几分执行。

注意,使用定时功能的,注意下服务器系统时间,可以在ssh客户端使用date命令查看,如果时间不对,可以运行命令改一下:

rm -rf /etc/localtime
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

#查看修改后的时间
date

比如我在晚上9点半的高峰期,自动切换到cdn线路,然后凌晨1点再切回到本地线路<本地线路即EFV绑定域名>。

也就是总共设置2个线路,1个线路命名cdn线路,且使用1n个网络比较好的线路链接,定时任务设置21:30;另1个线路命名为本地线路,使用EFV绑定域名作为线路链接,定时任务设置01:00.

最后这种设置效果,就是晚上9.30会自动使用cdn线路,再到凌晨1点会切到本地线路,然后每天一直循环切换。

线路管理api使用

使用api调用必须要设置一个默认线路,不然不生效。

获取线路列表

GET /api2/lines

#返回数据
[
    {
        "group": null,
        "vipGroup": null,
        "createAt": "2021-06-28T03:55:16.236Z",
        "_id": "60da81313b870875ec5d9fa4",
        "title": "组合线路",
        "url": "https://cdn1.efvcms.com|https://cdn2.efvcms.com",
        "open": "on",
        "default": "on",
        "notlogin": "on",
        "__v": 0
   },
    {
        "group": null,
        "vipGroup": null,
       "createAt": "2021-06-28T03:55:16.236Z",
       "_id": "60da817b3b870875ec5da0b5",
        "title": "cn2线路",
        "url": "https://cdn3.efvcms.com",
        "open": "on",
        "default": null,
        "notlogin": "on",
        "__v": 0
    }
]

m3u8调用指定线路

#m3u8调用示例
https://域名/index.m3u8?line=线路id

#直接访问,则自动调用默认线路
/videos/60d88e0d66c8886d0a961818/720/index.m3u8

#使用上述线路列表示例的cn2线路
/videos/60d88e0d66c8886d0a961818/720/index.m3u8?line=60da817b3b870875ec5da0b5

18 - 快速剪切片头和片尾

目前可批量对视频快速进行片头和片尾剪切处理,或转码自动跳过一定时长的片头。

剪切片头和片尾

剪切之前,需要先停止自动转码,否则需要剪切的视频开始转码的话,再剪切是无效的。

前往程序后台 ⇒ 点击左侧转码相关 ⇒ 视频管理, 然后选中需要剪切的视频,再点击下方批量剪切片头/尾,进行相关设置即可。

片头具体到时间日期,比如去除10s片头,则填00:00:10;片尾具体到秒,比如去除10s片尾,则填10

建议一次性选择数量最好保持在30个以内,性能好的可以选择多点,否则一次性剪切太多,会因为服务器性能问题容易卡死。

由于部分视频编码的问题,比如RMVB等,是不能直接快速剪切的,这时候可以使用全局跳过片头,从而达到剪切目的。

全局跳过片头转码

注意:全局跳过片头必须要转码下才生效;秒切是无效的,也就不会给你去任何片头。

该功能适合多个同时间片头、且无法快速剪切的视频,可前往程序后台 ⇒ 点击左侧转码相关 ⇒ 转码设置,找到该选项即可。

19 - 自动裁剪指定片段视频

目前可在转码期间自动裁剪指定时间片段的视频,可搭配远程转码API使用。

自动裁剪步骤

后台上传视频之前,需要将视频命名成文件名@开始时间-结束时间@,视频后缀类型不限制,然后上传后会自动根据视频命名规则进行截取。

比如我上传的视频名为爱情公寓@00.00.12-00.00.22@,时间规范为时.分.秒,则转码时会自动裁剪截取00.00.12-00.00.22之间的视频。

裁剪API使用

目前裁剪API需和远程创建转码任务结合使用,用法如下:

post: /apifluent/cut

data: {
apikey,
apisecret,
start, //裁剪起始时间,规范为时:分:秒,如 00:00:12
end, //裁剪结束时间,规范为时:分:秒,如 00:00:22
video,  //远程视频地址,即可访问的视频地址
notifyUrl  //通知域名,转码完成的id、视频名称、m3u8链接、海报截图会自动回传到这个地址。
}

{
 "success": 1|0  //1为创建成功
}

API可自动下载视频链接,并自动裁剪和远程创建任务,待自动转码后,会直接返回数据,无需后台操作。

回传数据参考:

#返回数据仅供参考,实际情况可能会有不一样
{
  success: 1,
  movie: {
    count: 0,
    retry: false,
    director: [],
    writer: [],
    stars: [],
    country: [],
    tags: [],
    screenshots: [],
    _id: '5fe19c79cb8b853f256a458f',
    status: '转码完成',
    originalname: '远程测试.avi',
    path: './download/远程测试.avi',
    size: '112406774',
    notifyUrl: 'http://api.domain.com/api/payback',
    clientId: '5fe19c7888f5be253328806a',
    m3u8paths: [ [Object], [Object], [Object] ],
    thirdm3u8: [],
    createAt: '2020-12-22T07:15:47.300Z',
    __v: 0,
    duration: '3分钟',
    moviepath: '/videos/202012/22/5fe19c79cb8b853f256a458f',
    previewvideo: '/videos/202012/22/5fe19c79cb8b853f256a458f/preview.mp4',
    poster: '/videos/202012/22/5fe19c79cb8b853f256a458f/cover.jpg'
  },
  apikey: '5c20cEga22FgG7f7B1c1',
  apisecret: 'cd5c5ffd476f93602135'
}
[
  [Object: null prototype] {
    domain: 'http://127.0.0.1:3000'
  }
]
{
  title: '远程测试.avi',
  url: '240P$http://127.0.0.1:3000/videos/202012/22/5fe19c79cb8b853f256a458f/3413b2/index.m3u8#',
  server: { connect: { id: '5fc7242b0446292f13401fe2' } }
}

20 - 下载BT种子/磁力和M3U8等

支持BT种子/磁力下载、M3U8链接、视频直链、YouTube等下载,可使用API远程操作。

BT种子/磁力下载

前往程序后台 ⇒ 点击左侧转码相关 ⇒ BT管理中心,点击上方下载设置,进行相关设置,如图:

先设置好后缀过滤,大小过滤;然后可通过批量添加BT磁力、BT种子链接、或上传BT种子文件进行下载,推荐优先选择通过BT种子进行下载,体验更好一点。

如果你下载里面有压缩包,并且都是有效视频,可通过BT列表文件名称右侧的链接快速前往文件夹管理,将该压缩包解压,并直接将里面的视频添加到转码队列。

修改下载的并发数

默认最多同时下载8bt任务,修改并发可编辑源码目录下的aria/aria2.conf,将max-concurrent-downloads=8后面的8修改其它数字,然后使用pm2 reload aria2c && pm2 reload aria2server命令重启生效。

M3U8和YouTube等下载

目前提供了M3U8MP4等视频直链、及YouTube等部分网站下载功能,可根据自身需求选择。

可前往程序后台 ⇒ 点击左侧转码相关 ⇒ 下载中心,添加相关链接下载。

批量添加下载

批量添加的格式为分类名$视频名$下载类型$视频链接$封面链接,一行一个,如:

#如分类不存在会自动创建
神话片$西游记$m3u8$http://127.0.0.1:8080/1.m3u8$http://127.0.0.1:8080/1.jpg
恐怖片$僵尸先生$m3u8$http://127.0.0.1:8080/2.m3u8$http://127.0.0.1:8080/2.jpg

下载类型可用参数为m3u8downloadallm3u8仅支持M3U8downloadall支持m3u8mp4mkv等其它视频直链和youtube视频地址下载。

且由于m3u8类型支持下载TS伪装的M3U8,所以建议下载M3U8首选m3u8类型,m3u8类型出错就使用downloadall类型下载M3U8

封面只支持pngjpgjpegwebp,且分类和封面可不填,如不要分类即不要分类名$,如不要封面即不要$封面链接,注意$符号位置,如:

#不要分类
西游记$m3u8$http://127.0.0.1:8080/1.m3u8$http://127.0.0.1:8080/1.jpg
僵尸先生$m3u8$http://127.0.0.1:8080/2.m3u8$http://127.0.0.1:8080/2.jpg

#不要分类和封面
西游记$m3u8$http://127.0.0.1:8080/1.m3u8
僵尸先生$m3u8$http://127.0.0.1:8080/2.m3u8

添加前请详细检查格式,格式不正确的行会被自动过滤,即不会添加到下载中心。

自动入库苹果CMS数据

说明及使用详情 ⇒ 传送门

自建代理

首先我们要准备一个服务器,VPS就可以了,推荐Vultr传送门,可以随时删除和创建服务器,也就是间接的可以随便换ip,比较适合做代理服务器。

先在需要搭建代理的服务器安装DockerLinux快速安装Docker传送门

接下来再安装BBR网络加速,使用命令:

wget --no-check-certificate -O /opt/bbr.sh https://github.com/teddysun/across/raw/master/bbr.sh
chmod 755 /opt/bbr.sh
/opt/bbr.sh

BBR安装完成后,再开始安装代理,这里使用privoxy工具,在SSH客户端使用命令:

#5432为代理的设置端口,可自行修改
docker run -d --restart=unless-stopped --name privoxy -p 5432:8118 vimagick/privoxy

然后还需要开放服务器的5432端口,使用命令:

#CentOS 7+、AlmaLinux、Rocky Linux系统
firewall-cmd --zone=public --add-port=5432/tcp --permanent
firewall-cmd --reload

#Debian、Ubuntu系统
ufw allow 5432

如果你有安装宝塔,也可以直接在宝塔左侧安全开放,最后我们的代理地址为http://服务器ip:5432,单个代理可直接填入设置,多个使用$隔开,如:

http://127.0.0.1:8888$http://127.0.0.1:6666$http://127.0.0.1:7777

设置后,每次下载会随机使用其中一个代理地址。

下载出错

如果源站的M3U8设置了防盗链,或者系统环境问题,会导致下载出错,可使用SSH客户端登录服务器,运行命令:

#运行之前,请修改为出错的m3u8链接
ffmpeg -i http://google.com/1.m3u8 -c copy test.mp4

如果该命令出现403或相关字眼则是防盗链原因,如果出现Segmentation fault (core dumped)错误,可参考该教程解决 ⇒ 传送门,最后如果还解决不了,可随时联系我们。

修改监控间隔时间

监控间隔时间也就是每30秒监控,每次启动一个下载任务,直到正在下载数等于最大同时下载任务数。

比如我的程序安装的路径为/home/express-ffmpeg,那么前往该文件夹。

然后编辑源码目录里的helper/agenda.js文件,需要修改代码await agenda.every("30 seconds", "auto download")30 seconds30秒,只需要修改数字即可,如20秒就改成await agenda.every("20 seconds", "auto download")

最后改完使用命令pm2 reload efvcms重启生效。

下载API使用

POST /api/downloadm3u8

body: {
    #必填参数
    apikey, //转码设置获取
    name, //视频名称,下载完成后自动入库到视频管理的视频名称
    url,  //下载链接,注意如果地址包含&等特殊符号,如果影响到使用,记得转义下
    type,  //下载类型,如m3u8、downloadall,且m3u8仅支持下载m3u8链接,downloadall支持m3u8、mp4、mkv等其它视频直链和youtube视频地址下载,建议下载M3U8首选m3u8类型,m3u8类型出错就使用downloadall类型下载M3U8。

    #可选参数,如用不到相关参数可不用传递
    poster,  //封面链接,封面仅支持jpg、png、jpeg、webp格式,下载转码后,会自动转换成封面1和封面2;如不填会自动生成封面。
    category, //视频分类,不存在会自动创建
    clientId, //传递一个数据库id,即客户端辨识视频id,当使用通知接口返回信息的时候会返回该id,让你对应并进行数据填充。
    geturl, //解析接口配置,设置详情看下方
    originaltitle, //视频原名
    aka, //视频别名
    language, //语言
    banben, //版本,如HD、高清等
    director, //导演,多个导演用英文逗号,分开,如导演1,导演2,导演3
    stars, //主演,多个主演用英文逗号,分开,如主演1,主演2,主演3
    writer, //编剧,多个编剧用英文逗号,分开,如编剧1,编剧2,编剧3
    tags, //分类标签,多个标签用英文逗号,分开,如剧情,悬疑,搞笑
    summary, //视频简介
    country, //发行地区
    year, //发行年份
    rate, //豆瓣评分
}

response: {
    success: 1|0,  //1成功,0失败
}

#curl命令使用示例
curl http://127.0.0.1:3000/api/downloadm3u8 -d "name=西游记&category=动作片&url=http://127.0.0.1:8080/1.m3u8&apikey=5c20cEga&type=m3u8&poster=http://127.0.0.1:8080/1.jpg

注意部分参数的格式,切勿乱填,且导入成功后,部分信息不会显示在下载中心,直到下载完成后,会自动将你填入的所有信息入库到视频管理。

解析接口配置

如果获取到的m3u8需要配合解析接口使用,那么得填入解析接口配置,格式为:解析参数$解析接口

比如我获取到的m3u8链接为:http://127.0.0.1:8080/1.m3u8,解析接口为:http://127.0.0.1:3000/api?url=

然后访问解析m3u8的地址,如:http://127.0.0.1:3000/api?url=http://127.0.0.1:8080/1.m3u8,返回json数据如下:

{
    code: '200',
    url: 'http://127.0.0.1:8080/9.m3u8',
    type: 'hls'
}

url参数为解析后获取到的m3u8链接,那么解析接口配置就填入:url$http://127.0.0.1:3000/api?url=,最后下载的时候,会提取解析后的m3u8进行下载。

21 - RSS和XML订阅自动下载

可以添加多个RSS和XML订阅地址,开启后会定时的请求订阅地址,并根据设置的规则提取BT链接自动下载。

订阅说明

提示:由于有些没速度的磁力不会在bt任务列表显示相关信息,而bt种子不管有无速度都会显示信息,所以推荐优先使用bt种子的订阅。

一般订阅下载主要用于一些未完结的动漫或剧集,然后通过订阅获取最快速度的资源更新;已完结的推荐直接在BT管理上传种子进行下载。

且订阅下载默认最多同时下载8个任务,不管你同时开启多少订阅,那么最多只能8个依次显示下载,其余会在后台慢慢等待。

修改并发可编辑源码目录下的aria/aria2.conf,将max-concurrent-downloads=8后面的8修改其它数字,然后使用pm2 reload aria2c && pm2 reload aria2server命令重启生效。

RSS订阅设置步骤

这里会拿动漫网站https://bangumi.moerss为参考,先前往BT管理中心,点击添加RSS订阅,大致所需参数:

#以下参数均为示例,仅作参考
RSS地址:https://bangumi.moe/rss/latest
资源标识:enclosure.url
查询间隔:30
包含关键词:CHT|1080|x264|GB|内封|MP4|内嵌|简体|简繁
包含关键词数量:3
发布类型:视频
是否自动发布:是
关联剧集:具体教程在本页下方,可暂时不设置(该功能适用于指定剧集的RSS,并提前设置好剧集信息,监控到新剧集自动下载并添加到剧集,智能处理分集名)
自动分类:日本动漫

比如我打开一个RSS地址https://bangumi.moe/rss/latest,该订阅中的item如下:

<item>
<title>
<![CDATA[ [动漫国字幕组&LoliHouse] 鲁邦三世 Part 6 / Lupin III - Part 6 - 16-18 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕] ]]>
</title>
<description>
<![CDATA[ <p><img src="https://i.loli.net/2021/10/17/r81KGFHlfxsauT6.jpg"></p><p><strong>鲁邦三世 Part 6 / Lupin III - Part 6<br></strong></p><p><strong>字幕:动漫国字幕组</strong></p><p><strong>Encoder:Back@LoliHouse</strong></p><p>为了顺利地观看我们的作品,推荐大家使用以下播放器:</p><p>Windows: <a href="https://sourceforge.net/projects/mpcbe/" target="_blank">MPC-BE</a></p><p>macOS: <a href="https://lhc70000.github.io/iina/" target="_blank">IINA</a></p><p>iOS: <a href="https://itunes.apple.com/us/app/nplayer-lite/id1078835991?mt=8" target="_blank">nPlayer</a></p><p>Android: <a href="https://play.google.com/store/apps/details?id=com.mxtech.videoplayer.ad" target="_blank">MX Player</a></p><p><b><strong><b><a href="https://share.dmhy.org/topics/view/478666_LoliHouse_LoliHouse_1st_Anniversary_Announcement_and_Gift.html" target="_blank">点击查看LoliHouse一周年公告&amp;礼包</a></b></strong></b></p><p><b><strong><b><strong><b><strong><b><strong><b><a href="https://share.dmhy.org/topics/view/534469_LoliHouse_LoliHouse_3rd_Anniversary_Announcement.html" target="_blank">点击查看LoliHouse三周年纪念公告</a></b></strong></b></strong></b></strong></b></strong></b></p> ]]>
</description>
<link>https://bangumi.moe/torrent/6201e1018937cd0007796b89</link>
<guid isPermaLink="true">https://bangumi.moe/torrent/6201e1018937cd0007796b89</guid>
<pubDate>Tue, 08 Feb 2022 03:18:25 GMT</pubDate>
<enclosure url="https://bangumi.moe/download/torrent/6201e1018937cd0007796b89/[动漫国字幕组&LoliHouse] 鲁邦三世 Part 6 _ Lupin III - Part 6 - 16-18 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕].torrent" length="0" type="application/x-bittorrent"/>
</item>

可以看见其下载地址(磁力或者种子地址)在enclosure这个标签中,而其中的url的则是真正的资源链接!于是我们这里资源标识填写:enclosure.url则可以了,有些rss订阅的下载地址是<link>https://efvcms.com/1.torrent</link>,则资源标识直接填写link即可!

查询间隔:30,这里意思是每30分钟请求一次订阅

包含关键词:GB|720|x264|CHT|内封|内嵌|MP4|简体|简繁,这里意思是标题需要包含哪些关键词才下载,用英文|隔开!

包含关键词数量:3,这里意思是,上边关键词中需要至少包含多少个关键词,才下载!

是否自动发布,意思是是否转码完成之后立刻发布!

自动分类,意思是下载完成之后自动分类至某分类!

以上,当我们全部设置好了之后,点击开始订阅,则一切都开始自动化了!自动下载,自动分类,自动转码,自动发布!完全自动化运营!

XML订阅设置步骤

前往BT管理中心,点击添加XML订阅,大致所需参数:

#以下参数以苹果CMS的XML为示例,仅作参考
XML地址:
资源数据标识:rss.channel.0.item
资源标题标识:title.0
资源标识:enclosure.0.$.url
查询间隔:120
包含关键词:CHT|1080|x264|GB|内封|MP4|内嵌|简体|简繁
包含关键词数量:3
发布类型:视频
是否自动发布:是
关联剧集:暂不设置(该功能适用于指定剧集的XML,并提前设置好剧集信息,监控到新剧集自动下载并添加到剧集,智能处理分集名)
自动分类:日本动漫

比如我打开一个苹果CMSXML地址,该订阅大概信息如下:

资源数据标识、资源标题标识、资源标识可以查看上方截图,模仿设置,如果是苹果CMS可直接照搬设置,其它XML不会的,直接联系我们即可。

查询间隔:120,这里意思是每120分钟请求一次订阅

包含关键词:GB|720|x264|CHT|内封|内嵌|MP4|简体|简繁,这里意思是标题需要包含哪些关键词才下载,用英文|隔开!

包含关键词数量:3,这里意思是,上边关键词中需要至少包含多少个关键词,才下载!

是否自动发布,意思是是否转码完成之后立刻发布!

自动分类,意思是下载完成之后自动分类至某分类!

关联剧集说明

提示:关联剧集用于全自动更新新番使用;如果想省事,也可以适用于已完结剧集,不过自动命名可能需要注意点,可看最下面说明。

关联剧集后,程序会根据RSS及设置的规则自动下载剧集,如果该剧集有更新,则会自动下载转码,并自动添加到剧集里面,且也会自动命名,基本全自动处理。

先点击EFV后台左侧 ⇒ CMS相关 ⇒ 剧集管理,新建一个剧集钻石王牌,标签,简介等相关信息都填好,如图:

然后接下来找到该剧集的专属RSS链接,我们先进入该网站的搜索页面,不知道搜索页面在哪的,可点击 ⇒ 搜索页面,然后搜索该剧集,如图:

然后点击右上角的RSS图标,可以获取到这个剧集关键词的专属RSS链接。

接下来添加RSS订阅的时候,填入专属RSS链接,并设置好相关信息(该网站可参考上面的RSS演示),关联剧集的话,搜索该剧集名称,选择即可。

注意自动发布需要开启,不然不会给你加到剧集;且关键词过滤尽量精准定位,可以把字幕组、分辨率、语言名称也加上,如极影字幕社|简体|MP4|720P,尽量具有唯一性,以免同类视频下载重复。

自动命名的注意事项

关联剧集之前,最好自己先手动至少添加一个从bt管理下载的单集进去,也就是目前的自动命名算法需要有一个参照物,不然第一个最先下载的视频,会没参照物,可能不会自动命名,之后下载的会对比第一个视频,就会自动命名了。

当然你也可以不用添加一个单集进去,后面可以自己挨个调整下,也不难,步骤这里说下,先找到一个剧集,点击添加分集。

然后找到未命名的那个集数,鼠标左键点击最左侧的3杠图标,可以上下自由拖动,根据集数拖到合适的位置。

然后根据其它集数的命名规则,手动修改下该集数的命名即可,记住格式为集数&单集视频ID,后面的&单集视频ID不要修改,只修改前面的集数命名。

改完点击提交就可以了。

最后已完结的剧集不推荐使用关联剧集功能,直接全部下载了,使用一键添加功能,一次性添加到剧集可能会更方便,当然看你习惯而定。

22 - 自动下载苹果CMS采集数据

目前可以将苹果CMS采集接口的视频、剧集的所有信息自动入库并下载转码,包括封面、分类、简介、演员等。

我们可以将一些资源站或者苹果CMSm3u8链接、封面、标签、分类、简介、演员等所有信息入库到下载中心,然后下载完成后,这些信息会自动填充到视频管理。

对于剧集,采集期间会自动给你创建剧集信息,并且当剧集里的所有单集下载完成并自动转码后,也会自动给你添加进指定剧集,并自动按集数顺序排序。

提示:如果有剧集里面的单集,命名不是很规范的,可能会自动添加进剧集失败,如出现,请手动添加。

如果下载的视频有水印,推荐配合去水印/跑马灯功能一起使用,然后去水印模板再绑定分类,会在下载完成后,自动匹配去水印转码。

采集步骤

可前往程序后台 ⇒ 点击左侧转码相关 ⇒ 下载中心,点击自动入库苹果CMS数据,再进行相关填入。

获取苹果CMS的接口链接

提示:目前仅支持苹果CMS v10的json类型采集接口

如果是自用的苹果CMS,可直接前往苹果CMS后台,开放采集API,并拿到json接口即可。

如果是资源站,可直接前往资源站的采集信息页面,拿到苹果CMS V10json接口就可以了,且多个接口使用$隔开,如:

http://127.0.0.1:4000/api/provider/vod/?ac=list$http://127.0.0.1:3000/api/provider/vod/?ac=list$http://127.0.0.1:5000/api/provider/vod/?ac=list

指定分类

指定分类默认为空,为空也就是会采集接口的全部数据;如果你只想采集接口部分分类视频,则填入即可,且多个分类使用$隔开,如:

#只采集分类1的视频或剧集,则填入:分类1
#只采集分类1、分类2的视频或剧集,则填入:分类1$分类2
#只采集分类1、分类2、分类3的视频或剧集,则填入:分类1$分类2$分类3

如果配置多个接口,则将所有接口,你需要采集的分类,都填进去即可。

解析接口配置

提示:如果你有多个采集接口,且解析接口都不一样,推荐每个接口单独采集一次。

如果获取到的m3u8需要配合解析接口使用,那么得填入解析接口配置,格式为:解析参数$解析接口

比如我获取到的m3u8链接为:http://127.0.0.1:8080/1.m3u8,也有可能是m3u8加密字符串,解析接口为:http://127.0.0.1:3000/api?url=

然后访问解析m3u8的地址,如:http://127.0.0.1:3000/api?url=http://127.0.0.1:8080/1.m3u8,返回json数据如下:

{
    code: '200',
    url: 'http://127.0.0.1:8080/9.m3u8',
    type: 'hls'
}

url参数为解析后获取到的m3u8链接,那么解析接口配置就填入:url$http://127.0.0.1:3000/api?url=,最后下载的时候,会提取解析后的m3u8进行下载。

23 - BT手动和自动做种教程

目前支持手动批量做种、自动做种,做种期间可以加入相关广告文件,且自动做种支持API获取做种全部信息。

目前做种有3种类型,第1种为自动做种,即转码期间给你做完种;第2种就是定向做种,你可以转码后对指定视频做种;第3种就是批量做种,你可以一次性将多个视频做到一个种子,适合剧集等。

且由于EFV重启后,做种服务器会断开,需要一个一个重新启动做种会很麻烦,所以建议做完种后,迁移下做种数据,单独将做种数据存放到其他服务器,会更稳,也不会占用EFV服务器带宽,具体教程可看最后面。

自动做种步骤

提示:自动做种必须要转码下才生效;秒切是无效的,也就不会给你自动做种,秒切可使用定向或批量做种。

比如我想做种转码后的1080p分辨率的视频,先点击EFV后台左侧 ⇒ 转码设置,找到相关选项,如下:

然后我就需要转码1080p的视频,则多码率选中1080p,当然如果你也想同时转码其它分辨率,也可以选中即可。

接下来还需要保留1080p分辨率的mp4视频,也就是保留转码后的1080p mp4文件,用来做种。

注意,秒切一定要关闭,且自动做种的种子名称和视频名称一样,请转码之前提前修改好视频名称。

最后做种完毕后,前往BT管理中心查看种子信息即可。

自动做种通知接口

如果需要在第三方程序获取到做种资源,可点击EFV后台左侧 ⇒ 转码设置,找到做种成功通知域名,填入接收域名即可。

然后做种成功后就会将标题、截图、预览视频、磁力地址POST到这个域名,您在您的后台只需要针对这个接收API处理JSON数据入库您自己的第三方程序数据库即可。

JSON数据参考:

{
poster2: {
  url: '/videos/659254e55f957d40acd7649a/poster2.jpg',
  width: 600,
  height: 338
},
count: 0,
zan: 0,
collect: 0,
share: 0,
retry: false,
autoPublish: false,
director: [],
writer: [],
stars: [],
country: [],
tags: [],
screenshots: [
  '/videos/659254e55f957d40acd7649a/5.jpg',
  '/videos/659254e55f957d40acd7649a/3.jpg',
  '/videos/659254e55f957d40acd7649a/0.jpg',
  '/videos/659254e55f957d40acd7649a/1.jpg',
  '/videos/659254e55f957d40acd7649a/4.jpg',
  '/videos/659254e55f957d40acd7649a/2.jpg'
],
_id: '659254e55f957d40acd7649a',
status: '转码完成',
originalname: '视频名称',
path: './upload/8d2f39de174d54f1b53821b819cb9f70',
size: '68338293',
m3u8paths: [
  {
    _id: '659255685f957d40acd764db',
    hd: 1920,
    path: './public/videos/659254e55f957d40acd7649a/1080/index.m3u8'
  }
],
thirdm3u8: [],
updateAt: '2024-01-01T06:00:20.468Z',
createAt: '2024-01-01T06:02:16.181Z',
__v: 0,
duration: '2分钟',
moviepath: '/videos/659254e55f957d40acd7649a',
height: 1080,
width: 1920,
previewvideo: '/videos/659254e55f957d40acd7649a/preview.mp4',
firstScreen: '/videos/659254e55f957d40acd7649a/first.jpg',
poster: '/videos/659254e55f957d40acd7649a/cover.jpg',
download: './public/videos/659254e55f957d40acd7649a/1080.mp4',
totv: null,
magnetUrl: 'magnet:?xt=urn:btih:xxxx',
torrent: '/torrents/xxxx.torrent'
}

定向做种步骤

前往程序后台 ⇒ 进入视频管理,点击视频操作,选择做种即可!

由于做种会自动将M3U8合成视频文件,所以选择做种视频的分辨率必须存在,不然做种会出错。

批量做种步骤

批量做种适合合集或剧集,前往程序后台 ⇒ 进入视频管理,批量选择多个视频,点击下方的批量做种即可!

由于做种会自动将M3U8合成视频文件,所以选择做种视频的分辨率必须存在,不然做种会出错。

开启种子RSS

该功能会开启一个XML文件,通过P2P下载软件中的RSS订阅即可全自动下载EFV做种的文件,用于做种等功能,地址为/seed/rss

可点击EFV后台左侧 ⇒ 转码设置,找到是否开启做种RSS,开启即可。

广告植入

如果你想在种子里面打广告,并加入一些广告文件或图片,可直接将相关文件存放到转码源码里面的/bt/fuli文件夹,做种时会一起加进去。

迁移做种数据

我们将种子等相关文件迁移到其它服务器上,再删除EFV高级版上的做种数据和文件,这样就可以由该服务器提供节点给人下载,以减轻转码服务器的压力。

这里使用比较好用的qBittorrent用来存放做种数据,当然如果你只拿EFV做种,不使用切片播放功能,也可以根据下面的教程,在EFV服务器安装qBittorrent,把EFV的做种数据迁移过来。

安装qBittorrent

服务器建议优先安装Ubuntu,其次Debian 9+系统,安装教程 ⇒ 传送门

安装完成,并将该工具设置成中文后,再进入设置更改下做种上传信息,如下:

下载EFV做种的磁力

我们根据需求使用EFV将视频做成种子,如下:

然后我们再使用qBittorrent,下载EFV做种的磁力视频,如下:

下载可以手动复制EFV做种视频的磁力,或下载种子文件;还可以通过EFV的做种RSS自动下载,先开启EFV的做种RSS,再点击qBittorrent右上角的RSS功能进行订阅下载。

再前往EFVBT管理中心,将已经下载完成的做种信息删除即可,包括做种视频,可以节省硬盘空间。

最后其它人下载该视频种子磁力的时候,只消耗qBittorrent所在的服务器带宽,而不会消耗EFV高级版的带宽了。

如果我们忘记了某个视频的磁力,可以直接在qBittorrent客户端,鼠标右键该视频,复制磁力就可以了。

注意,当磁力变成热门的时候,也就是qBittorrent界面显示的在线用户数很多的时候,可以根据情况撤种,也就是删除该资源,节省带宽和资源。

撤种后,就由其它人来帮你提供下载了。