复制自网址:https://software.intel.com/en-us/intel-media-server-studio-support/code-samples
Code Samples
Media Server Studio offers many code examples through two different packages i.e. “samples” and “tutorials” to get you started.
- The sample package is a collection of code examples that showcase new and important media features of the latest APIs, and are optimized to measure performance on the underlying hardware. Here is the samples guide – Linux* | Windows* for more details.
- The tutorial package provides step-by-step guides to learn basic media features, understand the pipeline, and are geared toward beginning users.
- Case Studies – See customer examples and use cases with Intel Media Server Studio
Download Samples packages
- Latest samples - Windows 2017 R2 | Linux 2017 R2
- Older samples release:
- Windows - Windows 2017 R1 | 2016 | 2015 R6 | Deprecated
- Linux - Linux 2017 R1 | 2016 | 2015 R6 | Deprecated
Download Tutorial packages
- Windows package
- Linux package
- Brief about the Tutorials
Tool Code Samples
Intel® SDK for OpenCL™ Applications
Intel Media Server Studio Samples
Sample applications demonstrate how to incorporate the Intel Media Server Studio API into various applications. These examples showcase many new and important features available in new releases.
Transcoding Sample
sample_multi_transcode performs transcoding of single to multiple elementary video stream from one compressed format to another.
Encoding Sample
sample_encode performs
encoding of raw video frames into elementary compressed stream
(including HEVC encode Plug-in from Intel Media Server HEVC Pack).
Decoding Sample
sample_decode performs
decoding of elementary compressed video stream to raw frames (including
HEVC decode and VP8 decode Plug-in from Intel Media Server Plugin Pack)
and sample_decvpp performs decoding with video processing (color
conversion) of raw video sequences.
Video Processing Sample
sample_vpp
performs various video processing algorithms on raw frames such as
Denoising, Deinterlace/Inverse Telecine and Color conversion.
OpenCL Video Motion Estimation Sample
ocl_motion_estimation
provides step-by-step guidelines on using Intel’s motion estimation
extension for OpenCL standard. The motion estimation extension includes a
set of host-callable functions for frame-based VME.
OpenCL Interoperability Sample
ocl_media_sdk_interop demonstrates how to use Intel Media SDK and Intel® OpenCL SDK together for efficient video decoding and fast post-processing.
Deprecated Samples
Full Transcoding
Sample_full_transcode
performs full scale transcoding of media files: allows changing
container format and video/audio compression formats. It also shows
usage of new Splitters and Muxers Sample using FFmpeg, and the Audio
Library
Video Conferencing
sample_videoconf
performs encoding of raw video frames into elementary compressed stream.
Shows various encoding features specific to video conferencing use
case.
Transcoding Sample using Microsoft* DirectShow*
sample_dshow_plugins demonstrates how to use the Intel Media SDK with DirectShow filters to compress and decompress video files. sample_dshow_player demonstrates how to use the SDK and sample DShow filters to play and transcode media files (streams).
Transcoding Sample using Microsoft Media Foundation*
sample_mfoundation_transcode
demonstrates how to use the Media Foundation framework to transcode
media files (streams) in a Windows Presentation Foundation (WPF)
application.
Transcoding Sample using Microsoft Windows 8 User Interface
sample_win8ui_transcode
demonstrates how to use the API of H.264 video encoder (a Microsoft
Media Foundation* Transform) to transcode a video file to a configurable
format in a Windows 8 UI
Intel Media Server Studio Tutorials
Tutorials are geared towards beginners by providing simple code examples for basic media features and excellent code examples to start working with the Intel Media SDK. All code examples come with Microsoft Visual Studio* solution files (Windows) and Makefile (Linux) to get you started.
Set-up
simple_1_session
Sets up Intel Media SDK session and perform queries to determine selected implementation and which API version is used
Decode
simple_2_decode
Decodes AVC stream into YUV file using system memory surfaces, showcasing simple synchronous decode pipeline flow
simple_2_decode_vmem
Adds use of video memory surfaces for improved decode performance
Encode
simple_3_encode
Encodes YUV frames from file into AVC stream using surfaces in system
memory, showcasing simple synchronous encode pipeline flow.
simple_3_encode_vmem
Adds use of video memory surfaces for improved encode performance.
simple_3_encode_vmem_async
Adds asynchronous operation to previous example, resulting in further improved performance.
Transcode
simple_5_transcode
Transcodes (decode+encode) AVC stream to another AVC stream using system memory surfaces.
simple_5_transcode_opaque
Same as previous sample but uses the Intel Media SDK opaque memory
feature. The opaque memory type hides surface allocation specifics and
allows the Intel Media SDK to select the best type for the execution in
hardware or software.
simple_5_transcode_opaque_async
Adds asynchronous operation to the transcode pipeline implementation, resulting in further improved performance.
simple_5_transcode_vmem
Same as "simple_5_transcode" sample but uses video memory surfaces
instead. While opaque surfaces use video memory internally,
application-level video memory allocation is required to integrate
components not in Intel Media SDK.
simple_5_transcode_opaque_async_vppresize
Same as "simple_5_transcode_opaque - async" sample but pipeline includes video frame processing (VPP) resize.
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 use of video memory surfaces for improved VPP performance.
simple_6_decode_vpp_postproc
Similar to the “simple_2_decode” sample but adds VPP post-processing capabilities to showcase resize and ProcAmp
simple_6_encode_vmem_lowlatency
Similar to the “simple_3_encode_vmem” sample with additional code to
illustrate how to configure an encode pipeline for low latency and how
to measure latency.
simple_6_transcode_opaque_lowlatency
Similar to the “simple_5_transcode_opaque” sample with additional code
to illustrate 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
pre-processing capabilities to show frame color conversion from RGB32(4)
to NV12.