Managing Media Workflow
Media Flow provides a workflow environment to transcode the videos into different formats that can be streamed on multiple devices.
The workflows consist of one or more tasks identified by a key. A key is a unique name for the task and can be used to map parameters of one task into another, or to declare dependencies between tasks. You can define workflows using parameter references and the workflows can be parameterized at runtime.
Required IAM Policies
Each service in OCI integrates with Oracle Cloud Infrastructure Identity and Access Management (IAM) for authentication and authorization, for all the interfaces (the Console, SDK and CLI, and REST API). Before you begin using Media Flow, you must create policies to control who has access to the media workflow, and the type of access for each group of users.
For details about writing policies for the media workflow and policy examples, see IAM Policies. If you're using the OCI AI Services feature, see the IAM policies for Speech, Language, and Vision.
For accessing Media Flow using the https://cloud.oracle.com, REST API, and CLI, see Accessing Media Flow.
Types of Workflows
Media Flow supports the following types of workflows:
-
- System Workflow:
- System workflows are predefined workflows that you can use. The system workflows manage common tasks such as ingesting media into Media Streams or performing a simple transcode.
-
- User-defined Workflow:
- You can create and customize workflows in a compartment based on your media processing requirements.
The available Media Flow resources are:
- media-workflow
- media-workflow-configuration
- media-workflow-job
- media-asset
Types of Tasks
Media Flow supports the following types of tasks:
- getFiles: Use this task to fetch inputs from an object storage bucket. The identity used to create the media workflow job is used to authenticate with object store. Assign read permissions to the identity for this task to work.
- putFiles: Use this task to add the results of the job into the object store and (optionally) register the assets with the asset metadata system (for storing technical metadata about outputs).
- thumbnail: Use this task to generate thumbnails from video content.
- transcode: Use this task to transcode video using one of the three profiles such as Standard Transcode, Speed Optimized Transcode, or Quality Optimized Transcode. In each of the profiles, you can specify the video and audio codec to use, the resolution you want to produce, and the packaging format. Speed optimized transcode adds the ability to select a speed level that trades quality for performance. Quality optimized transcode allows you to select a quality optimization level and enable two-pass encoding. The formats supported by OCI Media Flow are:
Type Supported Formats Input container formats 3GP, ARF, ASF, AVI, P4V, FLV, M1V, M4V, MKV, MP4, MPG, MXF, OGG, OGM, OGV, QT, RM, RMVB, WAV, WEBM, WMA, WMV Input Video Codecs H263, H264, H265, MP43, DivX, Xvid, AVC, VP6, FLV1, FLV4, VP8, MPEG-1/2, AVC/MJPG, MPEG-4,
Theora, WMV2
Input Audio Codecs AAC, AAC/FLAC, MP3, MP4A, PCM, Vorbis, RAW, WMA6/7, WMA 8 Output container formats MP4, WebM Output Video Codecs H264, VP8, VP9 Output Audio Codecs AAC, MP3, Vorbis, Opus Output ABR Packages HLS, DASH - speech: This task is used to transcribe a video using the OCI
Speech service. The audio is extracted from the video input and automatically sent to the Speech Service for transcription. To further process the transcription output by the OCI
Language service, set the
analyzeText
flag to True. This processing includes entity extraction, sentiment analysis, and key phrase detection. - ingest: Use this task to ingest an HLS manifest into Media Streams to enable streaming playback. This task can be used in isolation to ingest an existing m3u8 file from the object storage, or as part of a media workflow that includes a transcode task to package the video as HLS.
- vision: Use this task to integrate with the OCI Vision service. When included in a media workflow this task runs object detection and text extraction on each scene within the video. A JSON file that maps timecodes to objects/text detected is produced.