Profile fields
Property | Type | Description | Default |
---|---|---|---|
id |
string | The profile id (read-only) | none |
version |
integer | The profile version (read-only) | none |
account_id |
integer | The Video Cloud account id | none |
name |
string | The profile name - must be unique within the account | none |
description |
string | The profile description | none |
date_created |
integer (epoch timestamp (milliseconds) | Date profile was created (read-only) | none |
date_last_modified |
integer (epoch timestamp in milliseconds) | Date profile was last modified (read-only) | none |
brightcove_standard |
boolean | Read-only - false for all custom profiles |
false |
digital_master |
object | Defines if and how to archive a digital master | false |
numRenditions |
integer | Number of renditions in the profile, including image renditions (read-only) | none |
renditions |
array | Array of rendition objects | [] |
packages |
array | Array of DRM packages | [] |
Rendition fields
Property | Type | Description | Default |
---|---|---|---|
id |
string | the rendition id (read-only) | none |
aspect_mode |
enum (string) | how to handle mismatches between source and target aspect ratio - preserve , stretch , crop , pad - note that if you choose a value other than preserve , both width and height may be modified to achieve the desired aspect ratio |
preserve |
audio_bitrate |
integer | audio bitrate in kbps | match source |
audio_sample_rate |
integer | sample rate in Hz - (AAC : 8000, 11025, 12000, 16000, 22050, 32000, 44100, 48000, 96000; FLV : 11025, 22050, and 44100) |
match source |
max_audio_sample_rate |
integer | max audio sample rate in Hz, overrides audioSampleRate (AAC : 8000, 11025, 12000, 16000, 22050, 32000, 44100, 48000, 96000; FLV : 11025, 22050, and 44100) |
match source |
audio_constant_bitrate |
boolean | force CBR , not compatible with VP6 |
false |
audio_channels |
integer | Number of audio channels (null (don't change), 1 or 2 ) |
null |
audio_codec |
string | Audio codec - aac | mp3 |
Determined by the format or profile |
max_aac_profile |
string | Max aac profile: aac-lc, he-aac, or he-aac-v2 | we recommend using aac-lc when the audio bitrate of the rendition is less than 48kbps |
constant_bitrate |
boolean | whether CBR should be forced for the rendition |
none |
crf |
integer | a bitrate-control setting, and sets a constant ratefactor. Valid values are 0-51, with lower values being better quality.[1-3] | none |
decoder_bitrate_cap |
integer | in kbps, the max bitrate fed to the decoder via a buffer | none |
decoder_buffer_size |
integer | in kbps, the size of the buffer fed to the decoder when using a bitrate_cap |
none |
encryption_method |
string | encryption method to use, e.g. aes-128 [1-1] |
none |
encryption_key_rotation_period |
integer | use a different key for each set of segments, rotating to a new key after this many segments[1-1] | null |
fixed_keyframe_interval |
boolean | prevent things like scenecut from placing additional keyframes |
false |
forced_keyframe_interval |
integer | forces a keyframe every X frames, but still allows additional keyframes for scenecut, etc. | none |
forced_keyframe_rate |
float | force the keyframe rate, h264 only, ignored if forced_keyframe_interval is used |
none |
format |
string | Video format - ts , mp4 , flv |
none |
frame_rate |
float | frames per second | same as source |
h264_reference_frames |
integer | Number of reference frames to use. Determined partly by speed .[1-4] |
3 |
h264_profile |
string | H.264 has three commonly-used profiles: Baseline (lowest), Main , and High .[1-5] |
baseline |
h264_level |
float | Constrains the bitrate and macroblocks.[1-6] | calculated |
h264_bframes |
integer | Maximum number of consecutive B-frames (0-16)[1-7] | 0 |
hls_optimized_ts |
boolean | Time segments optimized for HLS - only applies to HLS output | none |
keyframe_interval |
integer | Maximum number of frames between keyframes | 250 , overrides keyframe_rate |
keyframe_rate |
float | Maximum keyframes per second | keyframe_interval of 250 |
label |
string | Image type for image renditions - poster or thumbnail |
none |
live_stream |
boolean | whether this will be live video stream | none |
live_dvr_sliding_window_duration |
integer | Duration of stream to keep available for LiveDVR delivery in seconds | 300 |
max_video_bitrate |
integer | in kbps, 123 = 123kbps - h264 only | none |
max_frame_rate |
float | limits the cframe_rate rather than sets it, use as an alternative to frame_rate |
none |
max_hls_protocol_version |
integer | Sets the maximum HLS protocol version to use. Special features will be used as available (2-5) | 3 for Live Streaming, 5 for AES encrypted output, otherwise 2 |
media_type |
string | video , audio , or image |
none |
one_pass |
boolean | force one pass encoding | false |
reference_id |
string | an identifier for the rendition unique within the account - required for DRM | none |
segment_seconds |
integer | number of seconds of content to include in segments | 10 for HLS, 2 for DASH |
skip |
object | a set of conditions for skipping creation of the rendition see Conditional Output for details | null |
skip_video |
boolean | do not include the video stream - use for audio-only renditions | false |
speed |
integer | 1-5 - a target transcoding speed. Slower transcoding allows for more advanced file compression, while faster transcoding is possible by skipping some advanced compression features | 3 |
streaming_delivery_format |
string | Sets the format/protocol for an output that will be delivered using a specific streaming configuration, including necessary manifests, directory structures, or other packaging | none |
streaming_delivery_profile |
string | Sets the profile of the streaming delivery format, ensuring options are selected for compatibility with the profile. Typically used for MPEG-DASH renditions. Valid options depend on the selected streaming_delivery_format [1-8] |
live |
tuning |
string | H264Tuning: film , animation , grain , psnr , ssim , fastdecode , zerolatency |
none |
type |
string | The only value supported currently is segmented (for HLS) |
none |
upscale |
boolean | increase the frame size if the source is smaller than the target | false |
video_bitrate |
integer | in kbps, 123 = 123kbps | none |
video_codec |
string | e.g. h264, ts | Determined by the format or profile |
watermarks [1-9] |
array | array of watermark objects |
|
width |
integer | frame width in pixels | none |
height |
integer | frame height in pixels | none |
Notes
- [1-1] to reproduce the behavior of the old Video Cloud ingest system use a value of 10 - see Content Security (DRM and HLSe) for more details
- [1-2] Higher quality means higher bitrate and vice versa. Possible values:
- Highly compressed. Mediocre visual quality, but small files
- Acceptable quality
- Good quality. Better than most web video
- Great quality. Looks excellent
- Nearly lossless. Large files. Not recommended unless you plan to encode this output again
- [1-3] You shouldn't have to go below 16; 16 is nearly lossless for most files. Around 24 usually looks pretty good. Around 35 looks pretty compressed
- [1-4] More reference frames result in slightly higher compression quality, but increased decoding complexity. In practice, going above 5 rarely has much benefit. We default to 3 as a good compromise of compression and decoding complexity. Set to "auto" to allow our speed setting to naturally choose this number
- [1-5] Lower levels are easier to decode, but higher levels offer better compression. For example, the iPhone 3gs only supports the Baseline profile. The Main and High profiles are a definite step up in compression, and work fine for web playback, though be careful with HD High profile video in Flash Player
- [1-6] Primarily used for device compatibility. For example, the iPhone supports H.264 Level 3, which means that a video’s decoder_bitrate_cap can’t exceed 10,000 kbps. Typically, you should only change this setting if you’re targeting a specific device that requires it.
- [1-7] B-frames are only supported by H.264 Main or High profile, not Baseline. Using B-frames can increase quality at the same bitrate, but is more demanding on CPUs. This may be problematic on old computers or devices, but generally plays smoothly on modern hardware.Video Cloud defaults to 0 for widest compatibility. We recommend a value of 3 for compression/quality improvements. Values higher than 5 or 6 rarely provide much benefit, and greatly increase encoding time
- [1-8] For 'dash' outputs, the currently supported profiles are:
live
- Will set the DASH profile to "urn:mpeg:dash:profile:isoff-live:2011
" and use a singleSegmentTemplate
for eachAdaptationSet
. For DRM, it will use an 8-byte IV, and forPlayReady
will use version 1.1, including aPSSH
atom in the mediahbbtv_1.5
- Will set the DASH profile to "urn:hbbtv:dash:profile:isoff-live:2012
" and include required attributes for audio and video representations. For DRM, it will use a 16-byte IV, and forPlayReady
will use version 1.0, excludingPSSH
atoms
- [1-9] Watermarks must be added at the rendition level - to each rendition that you want watermarked
Digital master fields
The digital_master
object defines if and how to store a digital master that you can use for retranscoding later. See Archiving Masters for details.
Property | Type | Description | Default |
---|---|---|---|
rendition |
string | The rendition to archive - either passthrough to archive the original source video or the reference_id for one of the renditions defined in the profile or none if you do not want to archive a master |
passthrough |
distribute |
boolean | Whether the digital_master should be pushed to the CDN to available for playback |
false |
Package fields
Packages are used for DRM. If your account is not enabled for DRM, just leave the packages
array empty.
Note: packages reference renditions by reference_id
. To use packages, your renditions must have reference_ids, and the renditions must be defined in the JSON for the profile before the packages are defined.
Property | Type | Description | Default |
---|---|---|---|
drm |
array | DRM type (for MPEG-DASH only)[2-2] | none |
package_type |
string | DRM package type[2-2] | none |
renditions |
array | An array of strings, each of which is the reference_id for rendition in the profile[2-3] |
[] |
Notes
- [2-1] Currently supported value for the
drm
array aremarlin
,playready
, andwidevine
- [2-2] See Content Security (DRM and HLSe) for details
- [2-3] Note that the renditions in the profile must be defined in the JSON before the packages, so that the reference_ids exist
Watermark Fields
Watermark images are burned into each video frame in the lower right corner.
Property | Type | Description | Default |
---|---|---|---|
url |
string | url for the image | none |
width |
string[3-2] | width of the watermark as pixels or a percentage of the frame width - e.g. 20% [3-1] |
none |
height |
string[3-2] | height of the watermark as pixels or a percentage of the frame height - e.g. 10% [3-1] |
none |
x |
string[3-2] | distance from the left edge of the video frame to the center of the watermark as pixels or a percentage of the frame width | none |
y |
string[3-2] | distance from the top edge of the video frame to the center of the watermark as pixels or a percentage of the frame width | none |
Notes
- [3-1] If you specify the width only, the image aspect ratio will be maintained automatically
- [3-2] Although the
width
,height
,x
, andy
fields are string values, they contain numbers (pixels or percentage) that must be integers - decimal values like "5.2%" will be rejected.