dark_slayer 103 Posted March 14, 2016 Posted March 14, 2016 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 390 Posted March 14, 2016 Posted March 14, 2016 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 103 Posted March 14, 2016 Posted March 14, 2016 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
Cobra 6 Posted March 16, 2016 Posted March 16, 2016 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
eTomm 6 Posted March 16, 2016 Posted March 16, 2016 From my research on QS you are not able to use it inside a docker.
chrismb 2 Posted March 17, 2016 Posted March 17, 2016 (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 March 17, 2016 by chrismb
shera037 2 Posted March 22, 2016 Posted March 22, 2016 (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 March 22, 2016 by shera037
shera037 2 Posted March 23, 2016 Posted March 23, 2016 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 2
Luke 42077 Posted March 23, 2016 Posted March 23, 2016 Well done !! Sadly that's a lot of work for the average user though, but still very impressive.
jmgriffes 6 Posted March 23, 2016 Posted March 23, 2016 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... 1
Andy777 21 Posted March 23, 2016 Posted March 23, 2016 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.
ebike 13 Posted April 3, 2016 Posted April 3, 2016 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,
Andy777 21 Posted April 4, 2016 Posted April 4, 2016 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. 1
Andy777 21 Posted April 4, 2016 Posted April 4, 2016 .. 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.
ebike 13 Posted April 4, 2016 Posted April 4, 2016 @@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 390 Posted April 4, 2016 Posted April 4, 2016 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!
Andy777 21 Posted April 4, 2016 Posted April 4, 2016 @@Andy777 ... I take it you are getting the kernel from here?: http://kernel.ubuntu.com/~kernel-ppa/mainline/drm-intel-next/current/ 1) Yes 2 See also this bug report which makes ffmpeg not so easy compile on IVB with quicksync currently 3) Before all that you should try your hardware on Windows to see how much the QSV actually helps on CPU usage (compare libx264, ffmpeg with qsv and babgvant's QSTranscode)
BIGGRIMTIM 1 Posted April 5, 2016 Posted April 5, 2016 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.
Luke 42077 Posted April 5, 2016 Posted April 5, 2016 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 1 Posted April 6, 2016 Posted April 6, 2016 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 390 Posted April 6, 2016 Posted April 6, 2016 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.
Luke 42077 Posted April 6, 2016 Posted April 6, 2016 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.
chrismb 2 Posted April 14, 2016 Posted April 14, 2016 Ok so using this scripts I was able to successfully cross compile ffmpeg with nvenc. https://bannsecurity.com/index.php/tutorials/23-compiling-ffmpeg-for-windows-nvidia grate script by the way kudos to the dev. I have tested it with running ffmpeg with command line and it works great. My next step is how to implement this into Emby. Is nvenc available in a dev branch? Thanks, Chris
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now