Dan64 30 Posted December 8, 2015 Share Posted December 8, 2015 (edited) The driver management in Linux and Windows is very different. On Linux a driver must be re-compiled against the headers of Linux image installed on the system, and there are dozens of different Linux images installed in the world. Usually a Linux user is not aware of this problem since this compilation is performed by the Linux distros mantainers. But the big problem here is not the recompilation, but the fact the Intel Linux distribution is available only for few Linux Kernel versions. This is what is stated in the last SDK release notes: Intel Media Server Studio 2015 R6 Driver,SDK for Linux enabled support of 5th Generation Intel Coreprocessors and targets different set of operating systems thanprevious releases. CentOS 7.0, Ubuntu* 12.04 LTS and SUSE* Linux (*)Enterprise Server 11 support has been discontinued.For this release only CentOS 7.1 and SUSE Linux Enterprise Server 12 are supported configurations.For more information please see:https://software.intel.com/en-us/intel-mediasdk-supported-versions-server(*) Starting from next major release support of SUSE Linux Enterprise Server 12 will bediscontinued Linux CentOS 7.1 is using Linux Kernel 3.10.0, while SUSE LES12 is using kernel version 3.12.43. Intel has also released generic patches for the Linux Kernel 3.14.5. We are speaking about quite old releases (not supporting the latest hardware drivers). To give you an idea the most updated distros available today are using Linux kernel 4.0 and above. In summary it's impossible relesase a ffmpeg version working for every Linux kernel image with GPU encoding support. Till we are speaking about CPU only optimizations there is not problem, but the Intel SDK for GPU encoding require kernel specific drivers and hooks that are not standard in the current Linux distros. So it's impossible distribute a "generic" ffmpeg with QSV support like has been done for Windows (that since is not open source has a different approach regarding the drivers). Intel Linux SDK targets only specific Linux Enterprise wide versions for commercial reasons. The SDK is mainly for companies that want to build Media Servers able to stream content to a lot of clients. For personal/domestic (*) use a ffmpeg version that use only the CPU is enough. For curiosity I have performed some tests both in Linux and Windows comparing CPU encoding speed (libx264, preset ultrafast) versus GPU encoding (QSV, NVENC) and I can confirm that the speeds are comparable, so I don't see the point to spend to much time on this problem on Linux since actually is not a problem. Please read carefully the following thread: https://trac.ffmpeg.org/ticket/2591. (*) Otherwise Intel is practically forcing the users to install CentOS 7.1 Edited December 8, 2015 by Dan64 1 Link to comment Share on other sites More sharing options...
witteschnitte 7 Posted December 8, 2015 Author Share Posted December 8, 2015 ok so this thread isnt needed anymore or do i understand this wrong? can i compile ffmpeg for emby on my own? in tvheadend Quicksync transcoding will only use 5 percent cpu instat of 60 percent. So can i compile ffmpeg on my own and what is needed to run with emby? Link to comment Share on other sites More sharing options...
witteschnitte 7 Posted December 8, 2015 Author Share Posted December 8, 2015 I dont understand this. the ffmpeg used at this time also runs on specific linux Distributions. so it only needs the libraries compiled inside Link to comment Share on other sites More sharing options...
supermau 37 Posted December 9, 2015 Share Posted December 9, 2015 I will give it a shot at compiling it and if successful I will report my findings and comparison of qsv vs. ultrafast with server load of 1, 5, 10, 15, and 20 simultaneous transcoding streams... 1 Link to comment Share on other sites More sharing options...
Griffo 3 Posted December 9, 2015 Share Posted December 9, 2015 I'm trying to understand the status of NVENC - wondering if I could slot a GTX950 into my N54L microserver to get hardware encoding, as quicksync is obviously never possible in this rig. I've read this thread but it's not clear to me if it's actually working reliably. Link to comment Share on other sites More sharing options...
Dan64 30 Posted December 12, 2015 Share Posted December 12, 2015 (edited) I'm trying to understand the status of NVENC - wondering if I could slot a GTX950 into my N54L microserver to get hardware encoding, as quicksync is obviously never possible in this rig. I've read this thread but it's not clear to me if it's actually working reliably. I have tested the build available here: https://github.com/MediaBrowser/Emby/wiki/GPU-Transcoding It works but not on all the files that I have tested. I have a Gigabyte X99M with a Intel i7-5820K (6-core) and a GTX-960. Here the output of the command: ffmpeg.exe -i sintel.mkv -t 30 -c:v libnvenc -b:v 4000k -f mp4 -y sintel_n.mp4 ffmpeg version N-68994-g713e3bb Copyright (c) 2000-2015 the FFmpeg developers built on Jan 14 2015 19:47:03 with gcc 4.9.2 (Rev2, Built by MSYS2 project) configuration: --enable-libmfx --enable-libnvenc --enable-nonfree --enable-iconv --arch=x86 --disable-debug --disable-shared --disable-doc --disable-w32threads --enable-gpl --enable-version3 --enable-runtime-cpudetect --enable-avfilter --enable-bzlib --enable-zlib --enable-decklink --enable-librtmp --enable-gnutls --enable-avisynth --enable-frei0r --enable-filter=frei0r --enable-libbluray --enable-libcaca --enable-libopenjpeg --enable-fontconfig --enable-libfreetype --enable-libass --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libvo-amrwbenc --enable-libschroedinger --enable-libsoxr --enable-libtwolame --enable-libspeex --enable-libtheora --enable-libutvideo --enable-libvorbis --enable-libvo-aacenc --enable-libopus --enable-libvidstab --enable-libvpx --enable-libwavpack --enable-libxavs --enable-libx264 --enable-libx265 --enable-libxvid --enable-libzvbi libavutil 54. 16.100 / 54. 16.100 libavcodec 56. 20.100 / 56. 20.100 libavformat 56. 18.100 / 56. 18.100 libavdevice 56. 3.100 / 56. 3.100 libavfilter 5. 7.100 / 5. 7.100 libswscale 3. 1.101 / 3. 1.101 libswresample 1. 1.100 / 1. 1.100 libpostproc 53. 3.100 / 53. 3.100 Input #0, matroska,webm, from 'sintel.mkv': Metadata: title : Sintel (4K UltraHD) CREATION_TIME : 2015-07-25T17:49:37Z ENCODER : Lavf56.1.0 Duration: 00:02:00.00, start: 0.083000, bitrate: 1557 kb/s Stream #0:0(eng): Video: hevc (Main), yuv420p(tv, bt709), 1920x818 [SAR 1:1 DAR 960:409], 24 fps, 24 tbr, 1k tbn, 24 tbc (default) Stream #0:1(eng): Audio: aac (LC), 48000 Hz, stereo, fltp (default) Output #0, mp4, to 'sintel_n.mp4': Metadata: title : Sintel (4K UltraHD) encoder : Lavf56.18.100 Stream #0:0(eng): Video: h264 (libnvenc) ([33][0][0][0] / 0x0021), yuv420p, 1920x818 [SAR 1:1 DAR 960:409], q=-1--1, 4000 kb/s, 24 fps, 12288 tbn, 24 tbc (default) Stream #0:1(eng): Audio: aac (libvo_aacenc) ([64][0][0][0] / 0x0040), 48000 Hz, stereo, s16, 128 kb/s (default) Stream mapping: Stream #0:0 -> #0:0 (hevc (native) -> h264 (libnvenc)) Stream #0:1 -> #0:1 (aac (native) -> aac (libvo_aacenc)) Press [q] to stop, [?] for help frame= 75 fps=0.0 q=0.0 size= 1592kB time=00:00:03.76 bitrate=3465.4kbits/s frame= 149 fps=148 q=0.0 size= 3174kB time=00:00:06.83 bitrate=3803.3kbits/s frame= 233 fps=155 q=0.0 size= 4988kB time=00:00:10.39 bitrate=3930.0kbits/s frame= 314 fps=156 q=0.0 size= 6667kB time=00:00:13.70 bitrate=3985.3kbits/s frame= 395 fps=157 q=0.0 size= 8309kB time=00:00:17.09 bitrate=3981.2kbits/s frame= 475 fps=158 q=0.0 size= 9994kB time=00:00:20.55 bitrate=3983.3kbits/s frame= 558 fps=159 q=0.0 size= 11767kB time=00:00:23.85 bitrate=4040.2kbits/s frame= 642 fps=160 q=0.0 size= 13444kB time=00:00:27.50 bitrate=4003.8kbits/s frame= 720 fps=162 q=0.0 Lsize= 14870kB time=00:00:30.00 bitrate=4060.0kbits/s video:14379kB audio:469kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.140426% As you can see the transcoding speed is 162fps using 35% of CPU. For comparison here the output of the command using the preset superfast: ffmpeg.exe -i sintel.mkv -t 30 -threads 0 -map 0:0 -codec:v:0 libx264 -pix_fmt yuv420p -preset superfast -crf 23 -b:v 4000k -f mp4 -y sintel_s.mp4 ffmpeg version N-68994-g713e3bb Copyright (c) 2000-2015 the FFmpeg developers built on Jan 14 2015 19:47:03 with gcc 4.9.2 (Rev2, Built by MSYS2 project) configuration: --enable-libmfx --enable-libnvenc --enable-nonfree --enable-iconv --arch=x86 --disable-debug --disable-shared --disable-doc --disable-w32threads --enable-gpl --enable-version3 --enable-runtime-cpudetect --enable-avfilter --enable-bzlib --enable-zlib --enable-decklink --enable-librtmp --enable-gnutls --enable-avisynth --enable-frei0r --enable-filter=frei0r --enable-libbluray --enable-libcaca --enable-libopenjpeg --enable-fontconfig --enable-libfreetype --enable-libass --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libvo-amrwbenc --enable-libschroedinger --enable-libsoxr --enable-libtwolame --enable-libspeex --enable-libtheora --enable-libutvideo --enable-libvorbis --enable-libvo-aacenc --enable-libopus --enable-libvidstab --enable-libvpx --enable-libwavpack --enable-libxavs --enable-libx264 --enable-libx265 --enable-libxvid --enable-libzvbi libavutil 54. 16.100 / 54. 16.100 libavcodec 56. 20.100 / 56. 20.100 libavformat 56. 18.100 / 56. 18.100 libavdevice 56. 3.100 / 56. 3.100 libavfilter 5. 7.100 / 5. 7.100 libswscale 3. 1.101 / 3. 1.101 libswresample 1. 1.100 / 1. 1.100 libpostproc 53. 3.100 / 53. 3.100 Input #0, matroska,webm, from 'sintel.mkv': Metadata: title : Sintel (4K UltraHD) CREATION_TIME : 2015-07-25T17:49:37Z ENCODER : Lavf56.1.0 Duration: 00:02:00.00, start: 0.083000, bitrate: 1557 kb/s Stream #0:0(eng): Video: hevc (Main), yuv420p(tv, bt709), 1920x818 [SAR 1:1 DAR 960:409], 24 fps, 24 tbr, 1k tbn, 24 tbc (default) Stream #0:1(eng): Audio: aac (LC), 48000 Hz, stereo, fltp (default) [libx264 @ 04e39b00] using SAR=1/1 [libx264 @ 04e39b00] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 AVX2 LZCNT BMI2 [libx264 @ 04e39b00] profile High, level 4.0 [libx264 @ 04e39b00] 264 - core 144 r2525 40bb568 - H.264/MPEG-4 AVC codec - Copyleft 2003-2014 - http://www.videolan.org/x264.html - options: cabac=1 ref=1 deblock=1:0:0 analyse=0x3:0x3 me=dia subme=1 psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=18 lookahead_threads=3 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=1 keyint=250 keyint_min=24 scenecut=40 intra_refresh=0 rc=crf mbtree=0 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 pb_ratio=1.30 aq=1:1.00 Output #0, mp4, to 'sintel_s.mp4': Metadata: title : Sintel (4K UltraHD) encoder : Lavf56.18.100 Stream #0:0(eng): Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv420p, 1920x818 [SAR 1:1 DAR 960:409], q=-1--1, 4000 kb/s, 24 fps, 12288 tbn, 24 tbc (default) Stream mapping: Stream #0:0 -> #0:0 (hevc (native) -> h264 (libx264)) Press [q] to stop, [?] for help frame= 67 fps=0.0 q=22.0 size= 1022kB time=00:00:01.66 bitrate=5022.4kbits/s frame= 124 fps=124 q=23.0 size= 2439kB time=00:00:04.04 bitrate=4943.3kbits/s frame= 196 fps=130 q=21.0 size= 4230kB time=00:00:07.04 bitrate=4921.5kbits/s frame= 279 fps=138 q=21.0 size= 5700kB time=00:00:10.50 bitrate=4446.7kbits/s frame= 364 fps=144 q=23.0 size= 6801kB time=00:00:14.04 bitrate=3967.8kbits/s frame= 452 fps=149 q=23.0 size= 7787kB time=00:00:17.70 bitrate=3602.5kbits/s frame= 541 fps=153 q=22.0 size= 8837kB time=00:00:21.41 bitrate=3380.4kbits/s frame= 620 fps=154 q=23.0 size= 9731kB time=00:00:24.70 bitrate=3226.3kbits/s frame= 720 fps=160 q=-1.0 Lsize= 11216kB time=00:00:29.91 bitrate=3071.3kbits/s video:11207kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.078030% [libx264 @ 04e39b00] frame I:10 Avg QP:13.64 size: 56817 [libx264 @ 04e39b00] frame P:311 Avg QP:16.05 size: 25775 [libx264 @ 04e39b00] frame B:399 Avg QP:18.11 size: 7247 [libx264 @ 04e39b00] consecutive B-frames: 16.5% 25.3% 10.4% 47.8% [libx264 @ 04e39b00] mb I I16..4: 17.6% 57.5% 24.9% [libx264 @ 04e39b00] mb P I16..4: 8.0% 15.6% 2.3% P16..4: 53.8% 0.0% 0.0% 0.0% 0.0% skip:20.2% [libx264 @ 04e39b00] mb B I16..4: 1.7% 1.9% 0.1% B16..8: 29.7% 0.0% 0.0% direct: 6.0% skip:60.6% L0:39.6% L1:50.7% BI: 9.6% [libx264 @ 04e39b00] 8x8 transform intra:58.8% inter:48.1% [libx264 @ 04e39b00] coded y,uvDC,uvAC intra: 39.7% 20.1% 3.4% inter: 10.8% 8.6% 0.0% [libx264 @ 04e39b00] i16 v,h,dc,p: 40% 29% 18% 13% [libx264 @ 04e39b00] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 17% 21% 23% 6% 6% 6% 8% 5% 8% [libx264 @ 04e39b00] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 26% 23% 18% 7% 5% 5% 6% 4% 6% [libx264 @ 04e39b00] i8c dc,h,v,p: 65% 16% 14% 5% [libx264 @ 04e39b00] Weighted P-Frames: Y:1.9% UV:0.3% [libx264 @ 04e39b00] kb/s:3060.19 As you can see using the CPU only the speed is 160fps using 95% of CPU. Using the preset ultafast the transcoding speed is 15% faster. Here the output of the command with the preset ultrafast: ffmpeg.exe -i sintel.mkv -t 30 -threads 0 -map 0:0 -codec:v:0 libx264 -pix_fmt yuv420p -preset ultrafast -crf 24 -b:v 4000k -f mp4 -y sintel_s.mp4 ffmpeg version N-68994-g713e3bb Copyright (c) 2000-2015 the FFmpeg developers built on Jan 14 2015 19:47:03 with gcc 4.9.2 (Rev2, Built by MSYS2 project) configuration: --enable-libmfx --enable-libnvenc --enable-nonfree --enable-iconv --arch=x86 --disable-debug --disable-shared --disable-doc --disable-w32threads --enable-gpl --enable-version3 --enable-runtime-cpudetect --enable-avfilter --enable-bzlib --enable-zlib --enable-decklink --enable-librtmp --enable-gnutls --enable-avisynth --enable-frei0r --enable-filter=frei0r --enable-libbluray --enable-libcaca --enable-libopenjpeg --enable-fontconfig --enable-libfreetype --enable-libass --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libvo-amrwbenc --enable-libschroedinger --enable-libsoxr --enable-libtwolame --enable-libspeex --enable-libtheora --enable-libutvideo --enable-libvorbis --enable-libvo-aacenc --enable-libopus --enable-libvidstab --enable-libvpx --enable-libwavpack --enable-libxavs --enable-libx264 --enable-libx265 --enable-libxvid --enable-libzvbi libavutil 54. 16.100 / 54. 16.100 libavcodec 56. 20.100 / 56. 20.100 libavformat 56. 18.100 / 56. 18.100 libavdevice 56. 3.100 / 56. 3.100 libavfilter 5. 7.100 / 5. 7.100 libswscale 3. 1.101 / 3. 1.101 libswresample 1. 1.100 / 1. 1.100 libpostproc 53. 3.100 / 53. 3.100 Input #0, matroska,webm, from 'sintel.mkv': Metadata: title : Sintel (4K UltraHD) CREATION_TIME : 2015-07-25T17:49:37Z ENCODER : Lavf56.1.0 Duration: 00:02:00.00, start: 0.083000, bitrate: 1557 kb/s Stream #0:0(eng): Video: hevc (Main), yuv420p(tv, bt709), 1920x818 [SAR 1:1 DAR 960:409], 24 fps, 24 tbr, 1k tbn, 24 tbc (default) Stream #0:1(eng): Audio: aac (LC), 48000 Hz, stereo, fltp (default) [libx264 @ 00aa3420] using SAR=1/1 [libx264 @ 00aa3420] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 AVX2 LZCNT BMI2 [libx264 @ 00aa3420] profile Constrained Baseline, level 4.0 [libx264 @ 00aa3420] 264 - core 144 r2525 40bb568 - H.264/MPEG-4 AVC codec - Copyleft 2003-2014 - http://www.videolan.org/x264.html - options: cabac=0 ref=1 deblock=0:0:0 analyse=0:0 me=dia subme=0 psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=18 lookahead_threads=3 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=0 keyint=250 keyint_min=24 scenecut=0 intra_refresh=0 rc=crf mbtree=0 crf=24.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=0 Output #0, mp4, to 'sintel_u.mp4': Metadata: title : Sintel (4K UltraHD) encoder : Lavf56.18.100 Stream #0:0(eng): Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv420p, 1920x818 [SAR 1:1 DAR 960:409], q=-1--1, 4000 kb/s, 24 fps, 12288 tbn, 24 tbc (default) Stream mapping: Stream #0:0 -> #0:0 (hevc (native) -> h264 (libx264)) Press [q] to stop, [?] for help frame= 77 fps=0.0 q=23.0 size= 1236kB time=00:00:02.41 bitrate=4188.6kbits/s frame= 142 fps=141 q=24.0 size= 2686kB time=00:00:05.12 bitrate=4293.4kbits/s frame= 236 fps=157 q=24.0 size= 4842kB time=00:00:09.04 bitrate=4386.6kbits/s frame= 328 fps=163 q=22.0 size= 6429kB time=00:00:12.87 bitrate=4090.3kbits/s frame= 428 fps=170 q=22.0 size= 7745kB time=00:00:17.04 bitrate=3722.9kbits/s frame= 532 fps=176 q=20.0 size= 9055kB time=00:00:21.37 bitrate=3470.2kbits/s frame= 623 fps=177 q=24.0 size= 10939kB time=00:00:25.16 bitrate=3560.8kbits/s frame= 720 fps=184 q=-1.0 Lsize= 12359kB time=00:00:30.00 bitrate=3374.8kbits/s video:12355kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.030866% [libx264 @ 00aa3420] frame I:3 Avg QP:19.33 size: 66572 [libx264 @ 00aa3420] frame P:717 Avg QP:21.60 size: 17366 [libx264 @ 00aa3420] mb I I16..4: 100.0% 0.0% 0.0% [libx264 @ 00aa3420] mb P I16..4: 14.4% 0.0% 0.0% P16..4: 32.4% 0.0% 0.0% 0.0% 0.0% skip:53.2% [libx264 @ 00aa3420] coded y,uvDC,uvAC intra: 14.6% 13.0% 0.6% inter: 12.5% 6.7% 0.0% [libx264 @ 00aa3420] i16 v,h,dc,p: 30% 30% 21% 19% [libx264 @ 00aa3420] i8c dc,h,v,p: 62% 18% 16% 4% [libx264 @ 00aa3420] kb/s:3373.56 In this case the transcoding speed is 184fps. In effect this is not the maximum possible speed. If the transcoding is performed from "h264 (native)" to "h264 (libx264)" it's possible reach the speed of 330fps. As already commented in my previous post there is not a big advantage in term of speed using the hardware acceleration unless you need to free up the CPU for others task. Edited December 12, 2015 by Dan64 Link to comment Share on other sites More sharing options...
witteschnitte 7 Posted December 12, 2015 Author Share Posted December 12, 2015 (edited) speed doenst matter. the people who want quicksync want to free the cpu usage Edited December 12, 2015 by witteschnitte Link to comment Share on other sites More sharing options...
jmgriffes 6 Posted December 13, 2015 Share Posted December 13, 2015 speed doenst matter. the people who want quicksync want to free the cpu usage I agree. If I can use QuickSync to transcode, that means my little 4th Gen Core i3 can handle 2-4x as many streams at the same time (assuming they all need to transcode). Some of my movies that would struggle before due to their bitrate (massive stuttering in early areas, stuttering throughout due to not quite being able to do 24 fps for a SINGLE stream) now transcode at 90 FPS with QuickSync, and they can live peacefully with 2-3 other streams going on at the same time. Link to comment Share on other sites More sharing options...
Dan64 30 Posted December 13, 2015 Share Posted December 13, 2015 I agree. If I can use QuickSync to transcode, that means my little 4th Gen Core i3 can handle 2-4x as many streams at the same time (assuming they all need to transcode). Some of my movies that would struggle before due to their bitrate (massive stuttering in early areas, stuttering throughout due to not quite being able to do 24 fps for a SINGLE stream) now transcode at 90 FPS with QuickSync, and they can live peacefully with 2-3 other streams going on at the same time. I don't know how you get the 24fps, as already said many times to be able to compare GPU transcoding with CPU you "must" use the libx264 with preset ultrafast. To give you an idea on my Desktop powered by an Intel 3rd Gen i3-3225 3.30 Ghz and with HD Graphics 4000 I can transcode from hevc to h264 at a speed of 98fps (99% CPU) using the preset ultrafast, while using the preset superfast the speed drop to 73fps (99% CPU). For comparison using the ffmpeg (with qsv support) made available by babgvant in this post (*): http://emby.media/community/index.php?/topic/10723-gpu-transcoding-intel-quicksync-and-nvidia-nvenc/page-15&do=findComment&comment=242508 I get a transcoding speed of 104fps at 92% CPU. Willing to lower the CPU usage you can force ffmpeg to use only 1 thread, in this case using the preset ultrafast a get a transcoding speed of 64fps at 52% of CPU: well above the minimum requirement of 25fps and using a 3rd Gen i3 CPU. (*) This is the only version released that support my quite old CPU Link to comment Share on other sites More sharing options...
witteschnitte 7 Posted December 13, 2015 Author Share Posted December 13, 2015 (edited) you can not compare 3rd gen intel with 4th gen. the quicksync is many improved on the 4th gen. as i said before. i am using quicksync this tvheadend on centos 7. before i got 90 percent cpu. now with quicksync i get 5 percent which is nicely better. Edited December 13, 2015 by witteschnitte Link to comment Share on other sites More sharing options...
witteschnitte 7 Posted December 13, 2015 Author Share Posted December 13, 2015 (edited) To get back to the topic. can anyone tell me when the linux ffmpeg will be updated to use quicksync? the release text says it will be available for other systems. but no linux Distribution will work. so from what systems are they talking about??? Edited December 13, 2015 by witteschnitte Link to comment Share on other sites More sharing options...
justdrooit 3 Posted December 22, 2015 Share Posted December 22, 2015 (edited) It seems this thread went hard to QuickSync, while nVidia NVENC sort of got left on the side of the road.Being that I'm running an AMD A8-5500, QuickSync doesn't have a lot of use for me. Have there been any developments with NVENC for GPU Transcoding? I'd love for my system to be capable of transcoding two HDTV streams at one time, or handle two x265 transcodes at once. I'd certainly buy a GTX 950/960 for it if this worked.Thanks in advance. Edited December 22, 2015 by justdrooit Link to comment Share on other sites More sharing options...
justdrooit 3 Posted December 22, 2015 Share Posted December 22, 2015 By the way, in case my post seemed like I'm unappreciative of the efforts put into Emby, I'm actually quite the opposite. It's a wonderful app/service and I think it's the best option out there for a media server by far; particularly one that transcodes. Lovin' it! Link to comment Share on other sites More sharing options...
Luke 37262 Posted December 22, 2015 Share Posted December 22, 2015 Thanks. It's not legal for us to distribute ffmpeg binaries with hevc support i'm afraid. Link to comment Share on other sites More sharing options...
justdrooit 3 Posted December 23, 2015 Share Posted December 23, 2015 Ouch. Okay, so doing a little reading here, that's correct, but it seems possible (and legal) for us to compile it ourselves with that support. Is there a guide that anyone could provide to help us accomplish that? Link to comment Share on other sites More sharing options...
Luke 37262 Posted December 23, 2015 Share Posted December 23, 2015 Well, not only do you have to build ffmpeg, but we have to adapt emby to utilize the encoders and decoders for hevc. On windows we use zeranoe: http://ffmpeg.zeranoe.com/builds/ You could check out their site as they have their build process fully documented, so you would basically just have to add the extra libraries that are needed. Link to comment Share on other sites More sharing options...
babgvant 143 Posted December 23, 2015 Share Posted December 23, 2015 Well, not only do you have to build ffmpeg, but we have to adapt emby to utilize the encoders and decoders for hevc. On windows we use zeranoe: http://ffmpeg.zeranoe.com/builds/ You could check out their site as they have their build process fully documented, so you would basically just have to add the extra libraries that are needed. Did they start compiling in MSDK support? If not, you'll need to use a build that does (like mine). Link to comment Share on other sites More sharing options...
Luke 37262 Posted December 23, 2015 Share Posted December 23, 2015 Did they start compiling in MSDK support? If not, you'll need to use a build that does (like mine). No, I don't see it listed at the bottom of the page. Link to comment Share on other sites More sharing options...
dan0luc 0 Posted December 29, 2015 Share Posted December 29, 2015 I have a problem configuring nvenc transcoding. My config is A8-3850 APU with GTX960 GPU. I followed the steps in this link : https://github.com/MediaBrowser/Emby/wiki/GPU-Transcoding The issues I have are: 1. When I replace the DLL file Emby server does not start corectly (no web interface access) 2. I can't find <H264Encoder>libx264</H264Encoder> in the %APPDATA%\MediaBrowser-Server\config\encoding.xml file. Even if I create the line it does not solve the issue Am I missing something? Link to comment Share on other sites More sharing options...
Luke 37262 Posted December 29, 2015 Share Posted December 29, 2015 I have a problem configuring nvenc transcoding. My config is A8-3850 APU with GTX960 GPU. I followed the steps in this link : https://github.com/MediaBrowser/Emby/wiki/GPU-Transcoding The issues I have are: 1. When I replace the DLL file Emby server does not start corectly (no web interface access) 2. I can't find libx264 in the %APPDATA%\MediaBrowser-Server\config\encoding.xml file. Even if I create the line it does not solve the issue Am I missing something? That's obsolete now. That was a community contributed hack but now that core support has been added, I have not done any testing to see if that still works (it probably doesn't). We don't have any official nvenc support right now. 1 Link to comment Share on other sites More sharing options...
dan0luc 0 Posted December 29, 2015 Share Posted December 29, 2015 That's a shame... For me, when available, nvenc transcoding will be motive enough to get Emby Premiere. As it stands today I don't plan on changing my hardware because reinstalling and reconfiguring everything would be a nightmare. Transcoding and sync would be "inneficient" on my setup without GPU decode/encode support. I'll be monitoring this thread for future news regarding nvenc transcoding. Thanks Link to comment Share on other sites More sharing options...
witteschnitte 7 Posted December 29, 2015 Author Share Posted December 29, 2015 maybe at first the ffmpeg that is used in linux have to be compiled with the right libs. quicksync need libmfx. are there any plans to include this lib in the linux releases of emby? without quicksync can not be used on any linux device. nice that the quicksync option is now in the frontend menu but without any function. May i help you to include this lib? or is it already in the dev releases? regards Link to comment Share on other sites More sharing options...
Luke 37262 Posted December 30, 2015 Share Posted December 30, 2015 maybe at first the ffmpeg that is used in linux have to be compiled with the right libs. quicksync need libmfx. are there any plans to include this lib in the linux releases of emby? without quicksync can not be used on any linux device. nice that the quicksync option is now in the frontend menu but without any function. May i help you to include this lib? or is it already in the dev releases? regards yes, you absolutely could and that would be fantastic. we have been getting linux ffmpeg builds here: http://johnvansickle.com/ffmpeg/ So we would just need equivalent builds with libmfx included, for x64, x86 and arm, 1 Link to comment Share on other sites More sharing options...
scheideggstrasse 0 Posted December 30, 2015 Share Posted December 30, 2015 wow. intel quick sync on linux / ubuntu would be great! Link to comment Share on other sites More sharing options...
eTomm 4 Posted January 6, 2016 Share Posted January 6, 2016 Finally my project of a super lowpower nas has started. The final configuration will be xenserver, with two vm: Windows server 2008 r2 for emby Freenas for the rest The cpu is a low power skylake core i7-6700T All this was meant to be able to passthrough the gpu to the 2008 vm and use it for ffmpeg in emby. To my surprise ALL the encoding that I do with that vm locks at different minutes in different ways. At that point a bit disappointed I tested immediately handbrake and with my surprise again it is working flawlessly without stopping. Is there something I should do more to let it work? Link to comment Share on other sites More sharing options...
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