转码部分功能详解
- 1: 将服务器文件入库转码
- 2: 下载网盘/云存储的视频入库转码
- 3: 多码率设置和自适应/试看M3U8
- 4: 发布到第三方CMS教程
- 5: 封面1和封面2及截图说明
- 6: 跑马灯和水印设置步骤
- 7: 批量重新转码指定视频
- 8: 自定义切片路径设置规则
- 9: 快速替换ASS水印教程
- 10: 去除跑马灯和水印步骤
- 11: 视频防盗防播及图片加密
- 12: srt和ass字幕烧录教程
- 13: 如何控制TS切片的大小
- 14: 设置动态片头和片中广告
- 15: 新增和随时替换片中广告
- 16: FTP多用户上传入库
- 17: 烧录封面广告和片头广告
- 18: 云存储同步详细设置
- 19: 分发即线路管理设置
- 20: 快速剪切片头和片尾
- 21: 自动裁剪指定片段视频
- 22: 下载BT种子/磁力和M3U8等
- 23: RSS和XML订阅自动下载
- 24: 自动下载苹果CMS采集数据
- 25: BT手动和自动做种教程
1 - 将服务器文件入库转码
入库步骤
提示:该功能会经常优化,如果你发现有些功能不生效,请更新到最新版后再使用该功能。
入库文件夹为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/教育片/儿童教育
等。
入库自动增加前缀
提示:如果入库分类的一级目录符合自动增加前缀的要求,那么不会触发自动分类,也就仅作为自动命名使用。
入库支持自动增加前缀,适用于多个剧集,且单集名称均为集数命名,如01
、02
。
如我在入库文件夹movies
新建一个子文件夹,命名要求:rename剧集名称
,如rename西游记
,然后将所有单集存放到该文件夹,入库的时候,里面视频会自动加上剧集名称前缀,如01
会命名成西游记 01
,02
会命名成西游记 02
。
封面自动入库
入库支持使用自有封面,即转码完成后,封面1
和封面2
均显示的是自己入库的时候设置的封面。
需要将封面文件的名称修改成对应的视频名称,存放到同一入库根目录文件夹或者一级分类文件夹,如:
#入库文件夹movies的根目录
movies/西游记.mp4
movies/西游记.jpg
#入库文件夹movies的一级分类神话片文件夹
movies/神话片/西游记.mp4
movies/神话片/西游记.jpg
且后缀不用管,前面名称一样就行,且封面仅支持jpg
、jpeg
、png
、webp
。
自动添加剧集
提示:剧集文件夹需要为一级目录才能识别,且暂时不支持文件夹分类,可通过json传递分类信息。
目前可以在入库文件夹movies
按要求新建剧集文件夹,并将单集视频传进去,然后会自动创建剧集,且里面的视频切完也会自动添加进剧集,并自动排序。
首先在入库文件夹movies
新建一个文件夹,命名格式:autotv剧集名称
,如autotv西游记
,然后将命名规范的单集传进去,如01
、02
、03
或第01集
、第02集
;如果总集数有3
位数,那么就用001
、002
、003
,然后入库单集的时候会自动创建剧集,并会被标记,转码完成后,也会自动添加进剧集,并自动排序。
注意入库剧集的时候,会在剧集文件夹创建一个24
位id
文件,切勿删除,不然会重新创建新的同名剧集,后面入库的单集会添加到新的剧集。
剧集封面入库说明
比如我的剧集文件夹为autotv剧集名称
,那么将封面文件名改成剧集名称.jpg
,格式也可以为jpeg
、png
、webp
,并存放到剧集文件夹就可以了,入库的时候,创建剧集信息会自动使用该封面。
视频和剧集详情信息入库
入库的时候可以将视频和剧集的标签、简介等详情信息一起入库,且可以和封面入库,字幕入库一起使用,说明如下。
视频详情信息入库
入库视频的时候,需要在该视频所在文件夹存放一个同名json
文件,如下:
#只需要同名,视频后缀限制可参考上面说明。
视频名称.mp4
视频名称.json
#json文本内容格式如下,一行一个,字段和参数使用$隔开,不填则默认为空值
language$英语
director$文斯·吉利根,米歇尔·麦克拉伦
stars$布莱恩·科兰斯顿,亚伦·保尔
tags$犯罪,剧情,惊悚
summary$一位高中化学老师的故事...
country$美国
year$2008
rate$9.2
#json参数详解
language, //语言
director, //导演,多个导演用英文逗号,分开,如 导演1,导演2,导演3
stars, //主演,多个主演用英文逗号,分开,如 主演1,主演2,主演3
writer, //编剧,多个编剧用英文逗号,分开,如 编剧1,编剧2,编剧3
tags, //分类标签,多个标签用英文逗号,分开,如 剧情,悬疑,搞笑
summary, //剧集简介
country, //发行地区
year, //发行年份,如 1996
rate, //豆瓣评分,如 8.8
剧集详情信息入库
入库的时候,需要在剧集文件夹存放一个以剧集名称命名的json
文件,比如我的剧集文件夹为autotv剧集名称
,那么改成剧集名称.json
,如下:
#json文本内容格式如下,一行一个,字段和参数使用$隔开,不填则默认为空值
category$分类名称
language$英语
director$文斯·吉利根,米歇尔·麦克拉伦
stars$布莱恩·科兰斯顿,亚伦·保尔
tags$犯罪,剧情,惊悚
summary$一位高中化学老师的故事...
country$美国
episodescount$62
year$2008
rate$9.2
#json参数详解
category, //分类
language, //语言
director, //导演,多个导演用英文逗号,分开,如 导演1,导演2,导演3
stars, //主演,多个主演用英文逗号,分开,如 主演1,主演2,主演3
writer, //编剧,多个编剧用英文逗号,分开,如 编剧1,编剧2,编剧3
tags, //分类标签,多个标签用英文逗号,分开,如 剧情,悬疑,搞笑
summary, //剧集简介
country, //发行地区
episodescount, //集数
year, //发行年份,如 1996
rate, //豆瓣评分,如 8.8
入库烧录ass和srt字幕
入库支持字幕文件烧录,也就是转码的时候,会自动烧录入库文件夹的ass
和srt
字幕文件。
规则和封面自动入库一样,即将ass
和srt
字幕的名称修改成对应的视频名称,存放到同一入库根目录文件夹或者一级分类文件夹,如:
#入库文件夹movies的根目录
movies/西游记.mp4
movies/西游记.ass
#入库文件夹movies的一级分类神话片文件夹
movies/神话片/西游记.mp4
movies/神话片/西游记.ass
后缀不用管,前面名称一样就行,这样转码的时候字幕会自动烧录进视频,注意秒切是不会烧录字幕的。
筛选字幕烧录
提示:该功能可指定烧录带有语言标识的字幕文件,即无需字幕文件和视频同名。
一般字幕文件需和视频同名才会被烧录,如果你的字幕文件有一到多个,且都带有语言标识,也就是和视频不完全同名,可前往转码设置
设置筛选字幕烧录
功能项,可以烧录指定语言的字幕文件。
设置格式zh-Hans
、zh-Hans|BluRay
或zh-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使用
可远程使用该api
将movies
所有视频入库到视频库,再自动转码,用法如下:
POST /api/ruku
body: {
apikey,
}
response: {
success: 1,
}
#curl命令使用示例,apikey可在转码设置处获取
curl http://127.0.0.1:3000/api/ruku -d "apikey=5c20cEga"
2 - 下载网盘/云存储的视频入库转码
提示:新版支持Alist/OpenList、S3数据入库功能,可前往下载中心进行配置。
一般我们使用EFV
上传视频的时候,由于本地和服务器之间网络连接不理想,导致上传比较慢,这里我们可以通过网盘中转提高上传效率。
大致原理就是,我们将视频文件上传到一些合适的网盘,如阿里云、115
、百度、天翼等网盘,然后再使用服务器下载这些网盘的视频,通过入库功能导入到EFV
进行转码切片。
或者你网盘有很多视频文件,也可以直接把视频下载到服务器,再入库进行转码,
入库S3数据
提示:入库的S3文件下载链接的签名有效时间为7天,也就是入库后需尽快下载完,过7天下载链接会自动失效。
该功能可以自动获取S3
和支持S3
接口的云存储文件链接,并入库到下载中心,下载完成后,再自动入库到视频管理,进行转码切片。
我们直接访问EFV
的下载中心,点击入库OpenList/S3
数据功能,选择S3
,填入相关信息即可,稍等片刻即可在下载中心查看到相关数据了。
视频自动分类
目前默认视频所在的第一层目录为分类,如我视频路径为/教育片/短视频/test.mp4
,那么教育片默认会设置成test
视频的分类。
封面自动入库
目前和视频处于同目录,且同名的图片文件,会默认匹配成该视频封面,如我视频路径为/教育片/短视频/test.mp4
,封面路径为/教育片/短视频/test.jpg
,那么test.jpg
默认会设置成test
视频的封面,且封面仅支持jpg
、jpeg
、png
、webp
格式。
自动识别剧集入库
如果视频是剧集,请按规定命名,需将分集改成按纯数字命名的视频,如01
、02
、03
,然后全部存放到以剧集名称
命名的文件夹里面。
入库的时候会自动改名成分集所在文件夹的名称+集数名称
,如我某集视频路径为/教育片/西游记/01.mp4
,那么01
入库的时候会命名成西游记 01
。
且会自动从剧集管理搜索分集所在文件夹的名称
,如存在该名称的剧集信息,并仅存在一个,那么会记录下来,等分集下载完成,在转码后,会自动添加进该剧集。
入库Alist/OpenList数据
Alist
是一款可以挂载多网盘的列表程序,可用作中转,将网盘的文件入库下载到EFV
转码,且OpenList
为其分支。
目前由于某些原因,这里推荐优先使用OpenList
,也就是下面教程会以OpenList
为主,当然你也可以使用Alist
,用法和OpenList
一样。
目前OpenList
支持网盘如下:
多种存储
本地存储
阿里云盘
OneDrive / Sharepoint (国际版, 中国, DE, US)
天翼云盘(个人、家庭)
GoogleDrive
123云盘
FTP / SFTP
PikPak
S3
Seafile
又拍云对象存储
WebDAV
Teambition(中国, 国际)
分秒帧
和彩云(个人、家庭、群组)
YandexDisk
百度网盘
Terabox
UC网盘
夸克网盘
迅雷网盘
蓝奏云
蓝奏云优享版
阿里云盘分享
Google 相册
Mega.nz
百度相册
SMB
115
Cloudreve
Dropbox
飞机盘
多吉云
Azure Blob Storage
更多网盘可查看 ⇒ 传送门,开源地址:https://github.com/OpenListTeam/OpenList
安装OpenList
首先安装Docker
,Linux
快速安装Docker
⇒ 传送门,然后在SSH
客户端使用命令:
#/etc/openlist为数据存放目录,自行修改,且为绝对路径。
mkdir -p /etc/openlist
chown -R 1001:1001 /etc/openlist
docker run -d --restart=unless-stopped -v /etc/openlist:/opt/openlist/data -p 5244:5244 -e UMASK=022 --name="openlist" openlistteam/openlist:latest
#查看默认密码
docker logs openlist
#手动设置密码为NEW_PASSWORD(替换为您要设置的密码)
docker exec -it openlist ./openlist admin set NEW_PASSWORD
接下来浏览器访问OpenList
的web
地址,也就是服务器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
如果你有安装宝塔,也可以直接在宝塔左侧安全开放。
挂载网盘
提示:使用下载中心入库OpenList之前,需前往OpenList后台 ⇒ 设置 ⇒ 全局,关闭签名所有,不然下载会出错。
我们通过浏览器访问OpenList
的web
地址,也就是服务器ip:5244
,再使用管理员账户登录。
接着直接访问服务器ip:5244/@manage/storages
,点击添加,选择适合自己的网盘;可参考 ⇒ 传送门。
注意挂载路径需填写/
,即挂载到根目录,不然EFV
入库会识别不了,挂载好了后,我们直接访问EFV
的下载中心,点击入库OpenList/S3
数据功能,选择OpenList
,填入相关信息即可,稍等片刻即可在下载中心查看到相关数据了。
挂载或使用期间如果出现相关错误,可参考:OpenList报错码解决。
视频自动分类
目前默认视频所在的第一层目录为分类,如我视频路径为/教育片/短视频/test.mp4
,那么教育片默认会设置成test
视频的分类。
封面自动入库
目前和视频处于同目录,且同名的图片文件,会默认匹配成该视频封面,如我视频路径为/教育片/短视频/test.mp4
,封面路径为/教育片/短视频/test.jpg
,那么test.jpg
默认会设置成test
视频的封面,且封面仅支持jpg
、jpeg
、png
、webp
格式。
自动识别剧集入库
如果视频是剧集,请按规定命名,需将分集改成按纯数字命名的视频,如01
、02
、03
,然后全部存放到以剧集名称
命名的文件夹里面。
入库的时候会自动改名成分集所在文件夹的名称+集数名称
,如我某集视频路径为/教育片/西游记/01.mp4
,那么01
入库的时候会命名成西游记 01
。
且会自动从剧集管理搜索分集所在文件夹的名称
,如存在该名称的剧集信息,并仅存在一个,那么会记录下来,等分集下载完成,在转码后,会自动添加进该剧集。
3 - 多码率设置和自适应/试看M3U8
多码率说明及设置
提示:多码率相关功能仅在转码下生效,秒切不生效,秒切默认为源片分辨率和码率。
多码率转码可以同时将视频转码到240P
、360P
、480P
、640P
、720P
、1080P
,2K
,原画
多个分辨率视频,原画也就是默认为源片的分辨率和码率。
码率设置
提示:2025-05-20之后的版本新增原画码率设置,且简化了各分辨率码率设置,旧版本请更新到新版后再使用。
点击EFV后台左侧 ⇒ 转码设置 ⇒ 多码率和码率设置;如果你想同时转多个分辨率视频就选择多个分辨率即可。
这里会根据你的选择,强行给你改变源片的分辨率和码率,且清晰度主要由码率决定,码率为可变码率,会随机波动,码率设置说明:
1、分辨率对应的码率数值设置的越大,视频越清晰,同样的视频体积也会增大。
2、转码使用可变码率,码率上下50%波动,对源片进行最优处理,比如给1080P设置1080:2000也就是2000码率,那么理论上转码期间码率为2000-2000x50%~2000+2000x50%即1000~3000码率之间波动。
帧率设置
点击EFV
后台左侧 ⇒ 转码设置 ⇒ 帧率设置;目前采用平衡策略,在相同码率下会自动调整画质与流畅度的平衡,更高帧率带来更流畅的画面,但可能会降低单帧画面细节。
跳过高分辨率说明
点击EFV
后台左侧 ⇒ 转码设置 ⇒ 跳过高分辨率;如果你多码率选择360P
、720P
、1080P
,且开启了跳过高码率,则如果源片为720P
,则转码的时候,只会给你转360P
、720P
,也就是设置的分辨率里面,不会给你转码到比源片高的分辨率。
且当设置的分辨率都高于源片的分辨率的时候,默认给你转码原画,即源片的分辨率和码率。
自适应M3U8说明
自适应M3U8
是由EFV
自动生成的虚拟播放链接,不存在实际M3U8
文件。系统会将你转码生成的多分辨率M3U8
自动合并为一个自适应M3U8
,实现智能分辨率调节。
当用户播放该链接时,播放器会根据用户当前网络带宽,自动匹配最合适的分辨率播放流,以避免卡顿和缓冲,提升观看体验。
部分播放器,如Plyr
等支持解析自适应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
地址,也可以播放。可以自行拓展玩法。
获取试看M3U8
提示:试看实际时长可能会和设置时长有偏差,也就是最多相差一个切片的时长。
试看M3U8
是由EFV
自动生成的虚拟播放链接,不存在实际M3U8
文件。系统会从完整M3U8
截取指定时长的切片拼接成新的M3U8
,提供片段播放。
使用该功能需前往转码设置,找到最下方的试看时长
,填入任意数值开启该功能,留空则关闭。
#id为视频管理的视频id,id可通过后台复制M3U8或者数据API接口获取
Get /try/{id}.m3u8 //如:/try/67bff3289760c92110be672c.m3u8
该地址会返回该视频最高分辨率的设置时长M3U8
内容,可直接提供播放,目前已适配时间戳防盗链
。
指定试看时长
我们也可以通过参数自由调节试看时长,适配长短视频,使用如下:
#time为试看时长,单位为秒
Get /try/{id}.m3u8?time=20 //如:/try/67bff3289760c92110be672c.m3u8?time=20
试看链接最大只能输出转码设置的试看时长;如设置的试看时长60
秒,time
大于60
的时候,则依然只能输出60
秒视频。
4 - 发布到第三方CMS教程
目前有很多方法可以将EFV
的数据发布到第三方程序,可自行根据适合自己的方案选择,如果以下某个功能不存在,请看文档更新到最新版本即可。
发布到苹果CMS
可前往程序后台 ⇒ 转码相关 ⇒ 对接苹果CMS
,设置好可供苹果CMS
直接采集的api
参数即可,具体参考 ⇒ 传送门。
发布到海洋CMS
可前往程序后台 ⇒ 转码相关 ⇒ 对接海洋CMS
,设置好可供海洋CMS
直接采集的api
参数即可,具体参考 ⇒ 传送门。
发布到爱影CMS
可前往程序后台 ⇒ 转码相关 ⇒ 对接苹爱影CMS
,设置好可供爱影CMS
直接采集的api
参数即可,具体参考 ⇒ 传送门。
发布到WordPress
可前往程序后台 ⇒ 转码相关 ⇒ 导出到WordPress
,设置好导出参数,然后再导入到WordPress
即可,具体参考 ⇒ 传送门。
批量导出M3U8链接到文本
目前可批量导出指定分类或全部视频数据到文本、支持导出视频标题、M3U8
链接、封面、GIF
动态图、预览视频等。
可前往程序后台 ⇒ 转码相关 ⇒ 视频管理,再点击下方的导出m3u8链接
功能即可,导出规则如下:
基本规则:使用变量字段 + 分隔符组合,字段顺序可自定义调整
必需字段:
name - 视频标题
m3u8 - m3u8地址
可选字段:
poster - 封面1
poster2 - 封面2
time - 时间(格式为00:00:00)
duration - 时长(格式为120分钟)
category - 分类
gif - gif动态图
preview - 预览视频
格式示例:
name$m3u8$poster2$time
name|m3u8|poster2|duration|gif
name,m3u8,preview,category
里面的M3U8
和截图链接域名,需在转码设置的设置域名
填入,即该参数为文本的域名显示。
批量导出M3U8链接到Excel表格
目前可批量导出分类、分类标签、M3U8
链接、封面和截图链接到Excel
文档。
可前往程序后台 ⇒ 转码相关 ⇒ 视频管理,再点击下方的批量导出表格
,再选择导出的截图类型即可。
表格的M3U8
和截图链接域名,需在转码设置的设置域名
填入,即该参数为导出表格的域名显示。
开启火车头采集
可前往程序后台 ⇒ 转码相关 ⇒ 转码设置,开启采集页面
即可,然后可通过火车头采集转码后的视频、截图等信息,采集地址/caiji
。
采集地址的M3U8
和截图链接域名,需在转码
设置的站点
填入,即该参数为采集页面的域名显示。
全套数据获取接口API
可通过API
接口直接获取视频管理、剧集管理和音频管理的全部数据,包括M3U8
等相关链接,具体参考 ⇒ 传送门。
数据POST通知接口
该功能可在视频转码完成后,会立即将m3u8
链接等信息自动通知到指定域名,你只需要接收相关数据并入库到你自己的程序即可,接口使用 ⇒ 传送门。
5 - 封面1和封面2及截图说明
封面1
提示:苹果CMS采集和WordPress导入默认使用封面1,可在后台各自的设置页面调整到封面2。
封面1
的长和宽由转码设置
的自定义封面宽度和长度
选项决定,可自行设置或默认即可;
通过程序自动生成,后台上传,或详情编辑的豆瓣接口获取的封面,均会根据设置自动裁剪处理。
但通过服务器封面入库、下载中心入库的封面是不会对长宽进行处理,均会保留入库源图的长宽大小。
封面2
提示:内置CMS默认使用封面2,且为横屏显示,如果你已使用竖屏海报,可在CMS设置调整到竖屏显示。
封面2
为自适应宽高比例,且数据库里边带有其宽高数据。
通过程序转码自动生成的封面2
逻辑和封面1
一样,长和宽由转码设置
的自定义封面宽度和长度
选项决定。
但通过后台上传的封面2
、服务器封面入库、或详情编辑的豆瓣接口获取的封面不会按照你设置的长宽裁剪,而是会自适应处理宽高比例,适用于影视相关的海报图片。
注意封面2
还预留一个不裁剪上传选项,即不对上传图片做任何处理,最大化保留源图的长宽大小,可上传gif
动态图片。
截图
提示:如果需要视频第一帧图片,可以前往转码设置开启第一帧截图。
截图的长宽由视频分辨率决定,默认从转码处理后的MP4
截图,也就是此时截图长宽就是你设置的转码分辨率。
如果你想设置转码之前截图,也就是不经过处理的源片截图,需前往转码设置
开启转码前截图
,此时截图长宽就是源片分辨率。
截图逻辑就是,视频总时长除以设置的截图数,取平均时长的截图。
6 - 跑马灯和水印设置步骤
提示:加水印、跑马灯必须要转码下才生效;秒切是无效的,也就不会给你加任何水印、跑马灯。
目前跑马灯和水印支持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水印设置
先点击EFV
后台左侧 ⇒ 转码相关 ⇒ 转码设置 ⇒ 开启全局ASS
特效字幕,然后分别设置ASS
横屏和竖屏水印代码即可。
且ASS
水印会和上方设置的各种类型的水印、跑马灯同时生效,在转码的时候会自动烧录进所有视频中。
7 - 批量重新转码指定视频
一般我们使用期间,有的之前是秒切,现在想加水印了;或者之前的水印跑马灯不需要了,现在需要换新的水印跑马灯,而又想保持所有链接不变,这时候可以使用重转功能。
使用说明
提示:如果你需要频繁换水印或跑马灯,推荐使用快速替换ASS水印功能,处理效率极高。
默认只重转转码完成的视频,且会在重转期间删除该视频的M3U8
切片和截图等数据,但不包括封面,可在下方手动选择删除封面图片,并在重转期间根据当前的转码设置,生成新的截图、预览视频和M3U8
切片等数据;且截图、预览视频和同分辨率的M3U8等链接保持不变。
如果视频源片存在,即转码设置开启过保留源片(频繁换水印或跑马灯推荐开启),则默认使用源片,不存在会自动合并视频M3U8
为MP4
,且服务器本地TS
切片不存在则会跳过合并,即不会对视频做重转处理,对于本地M3U8
切片有水印或跑马灯,建议配合去水印和跑马灯功能一起使用,效果更佳。
注意事项
如果重转前,视频是秒切,重转后,变成了转码,那么多码率设置的分辨率建议和秒切挂靠分辨率保持一致,即重转前视频转码的分辨率为1080P
,重转后也为1080P
、那么同分辨率1080P
的M3U8
链接会不变。
如果重转前,视频是转码,重转后,依然是转码,那么建议重转前后的多码率设置保持一致,这样所有分辨率M3U8
链接会不变,如果重转前视频转码的分辨率为720P
、1080P
,重转后为1080P
、原画
,那么只有同分辨率1080P
的M3U8
链接会不变,不同的会随机生成。
操作步骤
先前往EFV
后台左侧 ⇒ 转码相关 ⇒ 视频管理,通过筛选等方式,找出并选择需要重转的视频,也可以不用选择视频,直接点击下方的批量重新转码
功能即可。
这里我们可以重转选择的指定视频,也可以重转指定分类的全部视频,或者所有视频,根据自己的需求进行选择。
重转默认保留所选视频的封面1
和2
,仅删除M3U8
切片和其它截图等数据,如果你想删除封面,则开启;并会在重转期间生成新的封面数据。
8 - 自定义切片路径设置规则
自定义切片路径,并不是说给你存放到任意文件夹,还是以切片目录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}
。
9 - 快速替换ASS水印教程
该功能会将一到多个时间段的ASS
水印烧录进视频,且烧录后可以在相同时间段替换新的ASS
水印,也可以移除已添加的ASS
水印,且处理后的视频M3U8
链接不会改变。
替换也就是只会处理有水印的地方,比如你源片时长2
小时,ASS
水印出现时长共2
分钟,那么更换水印的时候,只会处理2
分钟的视频,而不是直接去处理2
小时视频,极大的提高处理效率;而且也不需要保留整个源片,只需要保留加水印的部分就行,比如一个视频加2
分钟水印,系统处理后会默认保留2
分钟的源片,差不多又节省空间,也节省重转时间。
相关说明
开启该功能后,仅对开启后转码的视频生效,已转码的视频可在视频管理使用重新转码生效;并且会强制转码源片一次,此后替换水印只会转码有水印的部分,即水印时间越短,处理越快。
可以添加多个时间段的ASS
水印规则,开始转码后,视频会自动绑定当前的所有规则,后面替换也只会替换/移除这些规则的水印,即新增规则也只对后面转码的视频生效,且规则被绑定后无法被删除。
视频处理期间会一次性处理下方所有的ASS
水印规则,且处理后会给该视频标记,在标记不变的情况下,不会被重新处理,如需给视频替换新ASS
水印,需先修改ASS
水印内容,再修改标记即可。
设置步骤
添加水印规则
前往程序后台 ⇒ 点击左侧转码相关 ⇒ 快速替换ASS
水印,先点添加ASS
水印规则,如下:
先设置好开始时间
和持续时间
,再前往EFV
专用的ASS
编辑器 ⇒ 传送门。
设置好相关参数后,直接将编辑器给的ASS
内容复制粘贴到设置项的ASS
内容框。最后提交即可。
如果你想添加时间段的ASS
水印,那么就添加多少个规则,后面转码的时候,会自动绑定添加的规则,替换和移除的时候,只会处理已绑定的ASS
水印规则。
你要是有多台EFV
系统,可以通过导出配置,将当前所有ASS
规则导出,再导入到另一台EFV
系统。
使用自有的ASS水印文件
提示:自有的ASS字幕文件需修改下开始时间,通过上面的EFV专用的ASS编辑器获取的ASS字幕可不用修改。
如果不想通过EFV
专用的ASS
编辑器获取ASS
水印,想自己通过其它方式获取,那这里举一个例子,比如我原ASS
字幕时间轴如:Dialogue: 0,0:10:00.00,0:12:00.00,*Default,NTP,0,0,0,,{\an2}{\shad0.5\}{\bord1}{\fs35}{\fn方正大黑简体}BING {\c&H00F0FF&}TEST BING.com{\c&HFFFFFF&} BING AWS\N\N\N\N AWS\N\N\N\N\N\N\N\N\N\N\N\N\N
。
然后我将开始时间按格式,即00:10:00
,持续时间2
分钟转成秒数,即120
,这2
个值填进去。
由于EFV
系统处理ASS
字幕的时候会自动给字幕时间叠加设置的开始时间,所以这里我填入ASS
字幕的时候,需要将字幕原开始时间、结束时间都要减去设置的开始时间00:10:00
,即原时间为Dialogue: 0,0:10:00.00,0:12:00.00
,减去00:10:00
,也就是最终时间Dialogue: 0,0:00:00.00,0:02:00.00
.
所以我的例子里面的ASS
时间轴需改成Dialogue: 0,0:00:00.00,0:02:00.00,*Default,NTP,0,0,0,,{\an2}{\shad0.5\}{\bord1}{\fs35}{\fn方正大黑简体}BING {\c&H00F0FF&}TEST BING.com{\c&HFFFFFF&} BING AWS\N\N\N\N AWS\N\N\N\N\N\N\N\N\N\N\N\N\N
。
然后将调整好时间的ASS
文件内容全部填进去即可。
水印设置
接下来继续点击水印设置,说明如下:
#是否开启添加/替换ASS水印
开启后,会给你后面转码的所有视频,新增ASS水印,或替换ASS水印。
#是否移除已添加的ASS水印
如需移除所添加的ASS水印,则开启,且开启后,添加替换ASS水印会自动关闭,只会进行移除处理。
#水印标识
必填,不然不会给你烧录ASS水印,用英文数字组合即可,如kjkj22jk,即视频替换ASS水印后,均会被记录标识信息,那么之后就不会处理该视频;如果你后面需要给视频重新替换新的ASS水印,那么修改不一样的标识就行。
#烧录的并发数
默认为3,也就是每次同时处理3个视频,切勿设置太高,如果机器性能好点,可以适当调高。
最后根据自己需求进行相关设置,ASS
水印总显示时间越短,处理越快,耐心等待自动处理完毕即可。
如何查看视频是否已烧录片中广告
前往视频管理,先去标题栏把是否已烧录ASS水印
调出来,方便标题栏查看。
然后点击其它筛选
,选择已烧录或未烧录ASS水印
即可。
API用法
提示:使用API之前,需前往转码设置下方,开启API,并设置好APIKEY。
添加ASS水印配置
POST /api/assconfig
请求头:
- Content-Type: application/json
- token: {apikey} // 或在请求体/URL参数中使用apikey
请求体:
{
"apikey": "5c20cEga22FgG7f", // 如果未在header中设置
"configs": [{
"title": "水印1", // 水印标题
"ass": "ASS字幕内容...", // ASS字幕内容
"startTime": "00:02:00", // 开始时间(时:分:秒)
"duration": 60 // 持续时间(秒)
}]
}
返回示例:
{
"success": true,
"results": [{
"success": true,
"id": "507f1f77bcf86cd799439011",
"title": "水印1",
"adjustedStartTime": "00:02:00",
"adjustedDuration": 60
}]
}
curl示例:
curl -X POST http://your-domain/api/assconfig \
-H "Content-Type: application/json" \
-d '{"apikey":"5c20cEga22FgG7f","configs":[{"title":"水印1","ass":"ASS内容","startTime":"00:02:00","duration":60}]}'
获取ASS水印配置列表
GET /api/assconfigs?apikey=5c20cEga22FgG7f
返回示例:
{
"success": true,
"configs": [{
"_id": "507f1f77bcf86cd799439011",
"title": "水印1",
"startTime": "00:02:00",
"duration": 60,
"assContent": "ASS字幕内容..."
}]
}
curl示例:
curl "http://your-domain/api/assconfigs?apikey=5c20cEga22FgG7f"
更新ASS水印配置
PUT /api/assconfig/{id} //id为ASS水印配置id
#直接替换整个ASS内容,请求体:
{
"apikey": "5c20cEga22FgG7f",
"assContent": "[Script Info]\nScriptType: v4.00+\nPlayResX: 960\nPlayResY: 540\n\n[V4+ Styles]\nFormat: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding\nStyle: Default,锐字云字库准圆体GBK,20,&H00DBDBDD,&H000000FF,&H00000000,&H00000000,0,0,0,0,96.1111,100,0,0,1,0,0.9,2,7,7,10,1\n\n[Events]\nFormat: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text\nDialogue: 0,0:00:00.00,0:00:20.00,*Default,NTP,0,0,0,,{\\an2}{\\shad0.5\\}{\\bord1}{\\fs35}{\\fn方正大黑简体}BING AWS {\\c&H00F0FF&}WWW.EXAMPLE.COM{\\c&HFFFFFF&} BING AWS"
}
#替换关键词,请求体:
{
"apikey": "5c20cEga22FgG7f",
"replaceKeywords": {
"BING": "AWS",
"BING.com": "WWW.EXAMPLE.COM",
"AWS": "BING"
}
}
#返回示例:
{
"success": true,
"id": "507f1f77bcf86cd799439011",
"title": "水印1"
}
#curl示例1(替换整个内容):
curl -X PUT http://your-domain/api/assconfig/507f1f77bcf86cd799439011 \
-H "Content-Type: application/json" \
-d '{
"apikey":"5c20cEga22FgG7f",
"assContent":"[Script Info]\nScriptType: v4.00+\nPlayResX: 960\nPlayResY: 540\n\n[V4+ Styles]\nFormat: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding\nStyle: Default,锐字云字库准圆体GBK,20,&H00DBDBDD,&H000000FF,&H00000000,&H00000000,0,0,0,0,96.1111,100,0,0,1,0,0.9,2,7,7,10,1\n\n[Events]\nFormat: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text\nDialogue: 0,0:00:00.00,0:00:20.00,*Default,NTP,0,0,0,,{\\an2}{\\shad0.5\\}{\\bord1}{\\fs35}{\\fn方正大黑简体}BING AWS {\\c&H00F0FF&}WWW.EXAMPLE.COM{\\c&HFFFFFF&} BING AWS"
}'
#curl示例2(替换关键词):
curl -X PUT http://your-domain/api/assconfig/507f1f77bcf86cd799439011 \
-H "Content-Type: application/json" \
-d '{
"apikey":"5c20cEga22FgG7f",
"replaceKeywords":{
"BING": "AWS",
"BING.com": "WWW.EXAMPLE.COM",
"AWS": "BING"
}
}'
删除ASS水印配置
POST /api/assconfig/delete
请求头:
- Content-Type: application/json
- token: {apikey} (可选)
请求体:
{
"apikey": "5c20cEga22FgG7f",
"ids": ["507f1f77bcf86cd799439011", "507f1f77bcf86cd799439012"] //id为ASS水印配置id
}
返回示例:
{
"success": true,
"results": [{
"id": "507f1f77bcf86cd799439011",
"success": true
}]
}
curl示例:
curl -X POST http://your-domain/api/assconfig/delete \
-H "Content-Type: application/json" \
-d '{"apikey":"5c20cEga22FgG7f","ids":["507f1f77bcf86cd799439011"]}'
获取ASS水印设置
GET /api/asssetting?apikey=5c20cEga22FgG7f
返回示例:
{
"success": true,
"setting": {
"mark": "watermark123", // 水印标识
"open": true, // 是否开启添加/替换
"delad": false, // 是否开启移除
"num": 3 // 并发处理数
}
}
curl示例:
curl "http://your-domain/api/asssetting?apikey=5c20cEga22FgG7f"
更新ASS水印设置
POST /api/asssetting
请求头:
- Content-Type: application/json
- token: {apikey} (可选)
请求体:
{
"apikey": "5c20cEga22FgG7f",
"mark": "watermark123", // 水印标识(必填,仅允许英文数字)
"open": true, // 是否开启添加/替换
"delad": false, // 是否开启移除
"num": 3 // 并发处理数(>0的整数)
}
返回示例:
{
"success": true,
"setting": {
"mark": "watermark123",
"open": true,
"delad": false,
"num": 3
}
}
curl示例:
curl -X POST http://your-domain/api/asssetting \
-H "Content-Type: application/json" \
-d '{"apikey":"5c20cEga22FgG7f","mark":"watermark123","open":true,"delad":false,"num":3}'
10 - 去除跑马灯和水印步骤
提示:去水印、跑马灯必须要转码下才生效;秒切是无效的,也就不会给你去除任何水印、跑马灯。
去除水印、跑马灯过程中,会最大程度的给你还原之前的视频画面,但不会给你100%
还原,目前还没有可以100%
完全还原的技术。
所以在去除的时候,建议在去除的同位置上,加上自己的水印、跑马灯,这样去除的时候,会同时烧录你的水印,可达到最佳效果。
操作步骤
提示:目前暂时不能处理那种随机位置的水印,随机水印推荐使用水平镜像翻转功能,可以模糊随机水印,间接达到去水印目的,可转码相关开启该功能。
设置去水印、跑马灯之前,需要先停止自动转码,否则需要去除水印的视频开始转码的话,再设置是无效的。
先点击EFV
后台左侧 ⇒ 转码相关 ⇒ 去水印/跑马灯设置 ⇒ 添加模板 ⇒ 编辑模板,具体操作可看下方视频。
模板的作用就是根据参照视频提前设置好相关除去规则,然后和该参照视频拥有同时间段,同位置水印、跑马灯的视频可直接使用,无需再次设置相关去除规则。
视频演示
提示:请点击播放器右下角全屏按钮进行观看。
绑定分类
提示:目前EFV最新版和演示视频区别就是,新版已新增分类绑定功能,操作更方便。
设置好去除规则模板后,可直接在模板页面给该模板绑定好视频分类,再将需要去除的视频调整到该分类,最后转码的时候该分类的视频自动使用该模板去除规则,无需手动给视频单独设置模板了。
操作注意事项
设置的时候,你只需要长按鼠标左键,框住你选择的水印或跑马灯范围即可,设置期间框框可自行调整大小,坐标参数会自动根据你的框获取。
每次只能添加一个规则,如果你有多个位置、时间段的水印或跑马灯,那么需要添加多次。
最后给视频选择去除模板的时候,该视频必须符合你选择的模板去除规则,不然转码有概率会出错。
11 - 视频防盗防播及图片加密
防盗链白名单设置
提示:推荐新手使用,也就是指定部分网站可以使用EFV的M3U8、图片等链接,其它网站均会返回403无权限。
注意该功能旧版本名称叫引用网址
,新版本已更改为防盗链白名单设置
,且逻辑已重写,如还是旧版本名称,请更新到最新版后再使用。
可点击EFV
后台左侧 ⇒ 转码相关 ⇒ 防盗链/图片加密设置,找到防盗链白名单设置
功能,直接设置域名即可,比如demo.efvcms.com
,且支持泛域名,比如*.efvcms.com
,即efvcms.com
的所有子域名都能使用;且多域名配置中间用|
分开,比如demo.efvcms.com|*.efvtest.com
,可设置无数个域名。
TS禁止下载合并
提示:该功能屏蔽了绝大部分的下载工具,即禁止被这些工具下载合成M3U8。
可点击EFV
后台左侧 ⇒ 防盗链/图片加密设置,开启该功能即可。
TS切片伪装PNG图片
提示:该功能在切片的时候会将生成的TS切片变成PNG图片,而且无法退回TS切片,适合同步到云存储使用。
可点击EFV
后台左侧 ⇒ 转码相关 ⇒ 转码设置,开启TS切片伪装PNG
功能即可。
TS切片伪装JPEG图片
提示:该功能不会修改TS切片信息,只播放的时候,会动态的将TS切片伪装成JPEG破损图片,关闭则退回TS切片。
可点击EFV
后台左侧 ⇒ 转码相关 ⇒ 转码设置,开启TS切片伪装JPEG
功能即可。
时间戳+播放次数防盗链
提示:目前结合防盗、兼容性、对接难度来说,此防盗链算是最适合的,但需要一定动手能力。
可点击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
和对应的M3U8
的IP
来源不一样,或新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
系统对M3U8
的KEY
文件链接和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
文件 ⇒ 传送门,并根据文档教程集成到自己的网站即可。
12 - srt和ass字幕烧录教程
提示:烧录字幕必须要转码下才生效,秒切是无效的,也就不会给你烧录任何字幕。
srt和ass字幕入库
即将服务器的字幕文件入库烧录,具体说明和操作可查看 ⇒ 传送门。
后台上传字幕
目前支持ass
和srt
字幕,字幕和视频同名会自动匹配,如西游记.mp4
、西游记.ass
,匹配后会在视频转码期间自动烧录字幕。
自动提取字幕
如果你的视频包含字幕流,比如mkv
等,可点击EFV
后台左侧 ⇒ 转码相关 ⇒ 开启自动提取字幕
功能。
开启该功能后,系统会优先判断是否存在字幕文件,即有没有入库或后台上传过字幕文件,如都没有,则会在转码的时候自动提取srt
或ass
字幕文件,并烧录进视频中;如有多个字幕,默认提取第一个字幕,且优先提取中文字幕。
筛选字幕烧录
提示:该功能可指定烧录带语言标识的字幕文件,即无需和视频同名,适用于入库字幕和BT管理下载带字幕的视频,暂不支持后台上传。
一般字幕文件需和视频同名才会被烧录,如果你的字幕文件有一到多个,且都带有语言标识,也就是和视频不完全同名,可前往转码设置
设置筛选字幕烧录
功能项,可以烧录指定语言的字幕文件。
设置格式zh-Hans
、zh-Hans|BluRay
或zh-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
该设置项为递进筛选,通常第一个关键词为语言,如果第一个关键词没有筛选到任何字幕文件,则不会继续筛选,会默认使用和视频同名的字幕文件。
如果第一个关键词只筛选出一个字幕文件,则不会继续筛选,会默认使用该字幕文件。
如果第一个关键词筛选出多个字幕文件,则会使用第二个关键词从选出的字幕文件继续筛选,直到只选出一个字幕文件后不会继续筛选,会默认使用该字幕文件;当关键词都用完了,还是有多个字幕文件符合,则会随机使用其中一个字幕文件。
13 - 如何控制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
秒。
然后还可以再通过降低码率,继续缩小切片体积,在转码设置找到码率设置
,根据自己转码的分辨率,适当调低对应的码率值即可,注意码率降低后,画质也会降低,适当调整就行了。
14 - 设置动态片头和片中广告
片头和片中广告可以随时添加、删除,且同时设置多个广告视频会随机读取一个播放。
设置步骤
该功能为动态处理M3U8
,即不会修改本地的M3U8
内容,仅仅只是从EFV
读取M3U8
文件的时候,才会给加上这些广告,且不管是开启还是关闭切片广告,或新增切片广告内容,对所有的视频都是立即生效。
添加并设置切片广告
前往程序后台 ⇒ 点击左侧转码相关 ⇒ 动态切片广告, 先点广告设置,设置广告转码后的分辨率、码率和帧率。
接下来我们开始添加视频广告,添加方法有2
种,如下:
1、点击【添加视频广告】,将你提前准备好的视频广告上传上去。
2、点击【生成视频广告】,设置视频广告文字、持续时间、背景图点击生成。注意该处背景音乐是固定的,可自行替换,路径public/stream/bgm.mp3。
添加好视频广告后,需要在浏览器刷新一下切片广告界面,就会显示该广告名称。
然后点击转码全部切片广告
,转码完成后,开始设置片头或片中。
最后设置好切片广告后,还需要开启切片广告
,不然所有视频不会生效。
切片广告线路域名
提示:如你未在广告设置看到线路域名设置项,需更新到最新版即可。
我们设置切片广告的线路域名
后,用户会从该线路域名读取TS
切片广告,且不要随便设置线路域名
,即必须能通过该线路域名
正常请求到切片广告,不然会播放不了。
如果你使用云存储域名作线路域名,需要手动把切片广告传到云存储,如切片广告存放路径为public/stream
,将stream
文件夹上传到云存储根目录即可。
如果你是自建cdn
或使用商用cdn
则无需进行其它设置,cdn
会自动缓存广告切片。
开启切片广告和设置片中显示次数
接下来继续点击广告设置,开启切片广告,并且根据自己的需求设置片中广告显示次数,如无片中广告可不用管。
最后片头和片中广告默认对全部的视频生效,如果你想部分视频不生效,则看该页面最下方。
设置片头和片中广告对部分视频不生效
由于片头和片中广告设置后,默认对全部的视频生效,如果你想部分视频不生效,则进行以下步骤。
开启/关闭跳过切片广告
前往程序后台 ⇒ 进入视频管理,批量选择不想生效的视频,点击下方批量跳过切片广告
,进行关闭或开启即可。
开启和关闭是立即生效的,可以根据自己需求进行调整。
如何查看视频是否开启/关闭跳过切片广告
前往视频管理,先去标题栏把是否跳过切片广告
调出来,方便标题栏查看。
然后点击其它筛选
,选择已跳过
或未跳过
即可。
最后可以批量进行相关操作了。
15 - 新增和随时替换片中广告
该功能会自动提取所有转码完成的视频,并将你的广告视频随机烧录进视频的片中部分,且烧录后可以随时再次替换新的广告视频,也可以移除你添加的片中广告,而且处理后的视频M3U8
链接不会发生任何改变。
设置步骤
添加广告视频
前往程序后台 ⇒ 点击左侧转码相关 ⇒ 新增/替换片中广告,先点添加广告视频,如下:
可添加多个广告视频,默认争对所有视频生效,且烧录的时候会随机提取1
个广告视频。
如果你只想广告视频给指定分类使用,则可以给广告视频绑定好分类,那么这些广告视频仅对这些分类的视频生效,对其它分类无效。
按照规则,如果某些分类没有一个广告视频,那么该分类的视频不会进行任何新增、替换片中广告的处理。
广告设置
接下来继续点击广告设置,说明如下:
#是否开启添加/替换片中广告
开启后,会给你转码完成的视频,新增片中广告,或替换片中广告。
#是否移除已添加的片中广告
开启后,已添加过片中广告的视频,均会移除片中广告,即恢复到原视频。
#广告标识
必填,用英文数字组合即可,如kjkj22jk,即视频新增或替换广告后,均会被记录标识信息,那么之后就不会处理该视频;如果你后面需要给视频重新替换新的广告视频,那么修改不一样的标识就行。
#烧录的时间区间
必填,格式为:百分比数值:百分比数值,如30:80,也就是在每个视频的30%到80%时间段,随机在某个位置烧录片中广告。
#烧录的并发数
默认为3,也就是每次同时处理3个视频,切勿设置太高,如果机器性能好点,可以适当调高。
最后根据自己需求进行相关设置,且该功能涉及到部分转码,所以添加替换和移除处理的会稍微有点慢,耐心等待自动处理完毕即可。
如何查看视频是否已烧录片中广告
前往视频管理,先去标题栏把是否已烧录片中广告
调出来,方便标题栏查看。
然后点击其它筛选
,选择已烧录或未烧录片中的视频
即可。
16 - 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
详情信息格式如下:
json
分类入库
如FTP
用户在根目录新建一个名为教育片
的子文件夹,那么将视频上传到教育片
文件夹或其子文件夹,那么上传成功后,这些视频会自动分类教育片
,且如果该分类不存在会自动创建。
封面和字幕入库
注意:字幕、封面入库需在视频之前上传完成才会生生效。
这里上传的时候,只需要封面、字幕名称和视频名称一样即可,这样转码的时候,会给视频自动匹配同名的封面或字幕,然后自动处理。
#只需要同名,后缀限制可参考上面说明。
视频名称.mp4
视频名称.ass
视频名称.jpg
自动添加剧集
提示:剧集文件夹需要为一级目录才能识别,且暂时不支持文件夹分类,可通过json传递分类信息。
目前可以在FTP
根目录按要求新建剧集文件夹,并将单集视频传进去,然后会自动创建剧集,且里面的视频切完也会自动添加进剧集,并自动排序。
首先FTP
用户在根目录新建一个文件夹,命名格式:autotv剧集名称
,如autotv西游记
,然后将命名规范的单集传进去,如01
、02
、03
或第01集
、第02集
;如果总集数有3
位数,那么就用001
、002
、003
,然后入库单集的时候会自动创建剧集,并会被标记,转码完成后,也会自动添加进剧集,并自动排序。
注意创建剧集的时候,会在剧集文件夹创建一个24
位id
文件,切勿删除,不然会重新创建新的同名剧集,后面入库的单集会添加到新的剧集。
剧集封面入库说明
比如我的剧集文件夹为autotv剧集名称
,那么将封面文件名改成剧集名称.jpg
,格式也可以为jpeg
、png
、webp
,并存放到剧集文件夹就可以了,入库的时候,创建剧集信息会自动使用该封面。
视频和剧集详情信息入库
注意:详情信息的JSON文件入库需在视频之前上传完成才会生生效。
入库的时候可以将视频和剧集的标签、简介等详情信息一起入库,且可以和封面入库,字幕入库一起使用,说明如下。
视频详情信息入库
入库视频的时候,需要在该视频所在文件夹存放一个同名json
文件,如下:
#只需要同名,视频后缀限制可参考上面说明。
视频名称.mp4
视频名称.json
#json文本内容格式如下,一行一个,字段和参数使用$隔开,不填则默认为空值
language$英语
director$文斯·吉利根,米歇尔·麦克拉伦
stars$布莱恩·科兰斯顿,亚伦·保尔
tags$犯罪,剧情,惊悚
summary$一位高中化学老师的故事...
country$美国
year$2008
rate$9.2
#json参数详解
language, //语言
director, //导演,多个导演用英文逗号,分开,如 导演1,导演2,导演3
stars, //主演,多个主演用英文逗号,分开,如 主演1,主演2,主演3
writer, //编剧,多个编剧用英文逗号,分开,如 编剧1,编剧2,编剧3
tags, //分类标签,多个标签用英文逗号,分开,如 剧情,悬疑,搞笑
summary, //剧集简介
country, //发行地区
year, //发行年份,如 1996
rate, //豆瓣评分,如 8.8
剧集详情信息入库
入库视频的时候,需要在剧集存放一个以剧集名称命名的json
文件,比如我的剧集文件夹为autotv剧集名称
,那么改成剧集名称.json
,如下:
#json文本内容格式如下,一行一个,字段和参数使用$隔开,不填则默认为空值
category$分类名称
language$英语
director$文斯·吉利根,米歇尔·麦克拉伦
stars$布莱恩·科兰斯顿,亚伦·保尔
tags$犯罪,剧情,惊悚
summary$一位高中化学老师的故事...
country$美国
episodescount$62
year$2008
rate$9.2
#json参数详解
category, //分类
language, //语言
director, //导演,多个导演用英文逗号,分开,如 导演1,导演2,导演3
stars, //主演,多个主演用英文逗号,分开,如 主演1,主演2,主演3
writer, //编剧,多个编剧用英文逗号,分开,如 编剧1,编剧2,编剧3
tags, //分类标签,多个标签用英文逗号,分开,如 剧情,悬疑,搞笑
summary, //剧集简介
country, //发行地区
episodescount, //集数
year, //发行年份,如 1996
rate, //豆瓣评分,如 8.8
相关命令
使用SSH
客户端登录服务器,使用命令:
#重启ftp进程,如果ftp抽风突然断开,且长时间无法恢复,可以尝试该命令恢复
pm2 reload ftpserver
#查看ftp进程日志,可以查看ftp运行情况,和用户上传日志
pm2 log ftpserver
如果运行以上命令提示-bash: pm2: command not found
,则需要先运行一下source /etc/profile
,然重新运行即可。
注意事项
如果你新增用户后,使用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
⇒ 传送门,可以随时删除和创建服务器。
先在需要搭建代理的服务器安装Docker
,Linux
快速安装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
客户端,如果网络还是不行,可以尝试把服务器删了,再创建其它地区的服务器,重新安装。
17 - 烧录封面广告和片头广告
提示:使用以下功能需关闭秒切,也就是要转码才生效。
烧录封面广告
目前将封面广告图片烧录进视频开头后,如果保留切片后的MP4
,这些MP4
视频在社交、网盘、电脑桌面、视频播放器等应用软件显示的封面均为该广告图片。
可直接前往程序后台 ⇒ 点击左侧转码相关 ⇒ 片头视频设置, 按照功能页面的说明添加好封面图片、持续时间,最后开启广告即可。
烧录片头广告
目前将片头广告烧录进视频的开头后无法进行替换;如果你想随时替换片头广告,则推荐使用切片广告功能,还支持片中广告 ⇒ 使用教程。
可直接前往程序后台 ⇒ 点击左侧转码相关 ⇒ 封面广告设置, 按照功能页面的说明添加好片头广告视频,最后开启广告即可。
相关说明
封面广告和片头广告默认争对所有视频生效,如果你只想给指定分类使用,则可以设置后,分别给这些广告绑定好分类即可。
如果封面广告和片头广告同时开启,则会先烧录片头广告,再烧录封面广告,最终效果就是封面广告会在最前面,片头广告在后面。
18 - 云存储同步详细设置
提示:新版已支持同时添加多个云存储配置,可同时同步不同或相同的文件,到不同的云存储或桶里面。
一般我们转码后,有的对播放速度不满意,除了使用CDN
加速外,还可以将切片上传到其它服务器、阿里云OSS
、七牛云或者其他云存储进行加速。
目前已支持以下存储:
亚马逊S3,也适用于接口支持AWS S3的存储服务
Minio存储,适用于同步到其它服务器
Cloudflare R2
华为云
七牛云
阿里云OSS
腾讯云OSS
又拍云
Wasabi
Bunny
Google Cloud Storage
Azure Blob Storage
Backblaze B2
同步原理
同步期间会自动扫描所有已转码完成的视频切片文件夹和已发布的剧集封面文件夹,并根据你的同步设置,对文件夹里的截图、切片等文件进行上传和删除处理。
当某个视频的所有指定文件均上传成功,则会记录该视频,下次自动扫描的时候,会跳过该视频,也就不会再次上传,如果你更换了云存储,想重新上传该视频,可清空该视频的同步记录,从而会重新扫描并上传该视频,清空教程可看下面。
当某个视频有一个文件因网络问题上传失败,则该文件会有3
次重试次数,如果3
次依旧失败,那么该文件在本轮扫描不会再次上传,并且该文件所属的视频也不会被记录,也就是在下轮自动扫描中,会重新再次被扫描上传,可尽量防止因网络问题造成同步缺切片导致出现播放问题。
如果你添加了多个云存储,请确保所有云存储均能使用,不然有一个不能用的话,就会出现上传失败,即判断该视频为上传失败,那么可能会一直循环同步;且每个视频同步完成后,如有云存储开启了删除,则会合并开启过删除的云存储删除和过滤后缀配置,再一起处理。
操作步骤
先前往EFV
后台左侧 ⇒ 转码相关 ⇒ 云储存设置,添加对应的云存储,然后开启同步。
同步参数
云存储需要的同步参数在每个类型添加页面都有说明,这里说一下比较难找的几个。
S3
的endpoints
参考 ⇒ 点击查看。
Wasabi
的endpoints
参考 ⇒ 点击查看,基本上组成就是s3.region.wasabisys.com
。
CF R2
的endpoints
参考 ⇒ 点击查看,基本上组成就是https://ACCOUNT_ID.r2.cloudflarestorage.com
。
Backblaze B2
的region
查看方法,如果桶的endpoint
为s3.us-west-002.backblazeb2.com
那region
可以填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)
最后修改完毕后,重新点击开启同步就行了。
同步完成获取转码信息
先去EFV
后台转码设置
开启域名通知
和同步完成通知
,再设置一个对接域名
,如果你想设置多个通知域名,中间请使用英文|
分开。
当每一个视频同步完成后,EFV
会将视频的详细信息JSON
类型POST
到这个域名,您在您的后台只需要针对这个接收API
处理JSON
数据入库您自己的第三方程序数据库即可。
相关信息:
对象名:movie
#获取到的相关参数信息
status: String,
size: String,
category: String,
originalname: String,
originaltitle: String,
aka: String,
language: String,
banben: String,
vtt: String,
thumbnails: String,
poster: String,
poster2: { url: String, width: Number, height: Number },
count: { type: Number, default: 0 },
retry: { type: Boolean, default: false},
path: String,
duration: String,
director: [String],
writer: [String],
rate: Number,
year: Number,
stars: [String],
summary: String,
country: [String],
tags: [String],
m3u8paths: [{ hd: Number, path: String }],
previewvideo: String,
price: Number,
totv: Schema.Types.ObjectId,
md5: String,
createAt: {
type: Date
}
如果你使用了详细编辑,里面的数据都有,接收API
就选择里边的数据处理就行了。
单个视频接收的JSON数据
{
poster2: {
url: '/videos/202202/07/61ffbfbb9b36dd00c878b4a1/poster.jpg',
height: 773,
width: 540
},
count: 23,
retry: false,
autoPublish: false,
director: [ '古桥一浩' ],
writer: [ '古桥一浩' ],
stars: [
'三宅健太', '宫野真守', '樱井孝宏',
'伊藤静', '梶裕贵', '绵贯龙之介',
'濑户麻沙美', '早见沙织', '滨野大辉',
'柳田淳一', '铃木玲子', '石冢运升',
'中井和哉', '天崎滉平', '菅原慎介',
'町山芹菜'
],
country: [ '日本' ],
tags: [ '剧情', '喜剧', '战争', '动画' ],
screenshots: [
'/videos/202202/07/61ffbfbb9b36dd00c878b4a1/0.jpg',
'/videos/202202/07/61ffbfbb9b36dd00c878b4a1/2.jpg',
'/videos/202202/07/61ffbfbb9b36dd00c878b4a1/1.jpg',
'/videos/202202/07/61ffbfbb9b36dd00c878b4a1/3.jpg'
],
_id: '61ffbfbb9b36dd00c878b4a1',
originalname: '窈窕淑女前篇:红绪,花样的17岁',
status: 'finished',
path: './movies/Haikara-san ga Toru the movie.mkv',
category: '日本动漫',
size: '5497612960',
createAt: '2022-02-16T09:25:49.733Z',
m3u8paths: [
{
_id: '6200c8949dc15a00c15be7db',
hd: 640,
path: './public/videos/202202/07/61ffbfbb9b36dd00c878b4a1/8f89fb/index.m3u8'
},
{
_id: '6200cc499dc15a00c15be809',
hd: 1280,
path: './public/videos/202202/07/61ffbfbb9b36dd00c878b4a1/08cad8/index.m3u8'
}
],
thirdm3u8: [],
__v: 1,
height: 1080,
width: 1920,
duration: '97分钟',
moviepath: '/videos/202202/07/61ffbfbb9b36dd00c878b4a1',
gif: '/videos/202202/07/61ffbfbb9b36dd00c878b4a1/1.gif',
previewvideo: '/videos/202202/07/61ffbfbb9b36dd00c878b4a1/preview.mp4',
poster: '/videos/202202/07/61ffbfbb9b36dd00c878b4a1/cover.jpg',
firstScreen: '/videos/202202/07/61ffbfbb9b36dd00c878b4a1/first.jpg',
aka: '',
banben: 'HD',
language: '日语',
originaltitle: '劇場版 はいからさんが通る 前編 ~紅緒、花の17歳~',
rate: 7.5,
summary: '根据70年代大受欢迎的少女漫画《窈窕淑女》改编的剧场版动画,《窈窕淑女》的题目字面意思出自诗经:“窈窕淑女,君子好逑"。大和和纪的《窈窕淑女》是1977年的少女漫画优秀杰作,曾经红极一时。讲述了一个关...',
year: 2017
}
注意m3u8paths
里边的hd
参数,320
为240P
、480
为360P
、640
为480P
、1138
为640P
、1280
为720P
、1920
为1080P
、2560
为2K
、20000
为原画。
剧集接收的JSON数据
提示:这里仅仅只是剧集里面封面同步完成后的通知,不包括单集同步。
{
poster2: {
url: '/poster/623eaaf9b1d50c9badb2f47b-poster2.jpg',
height: 763,
width: 540
},
count: 263,
director: [ '中山敦史', '山本裕介', '名和宗则', '森义博', '重原克也' ],
writer: [ '木村畅', '横手美智子' ],
stars: [
'兴津和幸', '小野大辅', '伊藤静',
'大原沙耶香', '麦人', '田中敦子',
'土师孝也', '中村悠一', '高桥李依',
'稻田彻', '绵贯龙之介', '野濑育二',
'松冈祯丞', '千本木彩花', '加隈亚衣',
'田村由香里', '柳田淳一', '相马康一',
'手冢弘道', '井上喜久子', '菅生隆之',
'大桥彩香', '朝井彩加', '阪口大助',
'樱井浩美', '天崎滉平', '菅原慎介',
'木下浩之', '千叶进步', '松本忍',
'松风雅也', '岩泽俊树', '内匠靖明',
'木内太郎', '伊丸冈笃', '池田胜',
'潘惠子', '深川和征'
],
country: [ '日本' ],
tags: [ '动画', '奇幻' ],
published: 'waiting',
_id: '623eaaf9b1d50c9badb2f47b',
title: '骑士&魔法',
originaltitle: 'ナイツ&マジック',
aka: "Knight's Magic",
year: 2017,
duration: '24分钟',
episodescount: '13',
language: '日语',
rate: 6.6,
summary: '能干的程序员,同时是重度机器人宅的青年,转生到了巨大机器人“幻晶骑士(Silhouette Knight)”震动大地的骑士与魔法的异世界!?以艾尔涅斯帝·埃切贝里亚的身份转生的他,活用丰富的机械知识...',
status: 'wanjie',
zhouqi: '',
episodes: [
{
_id: '62777218e7a65ed82225e5bc',
episode: '01',
movieid: '62010cfa471273018072295a'
},
{
_id: '62777218e7a65ed82225e5bd',
episode: '02',
movieid: '62010cfa471273018072295b'
},
{
_id: '62777218e7a65ed82225e5be',
episode: '03',
movieid: '62010cfa471273018072295c'
},
{
_id: '62777218e7a65ed82225e5bf',
episode: '04',
movieid: '62010cfa471273018072295d'
},
{
_id: '62777218e7a65ed82225e5c0',
episode: '05',
movieid: '62010cfa471273018072295f'
},
{
_id: '62777218e7a65ed82225e5c1',
episode: '06',
movieid: '62010cfa4712730180722960'
},
{
_id: '62777218e7a65ed82225e5c2',
episode: '07',
movieid: '62010cfa4712730180722961'
},
{
_id: '62777218e7a65ed82225e5c3',
episode: '08',
movieid: '62010cfa4712730180722963'
},
{
_id: '62777218e7a65ed82225e5c4',
episode: '09',
movieid: '62010cfa4712730180722964'
},
{
_id: '62777218e7a65ed82225e5c5',
episode: '10',
movieid: '62010cfa4712730180722959'
},
{
_id: '62777218e7a65ed82225e5c6',
episode: '11',
movieid: '62010cfa4712730180722965'
},
{
_id: '62777218e7a65ed82225e5c7',
episode: '12',
movieid: '62010cfa471273018072295e'
},
{
_id: '62777218e7a65ed82225e5c8',
episode: '13',
movieid: '62010cfa4712730180722962'
}
],
createAt: '2022-05-08T07:32:40.856Z',
__v: 0,
poster: '/poster/623eaaf9b1d50c9badb2f47b-poster.jpg',
category: '日本动漫',
updateAt: '2023-01-16T16:01:40.804Z'
}
movieid
为集数的视频id
,可以通过拼接获取该集数的自适应m3u8
地址,拼接如下:
#拼接格式:/movie/auto/ + 视频id + .m3u8
/movie/auto/62010cfa4712730180722962.m3u8
最后就可以获取每个集数的自适应m3u8
链接了。
19 - 分发即线路管理设置
线路管理原理详解
一般我们播放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
或云存储等读取切片,从而解决问题。
线路管理设置步骤
设置均为动态处理,即不管是开启还是关闭线路,或新增线路域名,对所有的视频都是立即生效。
准备线路域名
线路域名只需要满足一个条件,就是用户通过该域名可以访问到视频切片,这里有3
种方法,分别如下:
第一种,将切片等文件同步到其它服务器,或云存储如亚马逊S3
、CF R2
等,同步教程 ⇒ 点击查看;然后再给云存储,或接收同步文件的服务器绑定一个域名,即线路域名;注意接收文件的服务器绑定域名的时候,根目录需要设置到桶目录,即根目录包含同步过来的videos
文件夹。
第二种,使用我们自研的CDN
系统,即自己准备一个网络比较好的vps
,自建cdn
,该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:30
、01:30
、05: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线路
,且使用1
到n
个网络比较好的线路链接,定时任务设置21:30
;另1
个线路命名为本地线路
,使用EFV
绑定域名作为线路链接,定时任务设置01:00
.
最后这种设置效果,就是晚上9.30
会自动使用cdn
线路,再到凌晨1点
会切到本地线路,然后每天一直循环切换。
定向线路管理
提示:如你在线路分发管理页面,看不到定向管理功能,需更新到最新版即可。
目前线路管理默认只会生效一个线路配置,定向线路可以指定不同的分类、EFV
域名分别使用不同的线路配置,如下:
1、根据M3U8域名,自定义匹配线路配置
我们给EFV绑定多个域名,并分别提供给不同网站播放M3U8等资源,可以只给部分网站配置线路。
2、根据分类,自定义匹配线路配置
给不同的分类视频,分别使用不同的线路配置。
3、同时根据M3U8域名+分类,自定义匹配线路配置
最精确的匹配方式,可以为特定分类在特定域名下配置专用线路。
相关设置规则可直接查看设置页面即可;如果不在匹配规则里的分类 或 M3U8
域名,均使用默认的线路配置,也就是按原逻辑处理。
线路管理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
20 - 快速剪切片头和片尾
剪切片头和片尾
剪切之前,需要先停止自动转码,否则需要剪切的视频开始转码的话,再剪切是无效的。
前往程序后台 ⇒ 点击左侧转码相关 ⇒ 视频管理, 然后选中需要剪切的视频,再点击下方批量剪切片头/尾,进行相关设置即可。
片头具体到时间日期,比如去除10s
片头,则填00:00:10
;片尾具体到秒,比如去除10s
片尾,则填10
。
建议一次性选择数量最好保持在30
个以内,性能好的可以选择多点,否则一次性剪切太多,会因为服务器性能问题容易卡死。
由于部分视频编码的问题,比如RMVB
等,是不能直接快速剪切的,这时候可以使用全局跳过片头,从而达到剪切目的。
全局跳过片头转码
注意:全局跳过片头必须要转码下才生效;秒切是无效的,也就不会给你去任何片头。
该功能适合多个同时间片头、且无法快速剪切的视频,可前往程序后台 ⇒ 点击左侧转码相关 ⇒ 转码设置,找到该选项即可。
21 - 自动裁剪指定片段视频
自动裁剪步骤
后台上传视频之前,需要将视频命名成文件名@开始时间-结束时间@
,视频后缀类型不限制,然后上传后会自动根据视频命名规则进行截取。
比如我上传的视频名为爱情公寓@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' } }
}
22 - 下载BT种子/磁力和M3U8等
BT种子/磁力下载
前往程序后台 ⇒ 点击左侧转码相关 ⇒ BT
管理中心,点击上方下载设置,进行相关设置,如图:
先设置好后缀过滤,大小过滤;然后可通过批量添加BT
磁力、BT
种子链接、或上传BT
种子文件进行下载,推荐优先选择通过BT
种子进行下载,体验更好一点。
如果你下载里面有压缩包,并且都是有效视频,可通过BT
列表文件名称右侧的链接快速前往文件夹管理,将该压缩包解压,并直接将里面的视频添加到转码队列。
修改下载的并发数
默认最多同时下载8
个bt
任务,修改并发可编辑源码目录下的aria/aria2.conf
,将max-concurrent-downloads=8
后面的8
修改其它数字,然后使用pm2 reload aria2c && pm2 reload aria2server
命令重启生效。
M3U8和YouTube等下载
目前提供了M3U8
、MP4
等视频直链、及YouTube
等部分网站下载功能,可根据自身需求选择。
可前往程序后台 ⇒ 点击左侧转码相关 ⇒ 下载中心,点击上方下载设置,进行相关设置,部分设置如下:
#最大下载任务数
也就是同时下载的最大任务数,目前每10秒启动一个任务,直到达到最大任务数,且当前限制最多同时下载50个任务。
#下载失败重试次数
任务下载失败的重试次数,默认为1,如超出重试次数依旧失败,则可以调大重试次数或通过点击重新下载从而再次重新下载。
#并发数(仅M3U8类型生效)
即每个任务同时下载切片数,默认为3,推荐不要设置太高,以免过于暴力被下载源站屏蔽。
#剪切片头时长
如果你下载的视频有片头广告,则可以设置剪切多少秒,留空则不剪切,默认对所有下载的视频生效。
#磁盘空间警戒阈值
当磁盘使用空间超过设定百分比时自动暂停下载,直到使用率低于该百分比会重新开始下载,防止硬盘过满影响一些环境运行。
#过滤指定分辨率视频
选择需要过滤的分辨率,下载完成后检测到指定分辨率的视频将被自动删除,可过滤掉低分辨率视频。
#设置代理地址(仅M3U8和video类型生效)
可设置一个或多个代理,设置多个代理每次下载会随机使用一个,留空则关闭代理,多个代理使用$隔开,如:http://127.0.0.1:8888$http://127.0.0.1:9999
#设置Referer
如果你下载的资源需要Referer,那么直接设置指定网站即可,如:https://example.com/playpage
#设置User-Agent
如果你下载的资源需要User-Agent,那么直接设置User-Agent值即可。
#设置Cookies(仅通用和video类型生效)
如果某些站点需要登录才能下载,或者频繁下载被限制,请登录目标网站后,通过浏览器插件,如EditThisCookie导出Cookies,需为Netscape格式。
设置好了相关设置项后,我们可以使用手动添加单个下载
、批量添加下载
、api传入下载
、通过苹果cms采集接口导入下载
或Alist/OpenList、S3数据入库下载
等方式。
批量添加下载
批量添加的格式为分类名$视频名$下载类型$视频链接$封面链接$解析参数$解析接口
,一行一个,如:
#参数说明
分类名:可选,不存在会自动创建
视频名:必填
下载类型:必填,支持 m3u8、downloadall、video
视频链接:必填
封面链接:可选,支持 png、jpg、jpeg、webp 格式
解析参数:可选,解析接口返回的下载链接对应的的参数名,如:url
解析接口:可选,解析接口地址,需配合解析参数一起使用,解析接口说明参考最下面。
#支持的格式组合,添加前请详细检查格式,格式不正确的行会被自动过滤,即不会添加到下载中心。
视频名$下载类型$视频链接
视频名$下载类型$视频链接$封面链接
分类名$视频名$下载类型$视频链接
分类名$视频名$下载类型$视频链接$封面链接
分类名$视频名$下载类型$视频链接$解析参数$解析接口
分类名$视频名$下载类型$视频链接$封面链接$解析参数$解析接口
#完整示例
神话片$西游记$m3u8$http://efv.com/1.m3u8$http://efv.com/1.jpg$url$http://127.0.0.1:3000/api?url=
m3u8
仅支持M3U8
,video
支持mp4
、mkv
等视频直链,downloadall
支持m3u8
、mp4
、mkv
等视频直链和youtube
等视频地址下载。
且由于m3u8
类型支持下载TS
伪装的M3U8
,如图片伪装,所以建议下载M3U8
首选m3u8
类型,m3u8
类型出错就使用downloadall
类型下载M3U8
。
自动入库苹果CMS采集接口数据
说明及使用详情 ⇒ 传送门。
自动入库Alist/OpenList、S3数据
说明及使用详情 ⇒ 传送门。
自建代理
首先我们要准备一个服务器,VPS
就可以了,推荐Vultr
⇒ 传送门,可以随时删除和创建服务器,也就是间接的可以随便换ip
,比较适合做代理服务器。
先在需要搭建代理的服务器安装Docker
,Linux
快速安装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
设置后,每次下载会随机使用其中一个代理地址。
下载API使用
POST /api/downloadm3u8
body: {
#必填参数
apikey, //转码设置获取
name, //视频名称,下载完成后自动入库到视频管理的视频名称
url, //下载链接,注意如果地址包含&等特殊符号,如果影响到使用,记得转义下
type, //下载类型,如m3u8、downloadall、video,且m3u8仅支持下载m3u8链接,video支持mp4、mkv等视频直链,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
进行下载。
23 - RSS和XML订阅自动下载
订阅说明
提示:由于有些没速度的磁力不会在bt任务列表显示相关信息,而bt种子不管有无速度都会显示信息,所以推荐优先使用bt种子的订阅。
一般订阅下载主要用于一些未完结的动漫或剧集,然后通过订阅获取最快速度的资源更新;已完结的推荐直接在BT
管理上传种子进行下载。
且订阅下载默认最多同时下载8
个任务,不管你同时开启多少订阅,那么最多只能8
个依次显示下载,其余会在后台慢慢等待。
修改并发可编辑源码目录下的aria/aria2.conf
,将max-concurrent-downloads=8
后面的8
修改其它数字,然后使用pm2 reload aria2c && pm2 reload aria2server
命令重启生效。
RSS订阅设置步骤
这里会拿动漫网站https://bangumi.moe
的rss
为参考,先前往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一周年公告&礼包</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,并提前设置好剧集信息,监控到新剧集自动下载并添加到剧集,智能处理分集名)
自动分类:日本动漫
比如我打开一个苹果CMS
的XML
地址,该订阅大概信息如下:
资源数据标识、资源标题标识、资源标识可以查看上方截图,模仿设置,如果是苹果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
不要修改,只修改前面的集数命名。
改完点击提交就可以了。
最后已完结的剧集不推荐使用关联剧集功能,直接全部下载了,使用一键添加功能,一次性添加到剧集可能会更方便,当然看你习惯而定。
24 - 自动下载苹果CMS采集数据
我们可以将一些资源站或者苹果CMS
的m3u8
链接、封面、标签、分类、简介、演员等所有信息入库到下载中心,然后下载完成后,这些信息会自动填充到视频管理。
对于剧集,采集期间会自动给你创建剧集信息,并且当剧集里的所有单集下载完成并自动转码后,也会自动给你添加进指定剧集,并自动按集数顺序排序。
提示:如果有剧集里面的单集,命名不是很规范的,可能会自动添加进剧集失败,如出现,请手动添加。
如果下载的视频有水印,推荐配合去水印/跑马灯功能一起使用,然后去水印模板再绑定分类,会在下载完成后,自动匹配去水印转码。
采集步骤
可前往程序后台 ⇒ 点击左侧转码相关 ⇒ 下载中心,点击自动入库苹果CMS数据
,再进行相关填入。
获取苹果CMS的接口链接
提示:目前仅支持苹果CMS v10的json类型采集接口
如果是自用的苹果CMS
,可直接前往苹果CMS
后台,开放采集API
,并拿到json
接口即可。
如果是资源站,可直接前往资源站的采集信息页面,拿到苹果CMS V10
的json
接口就可以了,且多个接口使用$
隔开,如:
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
进行下载。
启动采集接口
Get /api/startautodownload?timekey=5c20cEga22FgG7f
timekey
为转码设置最下方的定时KEY
值。
25 - BT手动和自动做种教程
目前做种有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
功能进行订阅下载。
再前往EFV
的BT
管理中心,将已经下载完成的做种信息删除即可,包括做种视频,可以节省硬盘空间。
最后其它人下载该视频种子磁力的时候,只消耗qBittorrent
所在的服务器带宽,而不会消耗EFV
高级版的带宽了。
如果我们忘记了某个视频的磁力,可以直接在qBittorrent
客户端,鼠标右键该视频,复制磁力就可以了。
注意,当磁力变成热门的时候,也就是qBittorrent
界面显示的在线用户数很多的时候,可以根据情况撤种,也就是删除该资源,节省带宽和资源。
撤种后,就由其它人来帮你提供下载了。