-
Notifications
You must be signed in to change notification settings - Fork 10
/
SimpleEncodingLiveJobUrlOutput.ts
52 lines (45 loc) · 3.27 KB
/
SimpleEncodingLiveJobUrlOutput.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
import {map, mapArray} from '../common/Mapper';
import SimpleEncodingLiveJobCredentials from './SimpleEncodingLiveJobCredentials';
import SimpleEncodingLiveJobOutput from './SimpleEncodingLiveJobOutput';
import SimpleEncodingLiveJobOutputType from './SimpleEncodingLiveJobOutputType';
import SimpleEncodingLiveMaxResolution from './SimpleEncodingLiveMaxResolution';
/**
* @export
* @class SimpleEncodingLiveJobUrlOutput
*/
export class SimpleEncodingLiveJobUrlOutput extends SimpleEncodingLiveJobOutput {
/**
* Discriminator property for SimpleEncodingLiveJobOutput
* @type {string}
* @memberof SimpleEncodingLiveJobUrlOutput
*/
public readonly type: SimpleEncodingLiveJobOutputType = SimpleEncodingLiveJobOutputType.URL;
/**
* Define a URL pointing to a folder which will be used to upload the encoded assets. The output folder structure used looks the following way: <br><br> `http://host/my-folder` <ul> <li> `/video` <ul> <li>`/{width}x{height}_{bitrate}/` (multiple subfolders containing different output renditions)</li> </ul> </li> <li>`/audio` </li> <li>`/index.m3u8` (HLS manifest file) </li> <li>`/stream.mpd` (DASH manifest file) </li> </ul> Currently the following protocols/storages systems are supported: S3, GCS, Azure Blob Storage, Akamai NetStorage. Note that most protocols will require `credentials` to access the asset. Check the description below which ones are applicable. See below how to construct the URLs for the individual protocals/storage systems. **S3**: * `s3://<my-bucket>/path/` Authentication can be done via accesskey/secretkey or role-based authentication. Generic S3 is currently NOT supported. **GCS**: * `gcs://<my-bucket>/path/` Authentication can be done via accesskey/secretkey or a service account **Azure Blob Storage (ABS)**: * `https://<account>.blob.core.windows.net/<container>/path/` It is required to provide the Azure key credentials for authentication. **Akamai NetStorage**: * `https://<host>-nsu.akamaihd.net/<CP-code>/path/` It is required to provide username/password credentials for authentication. (required)
* @type {string}
* @memberof SimpleEncodingLiveJobUrlOutput
*/
public url?: string;
/**
* Credentials to be used for authentication and accessing the folder.
* @type {SimpleEncodingLiveJobCredentials}
* @memberof SimpleEncodingLiveJobUrlOutput
*/
public credentials?: SimpleEncodingLiveJobCredentials;
/**
* Indicates if the output should be publically available so that playback immediately works over the internet. Note that not every storage provider supports public output, in this case the flag will be ignored (e.g., Akamai NetStorage). It might forbidden by some storage configuration to make files public, for example an S3 buckets can be configured to disallow public access. In this case set it to false.
* @type {boolean}
* @memberof SimpleEncodingLiveJobUrlOutput
*/
public makePublic?: boolean;
constructor(obj?: Partial<SimpleEncodingLiveJobUrlOutput>) {
super(obj);
if(!obj) {
return;
}
this.url = map(obj.url);
this.credentials = map(obj.credentials, SimpleEncodingLiveJobCredentials);
this.makePublic = map(obj.makePublic);
}
}
export default SimpleEncodingLiveJobUrlOutput;