Skip to content

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 parts to fasten profiling. WARNING: improper use may lead to detection issues
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