pappaq 8 Posted November 25, 2016 Posted November 25, 2016 (edited) Hey guys, first off big thanks to the emby team for providing this excellent peace of software! Now to my case! I've got the i3 2120t CPU - the integrated Intel HD 2000 GPU should support QSV - but I can't get QSV running. The newest build of Zeranoe's ffmpeg is installed on my server and emby is pointing at it. The Server runs Windows 8.1. Before I lose more words: here are the serverlog, the transcodelog and a capture of my transcoding options. cheers Edited November 25, 2016 by pappaq
Luke 42077 Posted November 25, 2016 Posted November 25, 2016 Hey guys, first off big thanks to the emby team for providing this excellent peace of software! Now to my case! I've got the i3 2120t CPU - the integrated Intel HD 2000 GPU should support QSV - but I can't get QSV running. The newest build of Zeranoe's ffmpeg is installed on my server and emby is pointing at it. The Server runs Windows 8.1. Before I lose more words: here are the serverlog, the transcodelog and a capture of my transcoding options. cheers Hi, try this version of ffmpeg and see if it makes a difference: https://github.com/MediaBrowser/Emby.Resources/tree/master/ffmpeg/windows Thanks. 1
Tur0k 148 Posted November 25, 2016 Posted November 25, 2016 Hi, try this version of ffmpeg and see if it makes a difference: https://github.com/MediaBrowser/Emby.Resources/tree/master/ffmpeg/windows Thanks. I have been having a little trouble with rendering on tablets in network and connected via WAN. I had assumed it was my hardware. I will give this a try. Sent from my iPhone using Tapatalk
Guest plexman Posted November 26, 2016 Posted November 26, 2016 Hello I have i7 6700K Ubuntu 15.04 Intel HD 530 2GB MB ASUS H110M-K 8GB Can somebody help me to install ffmpeg with gpu transcoding, I will pay for time spent on it https://emby.media/community/index.php?/topic/31174-hardware-encoding-on-ubuntu-server/?p=369730
pappaq 8 Posted November 29, 2016 Posted November 29, 2016 Hi, try this version of ffmpeg and see if it makes a difference: https://github.com/MediaBrowser/Emby.Resources/tree/master/ffmpeg/windows Thanks. This version makes no difference. The stream doesn't even start, when QSV is enabled. Same problem as with the old version. Any other suggestions?
pappaq 8 Posted November 29, 2016 Posted November 29, 2016 Have you tried without qsv enabled? Yep, works just fine.
pappaq 8 Posted December 1, 2016 Posted December 1, 2016 Yep, works just fine. Do you have an idea what is probably wrong with my configuration? I've got enabled the iGPU and have installed the newest drivers I could find but emby won't transcode with QSV enabled.
Luke 42077 Posted December 1, 2016 Posted December 1, 2016 I'm not sure yet. That's why we call it an expiremental feature for now. There are some situations and environments where it may not work and we are looking for community help in order to trace down why.
pappaq 8 Posted December 1, 2016 Posted December 1, 2016 I'm not sure yet. That's why we call it an expiremental feature for now. There are some situations and environments where it may not work and we are looking for community help in order to trace down why. It seems like the HD2000 GPUs don't support Open CL and therefore no ffmpeg with QSV enabled. I'm buying a newer CPU for my socket 1155 mobo and will report back, if it works with a HD4000 chip.
Heckler 147 Posted December 1, 2016 Posted December 1, 2016 (edited) Not gonna read 45 pages of comments (skimmed a few), so apologies if this has already been covered... Just don't have the time for hundreds of comments, especially at this time of year. Will this work with HEVC x265, as the vast majority of stuff I am adding is being done in this codec, the superiority of it over everything else became very clear at the end of last year and I no longer use anything else. I can get 1080p quality rips in a filesize that's half of a 720p rip using x264.. and that's moving from stereo AAC to 5.1 AC3 too. But the transcoding of x265 does make for a greater strain on the server, and trying to stream 2 x265 streams at the same time is very difficult on a quad core AMD FX@4.2ghz. I've noticed massive improvements in the quality of the browser streams of x265 stuff in recent builds... so the option to move some of the transcoding to a GPU or making it more efficient with QS is something I find very appealing. Is it possible, or still something that may come later? if it is... any links to guides to show me how to set it up properly. I noticed options for this kind of thing in the latest official build... can I just switch them on, or do I need something extra? Edited December 1, 2016 by Heckler
pappaq 8 Posted December 1, 2016 Posted December 1, 2016 Not gonna read 45 pages of comments (skimmed a few), so apologies if this has already been covered... Just don't have the time for hundreds of comments, especially at this time of year. Will this work with HEVC x265, as the vast majority of stuff I am adding is being done in this codec, the superiority of it over everything else became very clear at the end of last year and I no longer use anything else. I can get 1080p quality rips in a filesize that's half of a 720p rip using x264.. and that's moving from stereo AAC to 5.1 AC3 too. But the transcoding of x265 does make for a greater strain on the server, and trying to stream 2 x265 streams at the same time is very difficult on a quad core AMD FX@4.2ghz. I've noticed massive improvements in the quality of the browser streams of x265 stuff in recent builds... so the option to move some of the transcoding to a GPU or making it more efficient with QS is something I find very appealing. Is it possible, or still something that may come later? if it is... any links to guides to show me how to set it up properly. I noticed options for this kind of thing in the latest official build... can I just switch them on, or do I need something extra? Without NVENC or QSV enabled it should work fine. The only hardware that supports H265 are the newest generation of nvidia cards and Kaby lake CPUs
Heckler 147 Posted December 1, 2016 Posted December 1, 2016 (edited) Without NVENC or QSV enabled it should work fine. The only hardware that supports H265 are the newest generation of nvidia cards and Kaby lake CPUs Not quite sure what you mean there... it does work as it stands... using media centre in W7 on the server is native, so no transcoding... streaming to the phone/tablet/tv box or TV... or to the browser on another PC also works, but transcoding is using 95%+ of the CPU just for a single stream. I can understand the browser not supporting it yet as I think that's webm... but any way to streamline transcoding and making it more efficient would be great... just need to know how so I can test it out. As it stands, I can only stream one x265 file at a time... a second file can only be played natively sans any transcoding or the system just grinds to a halt... All of my x264 video is fine... and there's plenty of it still as it's gonna take me a very long time to replace hundreds of TV shows and a couple of thousand movies with x265. As it stands, I'm running low on HD space on my media server (16TB) and have roughly 3-4 months left before I'm maxed out... New hard drives for storage are still ridiculously expensive when you need to replace them with 6TB or larger drives (pointless replacing 2-3TB ones with 4TB as the gains in space for the price are simply not worth it)... So with space at a premium, replacing existing 1080p/720p rips with higher quality but smaller 1080p ones... will help me extend my storage space. I was planning on a gaming rig upgrade next year... waiting for the next gen socket from AMD to see what they do (better VFM with AMD), so a new vid card would also be in the pipeline to replace my AMD 280X... and nVidia was a contender. Current vid card in my mediaserver is only a 1GB AMD 5670... which is more than enough at the moment for what it does... will swap the 280X into it after the upgrade for more grunt. Edited December 1, 2016 by Heckler
eTomm 6 Posted December 2, 2016 Posted December 2, 2016 Not quite sure what you mean there... it does work as it stands... using media centre in W7 on the server is native, so no transcoding... streaming to the phone/tablet/tv box or TV... or to the browser on another PC also works, but transcoding is using 95%+ of the CPU just for a single stream. I can understand the browser not supporting it yet as I think that's webm... but any way to streamline transcoding and making it more efficient would be great... just need to know how so I can test it out. As it stands, I can only stream one x265 file at a time... a second file can only be played natively sans any transcoding or the system just grinds to a halt... All of my x264 video is fine... and there's plenty of it still as it's gonna take me a very long time to replace hundreds of TV shows and a couple of thousand movies with x265. As it stands, I'm running low on HD space on my media server (16TB) and have roughly 3-4 months left before I'm maxed out... New hard drives for storage are still ridiculously expensive when you need to replace them with 6TB or larger drives (pointless replacing 2-3TB ones with 4TB as the gains in space for the price are simply not worth it)... So with space at a premium, replacing existing 1080p/720p rips with higher quality but smaller 1080p ones... will help me extend my storage space. I was planning on a gaming rig upgrade next year... waiting for the next gen socket from AMD to see what they do (better VFM with AMD), so a new vid card would also be in the pipeline to replace my AMD 280X... and nVidia was a contender. Current vid card in my mediaserver is only a 1GB AMD 5670... which is more than enough at the moment for what it does... will swap the 280X into it after the upgrade for more grunt. I am following the h265 topic too in ffmpeg and I could not find yet any evidence that there is an encoder ready to use for it apart the x265 that is still in heavy development. In everycase your problem seems related to streaming, and streaming h265 as h264 should be supported from ffmpeg. I would check a bit more, but was like this even the last time I read something.
pappaq 8 Posted December 2, 2016 Posted December 2, 2016 Not quite sure what you mean there... it does work as it stands... using media centre in W7 on the server is native, so no transcoding... streaming to the phone/tablet/tv box or TV... or to the browser on another PC also works, but transcoding is using 95%+ of the CPU just for a single stream. I can understand the browser not supporting it yet as I think that's webm... but any way to streamline transcoding and making it more efficient would be great... just need to know how so I can test it out. As it stands, I can only stream one x265 file at a time... a second file can only be played natively sans any transcoding or the system just grinds to a halt... All of my x264 video is fine... and there's plenty of it still as it's gonna take me a very long time to replace hundreds of TV shows and a couple of thousand movies with x265. As it stands, I'm running low on HD space on my media server (16TB) and have roughly 3-4 months left before I'm maxed out... New hard drives for storage are still ridiculously expensive when you need to replace them with 6TB or larger drives (pointless replacing 2-3TB ones with 4TB as the gains in space for the price are simply not worth it)... So with space at a premium, replacing existing 1080p/720p rips with higher quality but smaller 1080p ones... will help me extend my storage space. I was planning on a gaming rig upgrade next year... waiting for the next gen socket from AMD to see what they do (better VFM with AMD), so a new vid card would also be in the pipeline to replace my AMD 280X... and nVidia was a contender. Current vid card in my mediaserver is only a 1GB AMD 5670... which is more than enough at the moment for what it does... will swap the 280X into it after the upgrade for more grunt. Ok, what I tried to say was, that if you want to transcode x265, hardware accelerated, you need the proper hardware. And when you say it doesn't transcode HEVC to x264 please have a look at the emby dashboard, when you stream to the browser. It does transcode to x264 and that eats up lot of CPU power. 1
Heckler 147 Posted December 2, 2016 Posted December 2, 2016 Ok, what I tried to say was, that if you want to transcode x265, hardware accelerated, you need the proper hardware. And when you say it doesn't transcode HEVC to x264 please have a look at the emby dashboard, when you stream to the browser. It does transcode to x264 and that eats up lot of CPU power. I think I misunderstood, as I thought you were saying that x265 was supported via the browser. Was asking about android boxes in another thread and someone linked to a little W10 based box that according to specs is x265 ready in hardware... Which may be a solution for one of the TV's to ease the pressure on the server and allow 2 x265 streams at the same time. But anything that can ease the burden on my server until such a time I can upgrade it (won't be for a few years as I only did it 2yrs ago)... at best, I'll upgrade the quad core CPU to a 6 core... although a quad 4.2ghz replaced with a 6 core 3.5ghz probably won't actually improve speeds and I'd be better of with a new vid card if some of the transcoding could be offloaded to that.
pappaq 8 Posted December 4, 2016 Posted December 4, 2016 It seems like the HD2000 GPUs don't support Open CL and therefore no ffmpeg with QSV enabled. I'm buying a newer CPU for my socket 1155 mobo and will report back, if it works with a HD4000 chip. I've got the new CPU installed and voilà it works like a charm. Problem solved. Some stutters here and there which I will check on later, but all in all it works now.
pappaq 8 Posted December 5, 2016 Posted December 5, 2016 Hi, try this version of ffmpeg and see if it makes a difference: https://github.com/MediaBrowser/Emby.Resources/tree/master/ffmpeg/windows Thanks. After trying to fix playback in the android app and playback issues on the webclients I came back to this post of yours and the right ffmpeg version is essential. Everything works nicely now. Thanks again.
bxsteez 3 Posted December 17, 2016 Posted December 17, 2016 I've been poking around the forums to see if this has been answered so forgive me if I've missed it. I'm trying to transcode a 10bit HEVC file using the my GTX 1070 and I keep getting errors of No NVENC device in the ffmpeg log. I'm not sure why since I'm sure the 1070 supports hw decoding of 10bit HEVC. I try to play it on my Nvidia Shield and the file doesn't even play. Should this be possible?
Waldonnis 148 Posted December 18, 2016 Posted December 18, 2016 (edited) I've been poking around the forums to see if this has been answered so forgive me if I've missed it. I'm trying to transcode a 10bit HEVC file using the my GTX 1070 and I keep getting errors of No NVENC device in the ffmpeg log. I'm not sure why since I'm sure the 1070 supports hw decoding of 10bit HEVC. I try to play it on my Nvidia Shield and the file doesn't even play. Should this be possible? The 1070 should support both hardware decoding and encoding of 10bit HEVC, but if it's giving you an error saying that it can't find an NVENC device, then the problem may be somewhere else. Double-check the driver installation for starters, as this is the most common reason for that type of error in my experience. You can also try transcoding a non-HEVC file (h.264 is easy) using the hardware encoder to make sure the issue isn't specific to ffmpeg's nvenc_hevc encoder. FYI, 10bit pixel formats weren't supported in ffmpeg's NVENC implementation until fairly recently (circa August, I believe). I also don't know if the few issues with the submitted patch were ever resolved (I think there was an issue with yuv420p10, but it's been a few weeks since I read about it) or how much of it was accepted. It may be a work in progress still, since it seems there may have been more involved to add Main10 support. Either way, I would try one of the latest static Zeranoe builds manually to see if the problem is with ffmpeg or on the driver side. If you're not too handy with ffmpeg options, just let me know so I can PM or post some command lines that may be useful for testing this. Sadly, I don't have a Pascal card (yet!) to double-check this. Hoping that will change soon. I've been researching some potential computer upgrade options (1070 or 1080 is leading that race) over the past few weeks, which is why I know about that 10bit patch info. Wacky timing! Edit: One more thing - can we see the media info on the file in question? I doubt it's the file, but just to eliminate a few more potential factors... Edited December 18, 2016 by Waldonnis
bxsteez 3 Posted December 18, 2016 Posted December 18, 2016 (edited) The 1070 should support both hardware decoding and encoding of 10bit HEVC, but if it's giving you an error saying that it can't find an NVENC device, then the problem may be somewhere else. Double-check the driver installation for starters, as this is the most common reason for that type of error in my experience. You can also try transcoding a non-HEVC file (h.264 is easy) using the hardware encoder to make sure the issue isn't specific to ffmpeg's nvenc_hevc encoder. FYI, 10bit pixel formats weren't supported in ffmpeg's NVENC implementation until fairly recently (circa August, I believe). I also don't know if the few issues with the submitted patch were ever resolved (I think there was an issue with yuv420p10, but it's been a few weeks since I read about it) or how much of it was accepted. It may be a work in progress still, since it seems there may have been more involved to add Main10 support. Either way, I would try one of the latest static Zeranoe builds manually to see if the problem is with ffmpeg or on the driver side. If you're not too handy with ffmpeg options, just let me know so I can PM or post some command lines that may be useful for testing this. Sadly, I don't have a Pascal card (yet!) to double-check this. Hoping that will change soon. I've been researching some potential computer upgrade options (1070 or 1080 is leading that race) over the past few weeks, which is why I know about that 10bit patch info. Wacky timing! Edit: One more thing - can we see the media info on the file in question? I doubt it's the file, but just to eliminate a few more potential factors... I am definitely not handy with ffmpeg but I did keep poking around the world of google and I read that the build is hardcoded to 8bit or 10bit. Is that still true? I was able to transcode h264 file without an issue and I'm pretty sure it was being done by the GPU. It's just the yuv420p10le pixel format that gives me trouble I attached the media info. EDIT: I thought I attached the file but forgot to click attach this file lol Edited December 18, 2016 by bxsteez
Waldonnis 148 Posted December 18, 2016 Posted December 18, 2016 I am definitely not handy with ffmpeg but I did keep poking around the world of google and I read that the build is hardcoded to 8bit or 10bit. Is that still true? I was able to transcode h264 file without an issue and I'm pretty sure it was being done by the GPU. It's just the yuv420p10le pixel format that gives me trouble I attached the media info. You can compile ffmpeg for both, but it's a serious pain to do so and probably why none of the mainstream builds have bothered to do so. Mostly, that applies to the software encoders, though, as ffmpeg itself doesn't care. "libx264" and "libx265" encoders are actually library versions of the x264 and x265 stand-alone encoders, and both definitely require special compilation for 10 and 12bit support. What I'm not sure is just how NVENC's interface to ffmpeg is implemented, but it's likely that it shouldn't need special compilation - just that the code is in ffmpeg to talk to the driver properly when it comes to new options. yuv420p10le may indeed be an issue, as I don't think that part of the patch was accepted (it worked, but there were some technical implementation reasons that caused it to be rejected). It may have since been worked on, but I would have to dredge the mailing list and commit logs again to find out. If it's still not suported, it sucks since yuv420p10le is pretty widely used. If you want to double-check that the GPU was used in your successful test, look for the ffmpeg command line in the transcode log and see if you can find any reference to NVENC in there (either a -vcodec or -codec option...or maybe something in the stats output that mentions nvenc). "Speed" isn't a bad indicator as well, since CPU/software transcoding would be significantly slower and pretty obvious (especially if the source was HEVC 2160p). I do compile my own ffmpeg with 10/12bit support locally, but can't redistribute it due to license restrictions on one of the audio encoders that I include in my build. If the problem isn't only with the yuv420p10le pixel format, I may be able to prune out the audio encoder and build a binary to test with, but it may take a few days for me to get that set up and done (stupid holidays). Oh, one other thing - can you run the command below and PM the output to me? I'm mostly curious to see what I would have to work with and what's been implemented so far if I snag a new Pascal card this month, but am also trying to think of a way to work around the apparent limitation (more info is always a good thing): ffmpeg -h encoder="nvenc_hevc"
bxsteez 3 Posted December 18, 2016 Posted December 18, 2016 You can compile ffmpeg for both, but it's a serious pain to do so and probably why none of the mainstream builds have bothered to do so. Mostly, that applies to the software encoders, though, as ffmpeg itself doesn't care. "libx264" and "libx265" encoders are actually library versions of the x264 and x265 stand-alone encoders, and both definitely require special compilation for 10 and 12bit support. What I'm not sure is just how NVENC's interface to ffmpeg is implemented, but it's likely that it shouldn't need special compilation - just that the code is in ffmpeg to talk to the driver properly when it comes to new options. yuv420p10le may indeed be an issue, as I don't think that part of the patch was accepted (it worked, but there were some technical implementation reasons that caused it to be rejected). It may have since been worked on, but I would have to dredge the mailing list and commit logs again to find out. If it's still not suported, it sucks since yuv420p10le is pretty widely used. If you want to double-check that the GPU was used in your successful test, look for the ffmpeg command line in the transcode log and see if you can find any reference to NVENC in there (either a -vcodec or -codec option...or maybe something in the stats output that mentions nvenc). "Speed" isn't a bad indicator as well, since CPU/software transcoding would be significantly slower and pretty obvious (especially if the source was HEVC 2160p). I do compile my own ffmpeg with 10/12bit support locally, but can't redistribute it due to license restrictions on one of the audio encoders that I include in my build. If the problem isn't only with the yuv420p10le pixel format, I may be able to prune out the audio encoder and build a binary to test with, but it may take a few days for me to get that set up and done (stupid holidays). Oh, one other thing - can you run the command below and PM the output to me? I'm mostly curious to see what I would have to work with and what's been implemented so far if I snag a new Pascal card this month, but am also trying to think of a way to work around the apparent limitation (more info is always a good thing): ffmpeg -h encoder="nvenc_hevc" My logs have the following [h264 @ 0000000002f07a40] Warning: not compiled with thread support, using thread emulation [dca @ 0000000001bfe600] Warning: not compiled with thread support, using thread emulation [h264_nvenc @ 0000000001c0f2e0] Warning: not compiled with thread support, using thread emulation [aac @ 0000000001c0dc60] Warning: not compiled with thread support, using thread emulation Output #0, mpegts, to 'E:\transcode temp\transcoding-temp\7a6cdf6e9860bc210f8e0d799d16128d.ts': Metadata: encoder : Lavf57.60.100 Stream #0:0: Video: h264 (h264_nvenc) (Main), yuv420p, 3840x2160 [SAR 1:1 DAR 16:9], q=-1--1, 39459 kb/s, 23.98 fps, 90k tbn, 23.98 tbc (default) Metadata: encoder : Lavc57.68.100 h264_nvenc Side data: cpb: bitrate max/min/avg: 39459629/0/39459629 buffer size: 78919258 vbv_delay: -1 Stream #0:1: Audio: aac (LC), 48000 Hz, stereo, fltp (24 bit), 128 kb/s (default) Metadata: encoder : Lavc57.68.100 aac Stream mapping: Stream #0:0 -> #0:0 (h264 (native) -> h264 (h264_nvenc)) Stream #0:1 -> #0:1 (dts (dca) -> aac (native)) I am going to try the command you mentioned tonight and report back
Waldonnis 148 Posted December 18, 2016 Posted December 18, 2016 Yep, looks like it was using the hardware encoder, which is a good sign. At least we know that it does work on something and communicates with the card/driver. Depending on what the encoder supports, I can generate a small test video file (with just colour bars) to try other pixel formats like yuv444p10le or yuv422p10le. If it only supports the Main10 profile, though, it won't work because that profile is restricted to 4:2:0 chroma sampling. I'll dig in some of NVidia's docs and see what I can find (either way, I'm adding some new samples to my sample library).
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