eTomm 4 Posted January 16, 2015 Share Posted January 16, 2015 Hi mjb2000, can we enable also opencl support? According to https://trac.ffmpeg.org/wiki/Encode/H.264 libx264 should have it compiled by default and to enable it we should pass an opencl to the x264-params or x264opts. Maybe also ati users can gain something. Link to comment Share on other sites More sharing options...
mjb2000 47 Posted January 16, 2015 Share Posted January 16, 2015 I tried compiling with opencl but couldn't get it to work. It required libopencl installed on the compiling machine, but couldn't compile libopencl on the MSys + MinGW set-up. I haven't yet seen any compelling evidence for an improvement in speed provided by OpenCL. With x264 it only accelerates the look-ahead process, but since we have a constrained bitrate for streaming, there little point in massive look-ahead operations. Main main chunk of the number crunching comes from the encoding element of x264 and this receives no acceleration with OpenCL. If anyone can give me a pointer at getting an OpenCL library that compiles reliably I'll give it another go. I have tried FreeCL from the Google Code repository. M Link to comment Share on other sites More sharing options...
snazy2000 342 Posted January 16, 2015 Share Posted January 16, 2015 Nice work, @@mjb2000! Link to comment Share on other sites More sharing options...
mjb2000 47 Posted January 16, 2015 Share Posted January 16, 2015 Nice work, @@mjb2000! Cheers - Have you been able to get either QS or NVENC working on your set-up? Link to comment Share on other sites More sharing options...
snazy2000 342 Posted January 16, 2015 Share Posted January 16, 2015 Cheers - Have you been able to get either QS or NVENC working on your set-up? Yes I have a I3 4130 and did what the guide said (using the latest dev version that i could get without compiling (3.0.5493.2287)) and works great, CPU usage went down from 40% to 12% and ffmeg wasnt at the top anymore it was using like 1%!! Its amazing what GPU power can do! 1 Link to comment Share on other sites More sharing options...
Tranquil 93 Posted January 16, 2015 Share Posted January 16, 2015 I also tried your modification but without success: This is what I have done: Machine: Intel Core i5-2500 updated to latest Intel drivers MB: Installed latest DEV (Version 3.0.5493.2287), downloaded your binary and MBAPI.dll and followed all instructions. If it comes to h264 transcoding it fails. This is the logfile: C:\Users\Tranquil\AppData\Roaming\MediaBrowser-Server\ffmpeg\20150110\ffmpeg.exe -fflags +genpts -i "http://localhost:8096/mediabrowser/videos/88af133a8805a90a59778e60686b81de/stream?static=true&Throttle=true&mediaSourceId=88af133a8805a90a59778e60686b81de&transcodingJobId=198c2d559a8e4af693efe887028d43c9" -map 0:0 -map 0:1 -map -0:s -codec:v:0 h264_qsv -force_key_frames expr:gte(t,n_forced*5) -vf "scale=min(iw\,704):trunc(ow/dar/32)*32:flags=fast_bilinear" -preset 7 -b:v 872001 -maxrate (872001*1.2) -bufsize (872001*2) -vsync vfr -profile:v baseline -level 3 -map_metadata -1 -threads 0 -codec:a:0 aac -strict experimental -ac 2 -ab 128000 -af "aresample=async=1,volume=2" -f mp4 -movflags frag_keyframe+empty_moov -y "C:\Users\Tranquil\AppData\Roaming\MediaBrowser-Server\transcoding-temp\streaming\07347331e039a15b43dc8f960d63baae.mp4" ffmpeg version N-68994-g713e3bb Copyright © 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.100Input #0, matroska,webm, from 'http://localhost:8096/mediabrowser/videos/88af133a8805a90a59778e60686b81de/stream?static=true&Throttle=true&mediaSourceId=88af133a8805a90a59778e60686b81de&transcodingJobId=198c2d559a8e4af693efe887028d43c9': Metadata: encoder : libebml v0.8.0 + libmatroska v0.9.0 creation_time : 2013-03-10 12:50:26 Duration: 01:37:31.16, start: 0.000000, bitrate: 11408 kb/s Stream #0:0(ger): Video: h264 (High), yuv420p, 1920x1080 [sAR 1:1 DAR 16:9], 23.98 fps, 23.98 tbr, 1k tbn, 47.95 tbc Stream #0:1(ger): Audio: dts (DTS), 48000 Hz, 5.1(side), fltp, 1536 kb/s (default) Metadata: title : German Stream #0:2(eng): Audio: dts (DTS), 48000 Hz, 5.1(side), fltp, 1536 kb/s Metadata: title : English[h264_qsv @ 0576cba0] MFXInit(): -3Output #0, mp4, to 'C:\Users\Tranquil\AppData\Roaming\MediaBrowser-Server\transcoding-temp\streaming\07347331e039a15b43dc8f960d63baae.mp4': Stream #0:0: Video: h264, none, q=2-31, 128 kb/s, SAR 32:33 DAR 0:0, 23.98 fps Metadata: encoder : Lavc56.20.100 h264_qsv Stream #0:1: Audio: aac, 0 channels, 128 kb/s (default) Metadata: encoder : Lavc56.20.100 aacStream mapping: Stream #0:0 -> #0:0 (h264 (native) -> h264 (h264_qsv)) Stream #0:1 -> #0:1 (dts (dca) -> aac (native))Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height Any Idea? Link to comment Share on other sites More sharing options...
mjb2000 47 Posted January 16, 2015 Share Posted January 16, 2015 I also tried your modification but without success: This is what I have done: Machine: Intel Core i5-2500 updated to latest Intel drivers MB: Installed latest DEV (Version 3.0.5493.2287), downloaded your binary and MBAPI.dll and followed all instructions. If it comes to h264 transcoding it fails. This is the logfile: Any Idea? Hi Tranquil - Could you take a look at this test with ffmpeg and this test with another QuickSync encoder to see how you get on and post any log files? 1 Link to comment Share on other sites More sharing options...
Tranquil 93 Posted January 16, 2015 Share Posted January 16, 2015 (edited) Results of first test, which also failed: ffmpeg started on 2015-01-16 at 21:36:20Report written to "ffmpeg-20150116-213620.log"Command line:ffmpeg -t 30 -i "E:\\testmovie.mkv" -map 0:0 -c:v h264_qsv -b: 800000 -s 640x480 -report -loglevel debug QSVffmpeg version N-68994-g713e3bb Copyright © 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.100Splitting the commandline.Reading option '-t' ... matched as option 't' (record or transcode "duration" seconds of audio/video) with argument '30'.Reading option '-i' ... matched as input file with argument 'E:\testmovie.mkv'.Reading option '-map' ... matched as option 'map' (set input stream mapping) with argument '0:0'.Reading option '-c:v' ... matched as option 'c' (codec name) with argument 'h264_qsv'.Reading option '-b:' ... matched as option 'b' (video bitrate (please use -b:v)) with argument '800000'.Reading option '-s' ... matched as option 's' (set frame size (WxH or abbreviation)) with argument '640x480'.Reading option '-report' ... matched as option 'report' (generate a report) with argument '1'.Reading option '-loglevel' ... matched as option 'loglevel' (set logging level) with argument 'debug'.Reading option 'QSV' ... matched as output file.Finished splitting the commandline.Parsing a group of options: global .Applying option report (generate a report) with argument 1.Applying option loglevel (set logging level) with argument debug.Successfully parsed a group of options.Parsing a group of options: input file E:\testmovie.mkv.Applying option t (record or transcode "duration" seconds of audio/video) with argument 30.Successfully parsed a group of options.Opening an input file: E:\testmovie.mkv.[matroska,webm @ 009d2ec0] Format matroska,webm probed with size=2048 and score=100st:0 removing common factor 1000000 from timebasest:1 removing common factor 1000000 from timebasest:2 removing common factor 1000000 from timebase[matroska,webm @ 009d2ec0] Before avformat_find_stream_info() pos: 5722 bytes read:32768 seeks:0[h264 @ 009e46e0] no picture[matroska,webm @ 009d2ec0] All info found[matroska,webm @ 009d2ec0] After avformat_find_stream_info() pos: 25305 bytes read:32768 seeks:0 frames:20Input #0, matroska,webm, from 'E:\testmovie.mkv': Metadata: title : Modern.Family.S04E19.Die.Dunphys.der.Zukunft.GERMAN.DUBBED.DL.720p.BluRay.x264-TVP encoder : libebml v1.2.2 + libmatroska v1.3.0 creation_time : 2015-01-08 20:54:08 Duration: 00:20:42.27, start: 0.000000, bitrate: 5015 kb/s Stream #0:0(ger), 4, 1/1000: Video: h264 (High), yuv420p(left), 1280x720 [sAR 1:1 DAR 16:9], 104271/5000000, 25 fps, 25 tbr, 1k tbn, 47.95 tbc (default) (forced) Metadata: title : tvp-modernfamily-s04e19-720p Stream #0:1(ger), 8, 1/1000: Audio: ac3, 48000 Hz, stereo, fltp, 192 kb/s (default) (forced) Stream #0:2(eng), 8, 1/1000: Audio: ac3, 48000 Hz, 5.1(side), fltp, 384 kb/sSuccessfully opened the file.Parsing a group of options: output file QSV.Applying option map (set input stream mapping) with argument 0:0.Applying option c:v (codec name) with argument h264_qsv.Applying option b: (video bitrate (please use -b:v)) with argument 800000.Applying option s (set frame size (WxH or abbreviation)) with argument 640x480.Successfully parsed a group of options.Opening an output file: QSV.[NULL @ 00a67460] Unable to find a suitable output format for 'QSV'QSV: Invalid argument[AVIOContext @ 009db700] Statistics: 32768 bytes read, 0 seeks Second test, answers to your questions first: What CPU model number do you have? -> Core i5 2500 Do you have the latest Intel display drivers installed (not old drivers or default drivers provided by Microsoft). -> Yes Do you have any other graphics cards in your computer (such as nVidia or ATI?) -> AMD Radeon 7850 Series What version of Windows are you using? -> Windows 7 64 Bit Are you using the computer directly, or through remote desktop / VNC -> VNC and Teamviewer installed, VNC used while making test 1 and 2 but streaming also do not work if I'm not connected with a remote desktop c:\Program Files (x86)\q264>q264 -i "E:\testmovie.mkv" -nFrames 1000 -v -o test.mp42015-01-16 21:47:30.916: Info: Main: q264 Version 0.3.9 (beta) Built: Sep 22 2014 10:01:042015-01-16 21:47:30.916: Debug: Main: Scene cut detection is disabled.2015-01-16 21:47:30.916: Info: Main: No Intel display adapter, or it is not theprimary display adapter, so using DirectX 11.2015-01-16 21:47:30.963: Debug: Main: Auto-detecting characteristics of input file.2015-01-16 21:47:30.963: Debug: Main: Codec name: h2642015-01-16 21:47:30.963: Info: Main: H.264 input is currently decoded using ffmpeg libraries rather than Quick Sync hardware.2015-01-16 21:47:30.963: Debug: Main: Read frame rate 25.000 from input file.2015-01-16 21:47:30.963: Debug: Main: Read input size 1280x720 from input file.2015-01-16 21:47:30.963: Info: Main: Automatically calculated bitrate 31612015-01-16 21:47:30.963: Debug: Main: Using AVBR apparently requires SDK API version 1.62015-01-16 21:47:31.025: Debug: Main: Found non-Intel graphics driver: VNC Mirror Driver2015-01-16 21:47:31.025: Debug: Main: Found non-Intel graphics driver: AMD Radeon HD 7800 Series2015-01-16 21:47:31.025: Error: Main: No Intel HD graphics driver found. This requires an Intel CPU with Quick Sync capability and an Intel HD graphics driver. As for the 2nd test, it seems that my GPU can not be accessed for encoding. Will now check BIOS settings and report back... EDIT 3rd: Now noticed that I dont have an on-board graphic card. I thourght it has. Does that mean I can not access this part of the CPU for encoding on my board? Can that be the reason? There are no settings for graphics in my BIOS. EDIT 4th: Yes, thats the reason. I thought using the Intel driver Update checker from Intel website would ensure the installation of all importend drivers but it does not. It did not check for graphic drivers as my board does not support it. Because of this I'm not able to install latest graphic drivers. Sad. :-( Edited January 16, 2015 by Tranquil Link to comment Share on other sites More sharing options...
mjb2000 47 Posted January 17, 2015 Share Posted January 17, 2015 Hi Tranquil - Just realised you have a SandyBridge chip. The chip itself does have a GPU and can do QuickSync - The question is whether the motherboard supports it. I remember in the earlydays of SandyBridge you had to choose between using a motherboard which used the onboard graphics, with no option to add an external graphics card. Or choose a motherboard which could use (and required) a dedicated graphics card - but these motherboards effectively disabled the GPU on the chip - meaning it cannot be used. The logic was, if you have a dedicated graphics you are interested in performance and probably going to want to overclock your CPU, so it makes sense to disable the GPU to maximise power and reduce heat. Later chipsets and subsequent Ivybridge processors can simultaneously use a dedicated graphics card as well as the onboard GPU Link to comment Share on other sites More sharing options...
JunkStar 11 Posted January 17, 2015 Share Posted January 17, 2015 Great work guys! I am truly impressed by the amount of dedication to this project. The reason im lookin at this thread is that i have a puny little HP N40L that works flawless at the moment but i dread it when the time comes where i need to transcode anything since the CPU in this one is very weak. I am thinking about adding a GPU to offload the CPU for transcoding but i am not really keen of getting a Nvidia card since the motherboard has some AMD components and i think it could cause driver issues. So my question boils down to this. Any plan on adding support for AMD VCE? Link to comment Share on other sites More sharing options...
Tranquil 93 Posted January 17, 2015 Share Posted January 17, 2015 Atm I can't find a ffmpeg fork that support amd technology so I think this will not be realised in the near future. @mjb: from your point of view, what do you think which technology would you recommend? I'm thanking about buying an nvidia card which supports hardware encoding. Link to comment Share on other sites More sharing options...
mjb2000 47 Posted January 17, 2015 Share Posted January 17, 2015 Atm I can't find a ffmpeg fork that support amd technology so I think this will not be realised in the near future. @mjb: from your point of view, what do you think which technology would you recommend? I'm thanking about buying an nvidia card which supports hardware encoding. If you're happy with your current set-up then the cheapest nVidia card that supports NVENC seems a sensible way to go. Remember that on the cheaper GeForce cards there is a limit of 2 simultaneous streams (not sure of the limit for Quadro or Titan card). I'm not entirely sure that the cheapest card that supports NVENC is - My GTX 660 is pretty old, but it still costs around £170 (more than buying a new Intel chip and motherboard) I'm also not sure about the number of simultaneous streams that QuickSync can support. My box is going to run 24x7 so power consumption was a concern when building the original machine, hence I favoured the 10W Intel J1900. nVidia graphics cards are very powerful but will draw a fair amount of current, even at idle, which is what would put me off. Despite my preference for QuickSync there are some issues with the current implementation which need fixing once the guys working on the Libav project have found the solution. Any plan on adding support for AMD VCE? The AMD VCE does seem to be similar hardware to QS and NVENC - so there should be no reason it can't work. But as Trnquil says I've not seen any implementation of it in ffmpeg yet. I've also not seen it included in any opensource video conversion software (such as handbrake). I think if we started to see it in those tools then I suppose it wouldn't be long until it appeared in ffmpeg (or more accurately libav - whcih is incorporated in to ffmpeg) Link to comment Share on other sites More sharing options...
Spaceboy 2484 Posted January 17, 2015 Share Posted January 17, 2015 all working here on a i7 2600K 1 Link to comment Share on other sites More sharing options...
Hydro 5 Posted January 20, 2015 Share Posted January 20, 2015 I try with my NUC CPU i5 4250u Without qsync : cpu 95% video display smooth With qsync : cpu 95% video is very bad :/ I change encoding.xml and ffmepg.exe, did i forget something ? Link to comment Share on other sites More sharing options...
mjb2000 47 Posted January 20, 2015 Share Posted January 20, 2015 If you attach your transcode log I'll take a look. In theory could could stay the same if it's busy with other things like subtitles or audio processing, but hopefully you'd see the fps increase 10x (so although cpu usage is still high, performance has increased substantially) But I doubt this is what's happening, and actually what you've described is a problem. Look over the other tests I've also asked peopleto do and let me know the results of those Link to comment Share on other sites More sharing options...
porek388 0 Posted January 21, 2015 Share Posted January 21, 2015 i5 3570 On webbrowser working well. On android device (HTC One M7) not working My error log: http://pastebin.com/AfJZx4uV Link to comment Share on other sites More sharing options...
mjb2000 47 Posted January 21, 2015 Share Posted January 21, 2015 Hi pork. This is the application log. Can you please provide the transcode log. You can find it in the same folder. Normal for Web to work, see discussion of webm vs h264 in previous posts. Link to comment Share on other sites More sharing options...
porek388 0 Posted January 21, 2015 Share Posted January 21, 2015 Error on android client: http://pastebin.com/6xwDhv9c OK on mediabrowser addon on xbmc: http://pastebin.com/HaCgXcKR OK on android client: (software transcoding libx264): http://pastebin.com/ZqC1yXGj Link to comment Share on other sites More sharing options...
mjb2000 47 Posted January 21, 2015 Share Posted January 21, 2015 Error on android client: http://pastebin.com/6xwDhv9c OK on mediabrowser addon on xbmc: http://pastebin.com/HaCgXcKR OK on android client: (software transcoding libx264): http://pastebin.com/ZqC1yXGj Please take a look at the Wiki which explains how to set everything up. You need to use a replacement MediaBrowser.Api.dll (for now) which changes the rounding factor for QuickSync based encodes. Your log files show this has not been done correctly. It would also be handy to see the results of the other tests I have asked people to conduct. Let me know how you get on M Link to comment Share on other sites More sharing options...
dark_slayer 103 Posted January 22, 2015 Share Posted January 22, 2015 A general "specific" question . . . If I go with nvenc and have a need for three transcodes at a time . . . will the third go back to libx264 with the brute CPU method? Link to comment Share on other sites More sharing options...
mjb2000 47 Posted January 22, 2015 Share Posted January 22, 2015 At the moment no. I certainly think this is something we should look in to in the future, but I think @@Luke and others will need to consider how they integrate such a feature in to the code and the UI. So far MB does a lot of 'thinking' for you, which means you don't have to choose anything particularly difficult when setting up your server. I'm not sure how we can reliably test for NVENC and QS support and then automatically offer it through a simple "Use GPU" tick box. Personally, I think we might need to consider this an advanced feature, and have quite a few configuration options, some of which may not work at all if you set them incorrectly (for example, selecting NVENC when you actually don't have an NVENC compatible card). I'm not sure if it would be best for this advanced config just to prioritise your preferred encoding methods, or to actually put a numeric limit on each one. If we just prioritise, we'll need to do some work to look at the ffmpeg process, if it is failing, then roll-over to the next method. This would probably be best, say for example you have a non-MB process using NVENC, the second stream MB launches would fail. Link to comment Share on other sites More sharing options...
jabbera 23 Posted January 22, 2015 Share Posted January 22, 2015 (edited) I'm not sure if it would be best for this advanced config just to prioritise your preferred encoding methods, or to actually put a numeric limit on each one. If we just prioritise, we'll need to do some work to look at the ffmpeg process, if it is failing, then roll-over to the next method. This would probably be best, say for example you have a non-MB process using NVENC, the second stream MB launches would fail. In an ideal world you would first prioritize each hardware method supported with CPU at the bottom. Each option should have a # next to it for how many simultaneous encodes supported. MB would then track encodes running per method. This is a significant amount of work. Getting the changes in to support these methods will be the first step so people can start using them. Making them "easy" to use as suggested comes later. *** This is just my opinion. Someone else probably has a better idea. Edited January 22, 2015 by jabbera Link to comment Share on other sites More sharing options...
dark_slayer 103 Posted January 22, 2015 Share Posted January 22, 2015 Hmm, well I have an nvidia 660 in my gaming box, but I'm moving it to my server soon. I'm behind the times on this, but I just recently discovered how awesome limelight and steam in home steaming are, however this will put nvenc to work a lot of the time anyway I'll probably end up running the QS enable-when-using-dGPU "hack" and run QS for mediabrowser transcoding. I guess now the question goes the same for QS. Does it have a recognizable max simultaneous If we look just theoretically at the concepts of "prioritize" and "fail-safe" (fail-over or roll-over) a lot of complexity and questions have to follow - --is there an easy check that can be implemented to see how many transcodes are running? --can they be counted? --how would you prevent a failing/locked-out method on the fly? As usual I have questions without answers Link to comment Share on other sites More sharing options...
mjb2000 47 Posted January 22, 2015 Share Posted January 22, 2015 IEach option should have a # next to it for how many simultaneous encodes supported. MB would then track encodes running per method. This is a significant amount of work. Getting the changes in to support these methods will be the first step so people can start using them. The problem with this is that for some reason one of the sessions is being used by another process MB doesn't control then MB might try to use some GPU hardware thinking it should be available, when in reality it isn't. This is why we either need a reliable way of testing for availability, or just try it and catch any errors and launch another process if the primary method fails. Hmm, well I have an nvidia 660 in my gaming box, but I'm moving it to my server soon. I'm behind the times on this, but I just recently discovered how awesome limelight and steam in home steaming are, however this will put nvenc to work a lot of the time anyway I'll probably end up running the QS enable-when-using-dGPU "hack" and run QS for mediabrowser transcoding. I guess now the question goes the same for QS. Does it have a recognizable max simultaneous If we look just theoretically at the concepts of "prioritize" and "fail-safe" (fail-over or roll-over) a lot of complexity and questions have to follow - --is there an easy check that can be implemented to see how many transcodes are running? --can they be counted? --how would you prevent a failing/locked-out method on the fly? As usual I have questions without answers These are all great questions, unfortunately I must admit, I don't have an answer to any of them! As I've said a few times on this thread my involvement in this was mainly based on need rather than expertise. I pulled together a few bits of work from GitHub and came to a solution that works pretty well, most of the time - That falls below the usual reliability of MB, but it is probably enough for my low-level needs. If nothing else, I think this has highlighted the possibility of GPU transcoding and with this being one of the most viewed threads in the forum it shows there is a demand for it from the community. Hopefully someone a little more skilled than me can take it to the next level to improve the integration with MB and the reliability of the results? Just briefly, I was able to get three simultaneous transcodes using QS on my J1900 chip - I didn't actually try any more than that since by this point each transcode was at around 33fps - so even if possible, additional transcodes would have been too slow for realtime playback. 1 Link to comment Share on other sites More sharing options...
2plane 1 Posted January 25, 2015 Share Posted January 25, 2015 This is fantastic, so much of greatness has been built out of necessity and M you've done a fantastic job here. I've been following the QuickSync feature request on ffmpeg for a while but quite disappointed in its progress, Plex continually state that their waiting for quicksync support to be included in the release version of ffmpeg before including it in their release software. Great to see another viable option may now be available to me. I've followed the steps in the wiki but cannot get ffmpeg working on my laptop i3 3217u but have successfully used q264 with the script mentioned earlier Confusingly while testing your dll got overwritten by automatic updates a couple of times. Manually running the command: ffmpeg -t 30 -i "D:\MyVideo.avi" -map 0:0 -c:v h264_qsv -b: 800000 -s 640x480 -report -loglevel debug QSV-Test.mkv Results in this error (log attached), I've googled for similar errors with no success: [h264_qsv @ 051f21a0] MFXVideoCORE_SyncOperation(): -17 Video encoding failed http://pastebin.com/embed_js.php?i=rj7X6nPU Does anyone know what this error message represents? Cheers, 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