---
id: "oci-media-flow"
type: "component"
kind: "media-transcoder"
provider: "oci"
category: "compute"
docs: "https://docs.oracle.com/en-us/iaas/Content/media-services/mediaflow/media-flow-overview.htm"
url: "https://localhost:3000/catalogue/components/oci-media-flow"
---

# OCI Media Flow

File-based media workflow jobs that transcode, thumbnail and package content for adaptive bitrate.

| | |
|---|---|
| Provider | [oci](https://localhost:3000/catalogue?provider=oci) |
| Kind | [Media transcoder](https://localhost:3000/catalogue/kinds/media-transcoder) |
| Category | Compute |
| Official docs | [https://docs.oracle.com/en-us/iaas/Content/media-services/mediaflow/media-flow-overview.htm](https://docs.oracle.com/en-us/iaas/Content/media-services/mediaflow/media-flow-overview.htm) |

## Properties

| property | type | values | required | kind default | this component |
|---|---|---|---|---|---|
| `aiTaskIntegration` | boolean | — | no | false | inherited |
| `captions` | boolean | — | no | false | inherited |
| `drm` | boolean | — | no | false | **false** |
| `managed` | boolean | — | no | false | **true** |
| `maxBitrateKbps` | integer | — | no | — | inherited |
| `maxConcurrentJobs` | integer | — | no | 2000 | inherited |
| `maxMediaWorkflows` | integer | — | no | 500000 | inherited |
| `mode` | enum | `file`, `live` | no | — | **"file"** |
| `outputTarget` | enum | `object-storage`, `media-streams` | no | "object-storage" | inherited |
| `packaging` | enum | `none`, `hls`, `dash`, `cmaf`, `smooth` | no | "none" | inherited |
| `redundantPipeline` | boolean | — | no | false | **false** |
| `renditions` | integer | — | no | — | inherited |
| `videoCodec` | enum | `h264`, `h265`, `av1`, `vp9`, `prores` | no | — | inherited |

Bold values are the ones this component pins.

## Rules that apply · 1

### Stateful node without zone redundancy `stateful-node-without-zone-redundancy` (error)

- Page: https://localhost:3000/catalogue/rules/stateful-node-without-zone-redundancy.md
- Why: A stateful compute node pinned to exactly one availability zone disappears with that zone, and its state goes with it. Nodes inside a cell are exempt, because there the cell is deliberately single-zone and redundancy comes from the other cells.
- Applies to: every node in category compute
- Message: Stateful node '{{node.id}}' lives in exactly one availability zone. A zone outage takes its state with it.

It fires when:

- all of these hold:
  - the node's `stateless` is false
  - the node sits inside exactly 1 availability-zone group
  - this does not hold:
    - the node sits inside at least one cell group

## Other products of the same kind · 17

- [Intelligent Media Management](https://localhost:3000/catalogue/components/alibaba-imm.md) `alibaba-imm` — alibabacloud
- [Intelligent Media Services](https://localhost:3000/catalogue/components/alibaba-intelligent-media-services.md) `alibaba-intelligent-media-services` — alibabacloud
- [ApsaraVideo Live](https://localhost:3000/catalogue/components/alibaba-live.md) `alibaba-live` — alibabacloud
- [ApsaraVideo VOD](https://localhost:3000/catalogue/components/alibaba-vod.md) `alibaba-vod` — alibabacloud
- [AWS Elemental MediaConvert](https://localhost:3000/catalogue/components/aws-mediaconvert.md) `aws-mediaconvert` — aws
- [AWS Elemental MediaLive](https://localhost:3000/catalogue/components/aws-medialive.md) `aws-medialive` — aws
- [Image Transformations](https://localhost:3000/catalogue/components/cloudflare-image-transformations.md) `cloudflare-image-transformations` — cloudflare
- [Cloudflare Stream](https://localhost:3000/catalogue/components/cloudflare-stream.md) `cloudflare-stream` — cloudflare
- [Stream Live](https://localhost:3000/catalogue/components/cloudflare-stream-live.md) `cloudflare-stream-live` — cloudflare
- [Bento4](https://localhost:3000/catalogue/components/bento4.md) `bento4` — default
- [FFmpeg](https://localhost:3000/catalogue/components/ffmpeg.md) `ffmpeg` — default
- [HandBrake](https://localhost:3000/catalogue/components/handbrake.md) `handbrake` — default
- [Generic media transcoder](https://localhost:3000/catalogue/components/media-transcoder.md) `media-transcoder` — default
- [Mux Video](https://localhost:3000/catalogue/components/mux.md) `mux` — default
- [Shaka Packager](https://localhost:3000/catalogue/components/shaka-packager.md) `shaka-packager` — default
- [Live Stream API](https://localhost:3000/catalogue/components/google-live-stream-api.md) `google-live-stream-api` — gcp
- [Transcoder API](https://localhost:3000/catalogue/components/google-transcoder-api.md) `google-transcoder-api` — gcp

## Use it in a design

```yaml
nodes:
  - { id: "oci-media-flow", component: "oci-media-flow" }
```

## Source (`component` YAML, verbatim)

```yaml
# yaml-language-server: $schema=../../schema/component.schema.json
# Oracle OCI Media Flow: file-based media workflow jobs that transcode, thumbnail and segment
# content read from an Object Storage bucket, optionally calling Speech, Language and Vision.
# "What is Media Flow": jobs are file based, output goes to an Object Storage bucket or is
# ingested directly into Media Streams, HLS and DASH packaging produce adaptive bitrate
# streams, and a tenant may hold 2,000 concurrent jobs and 500,000 media workflows.
schemaVersion: "1"
type: "component"
id: "oci-media-flow"
kind: "media-transcoder"
provider: "oci"
docs: "https://docs.oracle.com/en-us/iaas/Content/media-services/mediaflow/media-flow-overview.htm"
defaults:
  mode: "file"
  redundantPipeline: false
  drm: false
  managed: true
properties:
  outputTarget:
    type: "enum"
    values: ["object-storage", "media-streams"]
    default: "object-storage"
  aiTaskIntegration:
    type: "boolean"
    default: false
  maxConcurrentJobs:
    type: "integer"
    default: 2000
  maxMediaWorkflows:
    type: "integer"
    default: 500000
```

Human page: https://localhost:3000/catalogue/components/oci-media-flow
