content_armor:ABIngestCL
content_armor:ABIngestCL¶
ContentArmor's ABIngest
tool with CastLabs modifications.
The A/B Ingest tool consists of a profiler and an embedder.
The tool may work in two modes:
1) A/B mode
2) operator mode
- in A/B mode
The input to the tool is a video playlist (HLS/DASH, segmented of fragmented), the output:
* pre-watermarked video A
* pre-watermarked video B
* output playlist which may be directly served via CDN
- on operator mode
input and output are single video files. Output file contains embedded ID
Both modes can operate in visible mode as well to facilitate integration testing.
for both modes
* watermark forensic metadata (WFM) corresponding to the input video
This file is used for online detection of watermarks.
* (optionally) WEMF (if keep_wemf option was specified)
You can read more about ContentArmor here: https://contentarmor.net
Example 1 A/B mode:
```
{
"tool": "content_armor:ABIngestCL",
"parameters": {
"input_file": "tos.m3u8",
"output": "ABinv",
"payload_size": 16,
"keep_wemf": true,
"verbose": true,
"visible": false,
"mark_type": "subscriber",
"content_name": "Tears of Steel",
"store_location": "store/ABinv",
"secret_key": "dummy"
}
```
Example 2 operator mode:
```
{
"tool": "content_armor:ABIngestCL",
"parameters": {
"input_file": "tos.mp4",
"output": "operator_inv",
"payload_size": 16,
"keep_wemf": true,
"verbose": true,
"visible": false,
"mark_type": "operator",
"operator_id": 3245,
"content_name": "Tears of Steel",
"store_location": "store/operator_inv",
"secret_key": "dummy"
}
```
The required arguments are:
* `input_file`
Input playlist or manifest in case of AB mode. And video file in case of operator mode
Supported:
* M3U8 (master or content playlist)
* DASH MPD (needs to be of type "static")
* mp4, ts, 264, avc, 265, mkv
* `output`
Output folder
* `content_name`
A name to be used to archive the processed asset
* `store location`
a place to store information required to perform the extraction
Optional arguments are:
* `version`
Version of the ContentArmor tools to use. Valid values: 3.0.10, latest. Defaults to "latest".
* 'mark_type'
can be of
"subscriber" meaning a subscriber mode is activated (A/B watermarking)
"operator" meaning one id is inserted into the whole stream
Defaults to "subscriber"
* `keep_wemf`
Store WEMF files. Defaults to False
* `payload_size`
Payload size of the mark (4/8/16/24/32/48). Defaults to 16
* 'operator_id'
If operator mark is true, this id will be embedded. Defaults to 0
* `verbose`
More verbose. Defaults to False
* `visible`
if true a visible mark is embedded instead of invisible. Defaults to false
* `secret_key`
a key to encrypt file names. Defaults to 'dummy'
* `progress_file`
Progress file, by default progress.txt in output folder
* `nrb`
Path to a NRB (Non Reference B frames) file.
* `threads`
Number of threads to use for embedding.
* `split`
Split input playlist in <SPLIT> parts to fasten profiling.
WARNING: improper use may lead to detection issues. Default to 1
Parameter | Properties | Default | Type | Choice | Description |
---|---|---|---|---|---|
input_file | required | Input playlist. It can be master or content playlist or video file | |||
output | required | Output folder | |||
content_name | required | content identifier for a storage | |||
keep_wemf | optional | false | bool | Store WEMF files | |
payload_size | optional | 16 | int | Defines the watermark payload size. | |
operator_id | optional | 0 | int | Defines the operator mark payload. | |
mark_type | optional | subscriber | str | subscriber or operator | |
verbose | optional | false | bool | More verbose | |
visible | optional | false | bool | visible(debug) mode | |
progress_file | optional | Progress file, by default progress.txt in output folder | |||
nrb | optional | Path to a NRB (Non Reference B frames) file | |||
threads | optional | Number of threads to use for embedding | |||
split | optional | Split input playlist in | |||
store_location | optional | store | str | location where extraction helper information needs to be stored | |
secret_key | optional | dummy | str | a key to encode segment names | |
embedder_license | optional | str | embedder license | ||
profiler_license | optional | str | profiler license |