Jump to content

Recommended Posts

dark_slayer
Posted

Do me a favor, can you try having like 3-4 transcodes going and seeing how it behaves?

 

Just curious is the 3rd/4th transcodes end up having playback freeze because of inability to keep up.

 

I am playing around with using QS and disabling throttling to see if that works better.

I'll give it a shot tonight and let you know. Have you seen any hangups on resume?
MSattler
Posted

I'll give it a shot tonight and let you know. Have you seen any hangups on resume?

 

Not really, but so far today in limited testing my best response has been setting thread count to MAX, and disabling throttling.  This runs ffmpeg with threads 0, which means ffmpeg will relinquish CPU time if required, and helps with multiple transcodes.  

 

Resumes/Starts are always a bit slow for me since I run unRaid, and often the disks are spun down.

 

However, I am also running Dual Samsung 850 Pro 256GB disks in Raid 1 on this host, and then use PrimoCache to cache reads/writes via 10GB of memory and a Samsung 850 Pro 128GB SSD.  So performance may vary, not sure how much the disk speeds are helping me in relation to transcodes.

dark_slayer
Posted

I copied your settings as well. I run a windows server on an 850 pro, so all my transcodes are cached into the SSD as well

Posted

I am running the official emby Docker 3.0.5882 inside unraid 6.1.9 with an Intel i7-4790k cpu that has QuickSync.  I had hoped it would transcode HEVC h.265 content using QuickSync but it will not, it errors out see attached.

If I turn QuickSync off it will transcode just fine using the CPU. (about 50% of the 8 threads) 

 

I created the file with mcebuddy using the base h.265 profile (ffmpeg) with a TS source file emby recording.

 

I also tested playback of an emby created mp4 through IOS and it played it direct without needing transcoding. I tested a 720p .mkv h.264 with QuickSync turned on and it would not play either. Is this issue related to QuickSync inside of a docker?

 

I am guessing there is currently not a way to have emby save a recording in HEVC directly when the mp4 option is checked on a recording? the goal is to use the format to conserve HD space while getting comparable quality to h.264.

 

hevc_transcode_error.txt

Posted

From my research on QS you are not able to use it inside a docker.

Posted (edited)

Hello all, There is allot of information on this thread and I wanted to make sure I have the most up to date info.  I'm trying to find out the current status of NVENC HWA support.  I know that there are some distributing issues but besides that is this still the closest we have got to getting NVENC working in Emby? https://github.com/MediaBrowser/Emby/wiki/GPU-Transcoding

Personally I'm looking for support on the windows OS.  I see you can compile ffmpeg with nvenc for windows by cross compiling on linux.  https://bannsecurity.com/index.php/tutorials/23-compiling-ffmpeg-for-windows-nvidia There may be pre compiled windows versions of ffmpeg out there that have nvenc built in, not sure.  In any event if I get ffmpeg compiled with nvenc for windows what do I need to do to integrate it with emby?  It looks like this has been in the works for over a year now so just wondering what has changed on this front.

 

Also is there any current movement on this or has this been put to the side? 

 

Thanks

Edited by chrismb
Posted (edited)

Before to decide to build ffmpeg with QSV support in Ubuntu, please consider the following issues:

 

1) You "must" patch your kernel, the patches provided by intel are for version 3.14.5 of linux kernel, this left you with the only reasonable option to install Ubuntu Server 12.04.5

 

2) Consider that on low powerd hardware libx264 with preset superfast (with ultrafast it's even faster) has perfomance similars to h264_qsv. To give you an idea on my small ASRock Q1900-ITX I'm able to transcode a 1080p video at 49 fps (cpu 55%), while using QSV it's possible transcode at 60 fps (cpu 95%). You can find more info in this long post: https://trac.ffmpeg.org/ticket/2591   

 

Having said that, if you still want try to compile ffmpeg with QSV support, you "must" execute the following steps:

1. Software installation on Ubuntu Server 12.04.5
a) install build tools:
apt-get install cmake make gcc pkg-config patch yasm g++ autoconf automake build-essential cifs-utils texi2html
 install libraries: 
apt-get install libpthread-stubs0-dev libpciaccess-dev libass-dev libfreetype6-dev libgpac-dev libsdl1.2-dev libtheora-dev libtool libva-dev libvdpau-dev libvorbis-dev
libx11-dev libxext-dev libxfixes-dev zlib1g-dev libx264-dev libmp3lame-dev libfaac-dev librtmp-dev libvo-aacenc-dev libx264-dev libvdpau-va-gl1 libva-intel-vaapi-driver

2. Media Server Studio Essentials 2015r6 (Community free edition)
wget http://registrationcenter.cps.intel.com/irc_nas/7719/mediaserverstudioessentials2015r6.tar.gz
tar xf mediaserverstudioessentials2015r6.tar.gz
cd MediaServerStudioEssentials2015R6
tar xf SDK2015Production16.4.2.1.tar.gz
cd SDK2015Production16.4.2.1/Generic/
tar xf intel-linux-media-ocl_generic_16.4.2.1-39163_64bit.tar.gz
./install_media.sh

3. libdrm
cd /opt/intel/mediasdk/opensource/libdrm/2.4.54-39163/
tar xf libdrm-2.4.54.tar.bz2
cd libdrm-2.4.54
./configure
make -j 8
make install

4. libva
cd /opt/intel/mediasdk/opensource/libva/1.3.1-staging.20130628.39163
tar xf libva-1.3.1.tar.bz2
cd libva-1.3.1
./configure --enable-static
make
make install

5. libmfx
cd /opt/intel/mediasdk/opensource/mfx_dispatch/
mkdir build
cd build
cmake –D__ARCH:STRING=intel64 ../
make -j 8
ln -s /opt/intel/mediasdk/include/ /usr/local/include/mfx

6. libs
cd /usr/local/lib
ln -sf /opt/intel/mediasdk/opensource/mfx_dispatch/build/__lib/libmfx.a
ln -sf /opt/intel/mediasdk/opensource/mfx_dispatch/build/__lib/libdispatch_trace.a
ln -sf /opt/intel/mediasdk/opensource/mfx_dispatch/build/__lib/libdispatch_shared.a
# libva.a, libva-drm.a, libva-tpi.a should be already in /usr/local/lib if not add the symlinks 

7. create file /usr/lib/pkgconfig/libmfx.pc:
prefix=/usr/local
exec_prefix=${prefix}
libdir=${prefix}/lib
includedir=${prefix}/include
Name: libmfx
Description: Intel Media SDK Dispatched static library
Version: 2015
Requires:
Requires.private:
Conflicts:
Libs: -L${libdir} -lmfx -ldispatch_shared -lva -lva-drm -lsupc++ -lstdc++ -ldl
Libs.private:
Cflags: -I${includedir} -I/opt/intel/mediasdk/opensource/mfx_dispatch/include

8. add to /etc/environment (shoud be already set by the sdk):
LD_LIBRARY_PATH="/usr/local/lib:/usr/lib64"
LIBVA_DRIVER_NAME=iHD
LIBVA_DRIVERS_PATH=/opt/intel/mediasdk/lib64

9. linux-kernel patch
wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.14.5.tar.xz
tar xf linux-3.14.5.tar.xz
cd linux-3.14.5
cp
/opt/intel/mediasdk/opensource/patches/kmd/3.14.5/intel-kernel-patches.tar.bz2
.
tar xf intel-kernel-patches.tar.bz2
for i in intel-kernel-patches/*.patch; do patch -p1 < $i; done
make olddefconfig
make -j 8
make modules_install
make install
reboot

10. compile a static build of ffmpeg
wget http://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2
tar xf ffmpeg-snapshot.tar.bz2
cd ffmpeg
./configure --disable-shared --enable-static --enable-gpl --enable-nonfree --enable-fontconfig --enable-libfaac --enable-libfreetype --enable-libmp3lame --enable-librtmp --enable-libvo-aacenc --enable-libx264 --enable-libx265 --enable-version3 --enable-ffplay --disable-doc --disable-ffserver --enable-pthreads --enable-filters --enable-libvorbis --enable-libtheora --enable-runtime-cpudetect --enable-libass --enable-bzlib --enable-zlib --enable-vdpau --enable-vaapi --enable-avfilter --disable-stripping --enable-swscale --enable-libmfx
make -j 8
make install 

That's all, good luck !

Hi

I'm trying to install ffmpeg with h264_qsv support. I followed the instructions, but when I start ffmpeg I`m getting error Error initializing an internal MFX session

 

OS: Ubuntu Server 12.04.5 64bit

cpu is I7-4790

MediaServerStudioEssentials 2016

 

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.4.4.47109-ubit

vainfo: Supported profile and entrypoints

      VAProfileH264Baseline           : VAEntrypointEncSlice

      VAProfileH264Baseline           : <unknown entrypoint>

      VAProfileH264Baseline           : <unknown entrypoint>

      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               : VAEntrypointEncSlice

      VAProfileVP9Profile0            : VAEntrypointEncSlice

      VAProfileVP9Profile0            : VAEntrypointVLD

      VAProfileVP9Profile0            : <unknown entrypoint>

      <unknown profile>               : VAEntrypointVideoProc

      VAProfileNone                   : VAEntrypointVideoProc

      VAProfileNone                   : <unknown entrypoint>

also examples ftom MediaServerStudioEssentials work normally

 

Can someone help me with problem solving ?

Edited by shera037
Posted

finaly solution !!!!

HOW TO

 

OS: OS: Ubuntu Server 12.04.5 LTS 64bit

 

ffmpeg+Intel QuickSync

sudo vi /etc/apt/sources.list

add

deb http://archive.ubuntu.com/ubuntu/ precise main restricted
deb-src http://archive.ubuntu.com/ubuntu/ precise main restricted
deb http://archive.ubuntu.com/ubuntu/ precise-updates main restricted
deb-src http://archive.ubuntu.com/ubuntu/ precise-updates main restricted
deb http://archive.ubuntu.com/ubuntu/ precise universe
deb-src http://archive.ubuntu.com/ubuntu/ precise universe
deb http://archive.ubuntu.com/ubuntu/ precise-updates universe
deb-src http://archive.ubuntu.com/ubuntu/ precise-updates universe
deb http://archive.ubuntu.com/ubuntu/ precise multiverse
deb-src http://archive.ubuntu.com/ubuntu/ precise multiverse
deb http://archive.ubuntu.com/ubuntu/ precise-updates multiverse
deb-src http://archive.ubuntu.com/ubuntu/ precise-updates multiverse
deb http://archive.ubuntu.com/ubuntu/ precise-backports main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ precise-backports main restricted universe multiverse

update source list

sudo apt-get update

to compile vi need GCC >= 4.7  yasm >=1.2

sudo apt-get install python-software-properties
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo add-apt-repository ppa:nilarimogard/webupd8
sudo apt-get update
sudo apt-get install gcc-4.7 g++-4.7
sudo apt-get install libvdpau-va-gl1
sudo apt-get install cmake make gcc pkg-config patch yasm g++ autoconf automake build-essential cifs-utils texi2html
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.6 60 --slave /usr/bin/g++ g++ /usr/bin/g++-4.6 
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.7 40 --slave /usr/bin/g++ g++ /usr/bin/g++-4.7 
sudo update-alternatives --config gcc

(set option 2)

sudo apt-get install libpthread-stubs0-dev libpciaccess-dev libass-dev libfreetype6-dev libgpac-dev libsdl1.2-dev libtheora-dev libtool libva-dev libvdpau-dev libvorbis-dev \
libx11-dev libxext-dev libxfixes-dev zlib1g-dev libx264-dev libmp3lame-dev libfaac-dev librtmp-dev libvo-aacenc-dev libx264-dev libvdpau-va-gl1 libva-intel-vaapi-driver

update yasm to 1.3

wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
tar xzf yasm-1.3.0.tar.gz
cd yasm-1.3.0/
./configure
make -j 8
sudo make install
sudo reboot

Download latest MediaServerStudioEssentials

tar xf MediaServerStudioEssentials2016.tar.gz
cd MediaServerStudioEssentials2016
tar xf SDK2016Production16.4.4.tar.gz
cd SDK2016Production16.4.4/Generic
tar xf intel-linux-media-ocl_generic_16.4.4-47109_64bit.tar.gz

create file install_media_ubuntu.sh

vi install_media_ubuntu.sh

copy this script

#!/bin/bash

echo "Modify file for ubuntu ..."
find -name "*.pc" | xargs sed -i 's|lib64|lib/x86_64-linux-gnu|g'

# if using MSS version less than R6, please uncomment this.
#sed -i 's|lib64|lib/x86_64-linux-gnu|g' etc/OpenCL/vendors/intel.icd

echo "Remove old MSS install files ..."
sudo rm -rf /opt/intel/mediasdk
sudo rm -rf /opt/intel/common
sudo rm -rf /opt/intel/opencl

# remove old libdrm and libva
find /usr -name "libdrm*" | xargs sudo rm -rf
find /usr -name "libva*" | xargs sudo rm -rf

echo "Install MSS files ..."
sudo cp -rdf opt/* /opt/
sudo cp -rdf etc/* /etc/

sudo cp -rdf usr/bin/*     /usr/bin/
sudo cp -rdf usr/include/* /usr/include/
sudo cp -rdf usr/lib64/*   /usr/lib/x86_64-linux-gnu/
sudo cp -rdf usr/share/*   /usr/share

echo "Install finished, please reboot ..."
chmod +x install_media_ubuntu.sh
sudo ./install_media_ubuntu.sh
sudo usermod -a -G video [your username)
sudo reboot
linux-kernel patch
wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.14.5.tar.gz
tar xf linux-3.14.5.tar.gz
cd linux-3.14.5
cp /opt/intel/mediasdk/opensource/patches/kmd/3.14.5/intel-kernel-patches.tar.bz2 .
tar xf intel-kernel-patches.tar.bz2
sudo su
for i in intel-kernel-patches/*.patch; do patch -p1 < $i; done
make olddefconfig
make -j 8
make modules_install
sudo make install
sudo reboot
libdrm
cd MediaServerStudioEssentials2016/SDK2016Production16.4.4/Generic/opt/intel/mediasdk/opensource/libdrm/2.4.54-47109
tar xf libdrm-2.4.54.tar.bz2
cd libdrm-2.4.54
./configure
make -j 8
sudo make install

libva

cd
cd MediaServerStudioEssentials2016/SDK2016Production16.4.4/Generic/opt/intel/mediasdk/opensource/libva/1.67.0.pre1-47109
tar xf libva-1.67.0.pre1.tar.bz2
cd libva-1.67.0.pre1
./configure --enable-static
make -j 8
sudo make install
sudo reboot
libmfx
sudo mkdir /opt/intel/mediasdk/include/mfx
sudo cp /opt/intel/mediasdk/include/*.h /opt/intel/mediasdk/include/mfx

create file libmfx.pc

sudo vi /usr/lib/pkgconfig/libmfx.pc

copy this

prefix=/opt/intel/mediasdk
exec_prefix=${prefix}
libdir=${exec_prefix}/lib/lin_x64
includedir=${prefix}/include

Name: libmfx
Description: Intel Media SDK Dispatched static library
Version: 16.16
Libs: -L${libdir} -lmfx -lva -lstdc++ -ldl -lva-drm -ldrm
Libs.private:
Cflags: -I${includedir}  -I/usr/include/libdrm
sudo reboot

After restart you can compile ffmpeg (--enable-libmfx) with Intel QuickSync

 

good scrip you can find at https://gist.github.com/xdamman/e4f713c8cd1a389a5917

in row 60 should look like this

./configure --enable-gpl --enable-libfaac --enable-libmp3lame --enable-libopencore-amrnb \
  --enable-libopencore-amrwb --enable-librtmp --enable-libtheora --enable-libvorbis \
    --enable-libvpx --enable-libx264 --enable-nonfree --enable-version3 --enable-libmfx
  • Like 2
Posted

Well done !! :)

 

Sadly that's a lot of work for the average user though, but still very impressive. 

jmgriffes
Posted

 

finaly solution !!!!

HOW TO

 

OS: OS: Ubuntu Server 12.04.5 LTS 64bit

 

ffmpeg+Intel QuickSync

sudo vi /etc/apt/sources.list

add

deb http://archive.ubuntu.com/ubuntu/ precise main restricted
deb-src http://archive.ubuntu.com/ubuntu/ precise main restricted
deb http://archive.ubuntu.com/ubuntu/ precise-updates main restricted
deb-src http://archive.ubuntu.com/ubuntu/ precise-updates main restricted
deb http://archive.ubuntu.com/ubuntu/ precise universe
deb-src http://archive.ubuntu.com/ubuntu/ precise universe
deb http://archive.ubuntu.com/ubuntu/ precise-updates universe
deb-src http://archive.ubuntu.com/ubuntu/ precise-updates universe
deb http://archive.ubuntu.com/ubuntu/ precise multiverse
deb-src http://archive.ubuntu.com/ubuntu/ precise multiverse
deb http://archive.ubuntu.com/ubuntu/ precise-updates multiverse
deb-src http://archive.ubuntu.com/ubuntu/ precise-updates multiverse
deb http://archive.ubuntu.com/ubuntu/ precise-backports main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ precise-backports main restricted universe multiverse

update source list

sudo apt-get update

to compile vi need GCC >= 4.7  yasm >=1.2

sudo apt-get install python-software-properties
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo add-apt-repository ppa:nilarimogard/webupd8
sudo apt-get update
sudo apt-get install gcc-4.7 g++-4.7
sudo apt-get install libvdpau-va-gl1
sudo apt-get install cmake make gcc pkg-config patch yasm g++ autoconf automake build-essential cifs-utils texi2html
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.6 60 --slave /usr/bin/g++ g++ /usr/bin/g++-4.6 
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.7 40 --slave /usr/bin/g++ g++ /usr/bin/g++-4.7 
sudo update-alternatives --config gcc

(set option 2)

sudo apt-get install libpthread-stubs0-dev libpciaccess-dev libass-dev libfreetype6-dev libgpac-dev libsdl1.2-dev libtheora-dev libtool libva-dev libvdpau-dev libvorbis-dev \
libx11-dev libxext-dev libxfixes-dev zlib1g-dev libx264-dev libmp3lame-dev libfaac-dev librtmp-dev libvo-aacenc-dev libx264-dev libvdpau-va-gl1 libva-intel-vaapi-driver

update yasm to 1.3

wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
tar xzf yasm-1.3.0.tar.gz
cd yasm-1.3.0/
./configure
make -j 8
sudo make install
sudo reboot

Download latest MediaServerStudioEssentials

tar xf MediaServerStudioEssentials2016.tar.gz
cd MediaServerStudioEssentials2016
tar xf SDK2016Production16.4.4.tar.gz
cd SDK2016Production16.4.4/Generic
tar xf intel-linux-media-ocl_generic_16.4.4-47109_64bit.tar.gz

create file install_media_ubuntu.sh

vi install_media_ubuntu.sh

copy this script

#!/bin/bash

echo "Modify file for ubuntu ..."
find -name "*.pc" | xargs sed -i 's|lib64|lib/x86_64-linux-gnu|g'

# if using MSS version less than R6, please uncomment this.
#sed -i 's|lib64|lib/x86_64-linux-gnu|g' etc/OpenCL/vendors/intel.icd

echo "Remove old MSS install files ..."
sudo rm -rf /opt/intel/mediasdk
sudo rm -rf /opt/intel/common
sudo rm -rf /opt/intel/opencl

# remove old libdrm and libva
find /usr -name "libdrm*" | xargs sudo rm -rf
find /usr -name "libva*" | xargs sudo rm -rf

echo "Install MSS files ..."
sudo cp -rdf opt/* /opt/
sudo cp -rdf etc/* /etc/

sudo cp -rdf usr/bin/*     /usr/bin/
sudo cp -rdf usr/include/* /usr/include/
sudo cp -rdf usr/lib64/*   /usr/lib/x86_64-linux-gnu/
sudo cp -rdf usr/share/*   /usr/share

echo "Install finished, please reboot ..."
chmod +x install_media_ubuntu.sh
sudo ./install_media_ubuntu.sh
sudo usermod -a -G video [your username)
sudo reboot
linux-kernel patch
wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.14.5.tar.gz
tar xf linux-3.14.5.tar.gz
cd linux-3.14.5
cp /opt/intel/mediasdk/opensource/patches/kmd/3.14.5/intel-kernel-patches.tar.bz2 .
tar xf intel-kernel-patches.tar.bz2
sudo su
for i in intel-kernel-patches/*.patch; do patch -p1 < $i; done
make olddefconfig
make -j 8
make modules_install
sudo make install
sudo reboot
libdrm
cd MediaServerStudioEssentials2016/SDK2016Production16.4.4/Generic/opt/intel/mediasdk/opensource/libdrm/2.4.54-47109
tar xf libdrm-2.4.54.tar.bz2
cd libdrm-2.4.54
./configure
make -j 8
sudo make install

libva

cd
cd MediaServerStudioEssentials2016/SDK2016Production16.4.4/Generic/opt/intel/mediasdk/opensource/libva/1.67.0.pre1-47109
tar xf libva-1.67.0.pre1.tar.bz2
cd libva-1.67.0.pre1
./configure --enable-static
make -j 8
sudo make install
sudo reboot
libmfx
sudo mkdir /opt/intel/mediasdk/include/mfx
sudo cp /opt/intel/mediasdk/include/*.h /opt/intel/mediasdk/include/mfx

create file libmfx.pc

sudo vi /usr/lib/pkgconfig/libmfx.pc

copy this

prefix=/opt/intel/mediasdk
exec_prefix=${prefix}
libdir=${exec_prefix}/lib/lin_x64
includedir=${prefix}/include

Name: libmfx
Description: Intel Media SDK Dispatched static library
Version: 16.16
Libs: -L${libdir} -lmfx -lva -lstdc++ -ldl -lva-drm -ldrm
Libs.private:
Cflags: -I${includedir}  -I/usr/include/libdrm
sudo reboot

After restart you can compile ffmpeg (--enable-libmfx) with Intel QuickSync

 

good scrip you can find at https://gist.github.com/xdamman/e4f713c8cd1a389a5917

in row 60 should look like this

./configure --enable-gpl --enable-libfaac --enable-libmp3lame --enable-libopencore-amrnb \
  --enable-libopencore-amrwb --enable-librtmp --enable-libtheora --enable-libvorbis \
    --enable-libvpx --enable-libx264 --enable-nonfree --enable-version3 --enable-libmfx

 

This needs to be stickied somewhere...

  • Like 1
Posted

This needs to be stickied somewhere...

 

With the addition that:

  • The resulting ffmpeg binary needs to have the kernel patches and the corresponding Media Server Studio (with drivers) installed on the system also in order to run. Ffmpeg binary alone is nor enough.
  • Ulike in Windows, only a small subset of Intel processors with Quick Sync hardware are supported by the Media Server Studio 2016. Currently Haswell (4gen) Core i and Broadwell (5gen) Core i and Xeon E3-128X v3 & v4. There is no support for any Skylake SKU nor any generation of Celeron, Pentium or Atom models.
  • 2 weeks later...
Posted

Does the kernel patching need to be done on recent kernels (i.e 4.4.x)? I am running Archlinux so the kernel is beeding edge ..

How do I tell if the Intel patches are in this kernel ..

 

Cheers,

Posted

Does the kernel patching need to be done on recent kernels (i.e 4.4.x)? I am running Archlinux so the kernel is beeding edge ..

How do I tell if the Intel patches are in this kernel ..

 

Cheers,

 

@@babgvant knows a lot more about this than I, but this is my experience.

 

I got it to work with a combination of Ivy Bridge i5, Ubuntu 15.10 Wiley, nightly 4.5 intel-drm-next kernel and Media Server Studio 2015r1 (last to support IVB). Got the Intel MSS samples to work, but ultimately lost interest because the same setup didn’t work on my BayTrail N2807 (“unknown hardware id..”).

 

I got the idea to try a newer kernel from this thread in Intel forums. Even though Intel rep. directly says that they do not upstream their Media SDK kernel work, some of it apparently ends up there eventually. Also, there is somebody in the Tvheadend forums who has it working on 4.1 kernel with way fewer patches than what are provided in the MSS kit.

 

Note that you still need the proprietary closed source user mode driver (iHD_driver.so) and the rest of the Media Server Studio stuff. It does not work with the open source driver from 01.org. The ffmpeg wiki page also has an error that suggest that you could use lu_zero’s MFX dispatcher instead of the installing the Intel Media Server Stdudio. That is not true. You can, however, use lu_zero’s MFX dispatcher instead of Intel dispatcher, but you need the rest (drivers etc.) of the Intel MSS installed also.

 

I decided that there is no point for me to pursue this any further as the kernel stuff really is over my head and because Intel is apparently targeting only big transcoding farms with their Linux Quick Sync implementation. Only a subset of Quick Sync capable chips are enabled in the Media Server Studio and those are the SKUs that already have a lot of grunt for CPU transcoding. One interesting thing that I did not try is that it looks like the Intel C compiler suite GPU offloading uses the same driver (at least identically named) to access GPU hardware (see p.19 of this presentation and p.44 for supported hardware) with a lot broader selection of supported CPUs. It is confusing. Confusing enough that Intel’s own documentation states “I think we expect Atom processors to work, ..” (see page 2 of this).

 

Intel just doesn’t want end users to have Quick Sync on Linux.

  • Like 1
Posted

Good info, thanks!

Posted

..

I got it to work with a combination of Ivy Bridge i5, Ubuntu 15.10 Wiley, nightly 4.5 intel-drm-next kernel and Media Server Studio 2015r1 (last to support IVB).

...

I meant to say that I got the Intel samples to work without any kernel patches using the 4.5 nightly intel-drm-next kernel. I skipped the "install kernel mode driver" section of the MSS installation completely.

Posted

@@Andy777

 

Thanks for the update. I have a i3-2120 CPU on some older hardware I am trying to make the best use of, it will transcode a couple of 1080P streams as it is, but would be great if it could do it with less CPU usage so there

is some bandwidth left for other tasks .. it supposedly supports quicksync ..

 

I take it you are getting the kernel from here?: http://kernel.ubuntu.com/~kernel-ppa/mainline/drm-intel-next/current/

MSattler
Posted

Can some folks who have gpu transcoding working, who use HDHomerun's, try browser based playback to see if gpu transcoding works for live TV?

 

I'm having hit or miss issues with it.

 

thanks!

BIGGRIMTIM
Posted

I am having trouble getting the Intel QSV to work.  I have an i3-4130 which supports QSV.  I am running on WHS 2011 with the latest stable build of Emby server.

 

Thanks.

Posted

I am having trouble getting the Intel QSV to work.  I have an i3-4130 which supports QSV.  I am running on WHS 2011 with the latest stable build of Emby server.

 

Thanks.

 

Make sure your video drivers are up to date. If you've done that and you still have an issue, then I would just disable it.

BIGGRIMTIM
Posted

Make sure your video drivers are up to date. If you've done that and you still have an issue, then I would just disable it.

I do have the latest drivers installed so I guess I will just leave it disabled.  I am planning on upgrading to Server 2012R2 in the near future, do things work better with server 2012?

 

Thanks

MSattler
Posted

Can some folks who have gpu transcoding working, who use HDHomerun's, try browser based playback to see if gpu transcoding works for live TV?

 

I'm having hit or miss issues with it.

 

thanks!

 

For anyone having issues transcoding live tv with gpu transcoding, try updating the device driver to a newer/beta version.  Fixed it for me.

MrWebsmith
Posted

i need to try this

  • Like 1
Posted

I do have the latest drivers installed so I guess I will just leave it disabled.  I am planning on upgrading to Server 2012R2 in the near future, do things work better with server 2012?

 

Thanks

 

I can't answer that. This is something that appears to be highly sensitive to your environment. The best thing we can do is work together and pool our knowledge.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...