Moving away from the Intel Media SDK

New in version 1.15.0.

This chapter describes how to change an existing transcoding setup based on the Intel Media SDK to one that is based on the FFmpeg and x264 transcoding plugins.

Upgrading to the latest version

Please upgrade to the latest USP version, taking the considerations in the Upgrade to a New Version chapter into account.

Note

  • If you're using a media processing unit (remote transcoding), then both the media processing unit and the hosts that use it need to be upgraded to the same USP version, and the steps below apply to the media processing unit.

  • Otherwise, for the local transcoding case, the steps below apply to the single host that runs both the client-side executables and the transcoding pipeline.

Installing the FFmpeg and x264 plugin packages

In contrast to the Intel Media SDK plugins, which (if available for your platform) are included in the mp4split package, the FFmpeg- and x264 transcoding plugins are provided in dedicated OS packages:

  • mp4split-ffmpeg-plugins

  • mp4split-x264-plugins

These packages need to be installed explicitly. Instructions on how install an OS package can be found here for Linux and here for Windows.

Note

On Linux, the OS package manager takes care of the installation of any required prerequisite packages for these plugins. For Windows, this is not the case, and any prerequisites must be handled manually. Please see here for further details.

Configuring and checking the x264 encoding service

Since the x264 encoding service is a prerequisite of the x264 AVC video encoder plugin, the x264_encoding_service executable should now be available. However, depending on your OS, some manual steps may be required before the x264 encoding service is up and running, and configured to start automatically on boot. These steps are detailed here.

Providing the transcoders file

For backward compatibility reasons, the Unified Streaming Platform defaults to using the Intel Media SDK plugins. To use the FFmpeg and x264 plugins instead, a transcoders file is required. The following transcoders file selects the FFmpeg and x264 plugins:

# Example transcoders file selecting the ffmpeg- and x264-based
# plugins for video transcoding. The Intel Media SDK is not required
# nor used.

# Please note that the x264 AVC video encoding plugin (new in version
# 1.15.0) relies on a running instance of the x264_encoding_service.

# Transcoder type     Implementation    Attributes (as of version 1.14.3)

video_decoder_avc     avcodec           # <none>
video_filter_resize   swscale           # <none>
video_encoder_avc     x264              # service_host=::1 service_port=11264
video_encoder_jpg     avcodec           # quality=30

Pick a reasonably obvious path name for the transcoders file, for example:

  • /etc/ffmpeg-and-x264-transcoders.usp on Linux, or

  • C:\Program Files\Unified Streaming\etc\ffmpeg-and-x264-transcoders.usp on Windows.

Using the transcoders file

Now that we have a transcoders file that selects the FFmpeg and x264 plugins, we need to ensure it gets picked up:

  • If you're using a media processing unit (remote transcoding), please see here for how to configure an Apache webserver location that uses the transcoders file, and how command line clients should then use the --transcode_proxy_pass option.

  • Otherwise, for the local transcoding case, please see here for how command line clients can use the --transcoders_file option to point at the transcoders file directly.