快速替换ASS水印教程

会将一到多个时间段的ASS水印烧录进视频,且烧录后可以在相同时间段替换新的ASS水印,也可以移除已添加的ASS水印。

该功能会将一到多个时间段的ASS水印烧录进视频,且烧录后可以在相同时间段替换新的ASS水印,也可以移除已添加的ASS水印,且处理后的视频M3U8链接不会改变。

替换也就是只会处理有水印的地方,比如你源片时长2小时,ASS水印出现时长共2分钟,那么更换水印的时候,只会处理2分钟的视频,而不是直接去处理2小时视频,极大的提高处理效率。

相关说明

开启该功能后,仅对开启后转码的视频生效,已转码的视频可在视频管理使用重新转码生效;并且会强制转码源片一次,此后替换水印只会转码有水印的部分,即水印时间越短,处理越快。

可以添加多个时间段的ASS水印规则,开始转码后,视频会自动绑定当前的所有规则,后面替换也只会替换/移除这些规则的水印,即新增规则也只对后面转码的视频生效,且规则被绑定后无法被删除。

视频处理期间会一次性处理下方所有的ASS水印规则,且处理后会给该视频标记,在标记不变的情况下,不会被重新处理,如需给视频替换新ASS水印,需先修改ASS水印内容,再修改标记即可。

设置步骤

添加水印规则

提示:ASS内容的时间需根据设置的开始时间,进行适当调整,不然可能会不显示。

前往程序后台 ⇒ 点击左侧转码相关 ⇒ 快速替换ASS水印,先点添加ASS水印规则,如下:

可添加多个不同时间段的ASS水印,这里举一个例子,比如我要在视频的第10分钟开始添加2分钟的水印,也就是00:10:00-00:12:00区间。

那么我先制作一个带文字水印或跑马灯的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水印规则。

如果你多台EFV系统,可以通过导出配置,将当前所有ASS规则导出,再导入到另一台EFV系统。

水印设置

接下来继续点击水印设置,说明如下:

#是否开启添加/替换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}'