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, orC:\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.