TRAINING

Sharpen your development skills to create media applications faster.

Introduction

Watch a presentation that highlights new features for media.

Tutorials

Tutorials for Intel® Media SDK are available for Windows* and Linux*. They are bundled into separate installation packages.

Step 1: Download the Tutorial Package

Release 0.0.3:.zip | .tar.gz | .tar.bz2

Release 0.0.4: .zip | .tar.gz

Step 2: Install the Package

For Windows:

Note: You must have Microsoft Visual Studio* to build the tutorial binaries (the tutorial executable files).

  1. Set up INTELMEDIASDKROOT and transfer the tutorial package files into it.
  2. From the tutorial package, click the tutorials.sln solution file. The process for building the tutorial binaries in Visual Studio begins.

For Linux:

  1. Uncompress the package to a local directory.
  2. Do one of the following:
    • In the root of the directory, use make to build all tutorials.
    • Build a single tutorial in each tutorial directory.

Additional Resources

Deliver High-Quality, High-Performance HEVC

Common Bit Rate Control Methods (BRC)

A Sample Framework for Developing Applications

Query Functionality

Add and Retrieve Closed-Caption Messages in AVC and MPEG2 Streams

Analysis Using Intel® Graphics Performance Analyzers (Intel® GPA)

Get Better Performance with Intel GPA

Optimize Media and Video Applications Using Intel® VTune™ Amplifier

Video Conferencing Features

Integrate FFmpeg for Muxing, Demuxing, Encoding, and Decoding

How to Mux Video and Audio

How to Demux a Container into Video Streams

How the Intel® Media SDK Screen Capture Plug-In Works with Video-Streaming Cloud Gaming

Innovative Media Solutions Showcase

 
What's Included

The tutorials cover concepts that include encode, decode, video preprocess and post-process, transcode workloads, and advanced uses. Use these materials with relevant code samples for a complete training experience.

Title Description
Set Up

simple_1_session
Establishes an Intel Media SDK session. Perform queries to determine selected implementation and the API version.

 

simple_7_codec
Checks the runtime codec support on the current platform and iterates all supported codes (on each codec) for configuring, querying, and reporting.

Decode

simple_2_decode
Transforms an AVC stream into a .yuv file using system memory surfaces, showcasing a simple synchronous decode pipeline flow.

simple_2_decode_vmem
Adds the ability to use video memory surfaces for improved decode performance.

simple_2_decode_ffmpeg
By integrating the demux function of FFmpeg, this sample decodes an AVC stream in the mp4 container into a .yuv file using system memory surfaces, showcasing a simple synchronous decode pipeline flow.

simple_2_decode_hevc10
Decodes a HEVC stream with 10-bit depth into a .yuv file using system memory surfaces, showcasing a simple synchronous decode pipeline flow.

Encode

simple_3_encode
Converts .yuv frames from a file into an AVC stream using surfaces in system memory, showcasing simple synchronous encode pipeline flow.

simple_3_encode_vmem
Adds the ability to use video memory surfaces for improved encode performance.

simple_3_encode_vmem_async
Includes an asynchronous operation to the previous example, resulting in further improved performance.

simple_3_encode_ffmpeg
By integrating the mux function of FFmpeg, this sample encodes .yuv frames from a file into an mp4 container with the AVC stream using surfaces in system memory, showcasing a simple synchronous encode pipeline flow.

simple_3_encode_hevc10
Encodes .yuv frames with 10-bit color depth from a file into an HEVC stream using surfaces in system memory, showcasing a simple synchronous encode pipeline flow.

Transcode

simple_5_transcode
Transcodes (decodes and encodes) an AVC stream to another AVC stream using system memory surfaces.

simple_5_transcode_opaque
Like the simple_5_transcode example, it transcodes an AVC stream but uses the opaque memory feature in the SDK. It hides surface allocation specifics while selecting the best type for hardware or software execution.

simple_5_transcode_vmem
Same as simple_5_transcode sample but instead uses video memory surfaces. While opaque surfaces use video memory internally, application-level video memory allocation is required to integrate components that are not in the SDK.

simple_5_transcode_opaque_async
Adds asynchronous operation to an implementation of the transcode pipeline, resulting in additional improved performance.

simple_5_transcode_opaque_async_vppresize
Similar to the simple_5_transcode_opaque_async sample, but instead, this pipeline includes a resize of video frame processing (VPP).

Video Processing and More

simple_4_vpp_resize_denoise
Showcases VPP using system memory surfaces. Highlights frame resize and denoise filter processing.

simple_4_vpp_resize_denoise_vmem
Adds the ability to use video memory surfaces for improved VPP performance.

simple_6_decode_vpp_postproc
Similar to the simple_2_decode sample, while adding VPP post-processing capabilities to showcase resizing videos and the processing amplifier (ProcAmp).

simple_6_encode_vmem_lowlatency
Like the simple_3_encode_vmem sample, but with additional code to illustrate how to configure an encode pipeline for low latency and how to measure latency.

simple_6_transcode_opaque_lowlatency
Same as the simple_5_transcode_opaque sample, but with additional code that illustrates how to configure a transcode pipeline for low latency and how to measure latency.

simple_6_encode_vmem_vpp_preproc
Similar to the simple_3_encode_vmem sample, but adds VPP preprocessing capabilities that show frame color conversion from RGB32(4) to NV12.

Search All Documentation