Enabling QuickSync inside Docker

Hello,

We are running Wowza inside a Docker container.

I am trying to enable QuickSync transcoder.

On the host system, I have downloaded and compiled the kernel patches.

I am having this message :

$ sudo dmesg |grep i915
[    9.261783] [drm:intel_modeset_init [i915]] *ERROR* LCPLL1 is disabled
[    9.319317] [drm] Initialized i915 1.6.0 20151010 for 0000:00:02.0 on minor 0
[    9.373637] i915 0000:00:02.0: No connectors reported connected with modes
[    9.486709] i915 0000:00:02.0: fb0: inteldrmfb frame buffer device

Inside the container, I have installed the libs :

RUN tar -xvzf intel-linux-media_generic*.tar.gz && \
    tar -xvJf intel-opencl-16.5*.xz && \
    tar -xvJf intel-opencl-devel-16.5*.xz && \
    cp -dfr etc/* /etc && \
    cp -dfr lib/* /lib && \
    cp -dfr opt/* /opt && \
    cp -dfr usr/* /usr && \
    cp -drf etc/* /etc/

/dev/dri is mounted inside the container

Vainfo seems to work :

# LIBVA_DRIVER_NAME=iHD LIBVA_DRIVERS_PATH=/opt/intel/mediasdk/lib64 vainfo                                                                                                                    
error: can't connect to X server!
libva info: VA-API version 0.99.0
libva info: va_getDriverName() returns 0
libva info: User requested driver 'iHD'
libva info: Trying to open /opt/intel/mediasdk/lib64/iHD_drv_video.so
libva info: Found init function __vaDriverInit_0_32
libva info: va_openDriver() returns 0
vainfo: VA-API version: 0.99 (libva 1.67.0.pre1)
vainfo: Driver version: 16.5.55964-ubit
vainfo: Supported profile and entrypoints
      VAProfileH264ConstrainedBaseline:	VAEntrypointVLD
      VAProfileH264ConstrainedBaseline:	VAEntrypointEncSlice
      VAProfileH264ConstrainedBaseline:	<unknown entrypoint>
      VAProfileH264ConstrainedBaseline:	<unknown entrypoint>
      VAProfileH264Main               :	VAEntrypointVLD
      VAProfileH264Main               :	VAEntrypointEncSlice
      VAProfileH264Main               :	<unknown entrypoint>
      VAProfileH264Main               :	<unknown entrypoint>
      VAProfileH264High               :	VAEntrypointVLD
      VAProfileH264High               :	VAEntrypointEncSlice
      VAProfileH264High               :	<unknown entrypoint>
      VAProfileH264High               :	<unknown entrypoint>
      VAProfileMPEG2Simple            :	VAEntrypointEncSlice
      VAProfileMPEG2Simple            :	VAEntrypointVLD
      VAProfileMPEG2Main              :	VAEntrypointEncSlice
      VAProfileMPEG2Main              :	VAEntrypointVLD
      VAProfileVC1Advanced            :	VAEntrypointVLD
      VAProfileVC1Main                :	VAEntrypointVLD
      VAProfileVC1Simple              :	VAEntrypointVLD
      VAProfileJPEGBaseline           :	VAEntrypointVLD
      VAProfileJPEGBaseline           :	VAEntrypointEncPicture
      VAProfileVP8Version0_3          :	VAEntrypointEncSlice
      VAProfileVP8Version0_3          :	VAEntrypointVLD
      VAProfileVP8Version0_3          :	<unknown entrypoint>
      VAProfileHEVCMain               :	VAEntrypointVLD
      VAProfileHEVCMain               :	VAEntrypointEncSlice
      VAProfileVP9Profile0            :	<unknown entrypoint>
      <unknown profile>               :	VAEntrypointVideoProc
      VAProfileNone                   :	VAEntrypointVideoProc
      VAProfileNone                   :	<unknown entrypoint>

But, this is what happen when I start a live stream :

./wowzastreamingengine_access.log:2017-01-17	16:00:08	UTC	comment	server	INFO	200	-	JNI:TranscoderSession.isQuickSyncAvailable[_defaultVHost_:dev-live/_definst_/test-qsv]: Intel Quick Sync hardware acceleration is NOT available.	-	-	-	3377.53	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-

What exactly is checking Wowza in order to use QuickSync ?

I don’t understand what is missing.

Any idea ?

Thanks.

Hello Oliver,

This article details the Server specification requirements:

https://www.wowza.com/docs/server-specifications-for-intel-quick-sync-acceleration-with-wowza-transcoder

Since the checks are against the processor you will need to ensure that your Docker container has access to the processor.

  • Intel Xeon processors are only supported with the chipsets listed. Intel Xeon configurations with other chipsets are not supported. Previous generations of Intel Core processors are not supported. Intel Celeron and Intel Atom processors are also not supported.

Please let me know if you have found a solution or are still looking for the proper configuration to enable the transcoder offloading via Quick Synch.

Regards,
Jason Hatchett