June 17, 2016

Enable hardware acceleration for Intel Quick Sync in Windows

Nimble Streamer Transcoder supports Intel® Quick Sync technology for both software video encoding and hardware encoding acceleration using Intel® processors feature set. Nimble Streamer now allows using Quick Sync as a H.264 video encoder in transcoding scenarios.

Once you have Quick Sync installed, the software encoding is available in our Transcoder by default while hardware acceleration needs to be enabled separately.

Let's see how hardware acceleration is enabled on Windows platform for Nimble Streamer.

1. Install Nimble


We assume you've already installed Nimble Streamer and the Transcoder on top.

2. Install Intel® Media SDK


To make Quick Sync work, you need to install Intel® Media SDK first. Follow this link to fill in the form and get the SDK installation package.

3. Application isolation workaround


In Windows operating system starting from Windows Vista and later, implementation of hardware acceleration relies on interaction with the hardware graphics drivers. The system isolates the services in a non-interactive environment called "Session 0 Isolation." Applications running in this isolation don't have access to hardware drivers. This means when Nimble Streamer is launched as a system service, Quick Sync hardware acceleration isn't available.



This is why you need to use a workaround when Nimble Streamer is run as an application in an environment with full access to the graphics hardware.

You need to create a setup where Nimble Streamer is started when a server is rebooted and it runs in an environment with full access to the hardware.

You'll need to have the following steps completed:
  1. Create a Windows Scheduled Task that runs the Nimble Streamer when a particular user logs on to the server.
  2. Configure the server to automatically log on after reboot.

4. Create Windows Scheduled Task


To create a Windows Scheduled Task to run Nimble Streamer, do the following steps.

Open Task Scheduler (Start > All Programs > Administrative Tools > Task Scheduler).

On the Action menu, click Create Task action and set the following values.

General tab
  • In Name, enter Nimble Streamer.
  • Click Change User or Group, select the user that will be used to automatically log on to the server and run Nimble.
  • Select Run only when user is logged on.
  • Uncheck Run with highest privileges.
  • Uncheck Hidden.
Triggers tab
  • Click the New button.
  • In the New Trigger dialog box, in Begin the task, select At log on.
  • In the Settings area, select Specific user, click the Change User button, and then select the same user as in the previous step (if not already selected).
  • In Advanced settings select Enabled option clear all other options.
Actions tab
  • Click the New button.
  • In the New Action dialog box, in Action, select Start a program.
  • In the Program/script field, enter <<Nimble Streamer full exe path>>.
  • Leave the Add arguments (optional) field blank.
  • In the Start in (optional) field, enter <<Nimble Streamer full path>>.
Conditions tab
Clear these options:
  • Start the task only if the computer is idle for
  • Start the task only if computer is on AC power
  • Wake the computer to run this task
  • Start only if the following network connection is available
Settings tab
  • Select Allow task to be run on demand option.
  • Clear Run task as soon as possible after a scheduled start is missed option.
  • Clear If the task fails, restart every option.
  • Clear Stop the task if it runs longer than option.
  • Select If the running task does not end when requested, force it to stop option.
  • Clear If the task is not scheduled to run again, delete is after option.

Now click OK.

Now when you click the Task Scheduler Library folder icon in the Task Scheduler contents panel, you will see a list of active scheduled tasks. The new Nimble Streamer task should be displayed in it. You may right-click the Nimble Streamer task and select Run, a command prompt will open and Nimble Streamer instance will start. If a command prompt doesn't open, double-click the Nimble Streamer task and make sure that it's configured according to the instructions above. After you've set up the task properly, log off the computer and log back on as the user for which you configured the task to run. You will see a command prompt open and Nimble Streamer start. Proceed to the next section once you have this working.

5. Set server to auto-logon on reboot


Now you need to set Windows to automatically logon as the user for which you configured the scheduled task to run. There are several methods to configure the auto-logon.

There are also third-party tools that help to make auto-logon more secure by better protecting the user name and password of the target user and locking the server after logon. You may consider LogonExpert as such tool. When using LogonExpert and the Lock computer after logon security setting, you may need to set the Delay computer lock for [x] seconds value to 20 seconds to enable Intel Quick Sync acceleration to work properly.

Make sure that you configure power settings on the server such that the current user isn't automatically logged off and the server doesn't go into Sleep or Hibernation mode. Also, make sure to adjust power settings so that the server always runs at full performance.


You're all set now and you can use hardware acceleration on Windows.

We keep improving the Transcoder feature set, contact us for any questions.

Related documentation


Live Transcoder for Nimble Streamer, Live Streaming features, Build streaming infrastructure with Nimble StreamerTranscoder support for Intel® Quick Sync, Enabling hardware acceleration on Linux,

Intel is a trademark of Intel Corporation in the U.S. and/or other countries.

No comments:

Post a Comment