# Encoding and all that on GPU



## Gears (May 9, 2013)

why not make it so all the hard work can be pushed off onto any 2ad installed video card?

I have 2 5770's in crossfire, but I would be more then happy just gaming on the first gpu if the 2ad gpu was doing the heavy work of encoding and all that stuff leaving me with a nearly free cpu and no dips in fps.


----------



## Warchamp7 (May 9, 2013)

Video cards can't encode.


----------



## Gears (May 9, 2013)

Warchamp7 said:
			
		

> Video cards can't encode.



http://en.wikipedia.org/wiki/ATI_Avivo

;)


----------



## Warchamp7 (May 10, 2013)

Video cards can't encode well, if at all.*

Also, the only thing about encoding in your link is not at all relevant to real-time encoding.


----------



## Jim (May 10, 2013)

I don't know about avivo technology, but palana just implemented a quicksync encoder on the latest OBS git, so that's a start at least


----------



## Andypro (May 11, 2013)

Jim said:
			
		

> I don't know about avivo technology, but palana just implemented a quicksync encoder on the latest OBS git, so that's a start at least



indeed! thank you palana for all of your hard work in doing the initial implementation of quick sync. Hopefully this will get into a test build soon so that I can do some comparison tests between x 264 and quick sync.


----------



## Tak0r (May 12, 2013)

But that's more like a hardware implementation of h264 rather than encoding on the gpu!


----------



## semiAeckt (Oct 28, 2013)

Nvidia Geforce 600 series have a NVENC - hardware h264 encoder. Here is a link to SDK: https://developer.nvidia.com/nvidia-video-codec-sdk


----------



## dodgepong (Oct 28, 2013)

There's a lengthy discussion about NVENC here: viewtopic.php?f=7&t=5036

There seem to be some licensing issues with NVENC but it doesn't seem to be clear.


----------



## Dubardo (Oct 29, 2013)

Any update on the ShadowPlay support? I'd really like my 670 to do all the hardwork.


----------



## dodgepong (Oct 29, 2013)

I guess people aren't getting the message. I'll try to explain it more.

Everyone's all hyped up today about the release of nVidia's ShadowPlay. Shadowplay is a piece of software that makes use of the built-in encoder on nVidia Kepler GPUs called NVENC (NVidia ENCoder).

If OBS were to leverage nVidia GPUs to do encoding, it would use NVENC, not ShadowPlay. However, it seems that the NVENC SDK is still very much in beta and it appears that licensing issues may be getting in the way of further exploration. It's hard to say at this point. Please refer to the thread I linked to earlier to follow the current discussion about NVENC to-date.


----------



## freehuhn (Nov 1, 2013)

shadowplay is use the nvenc that means the new driver got the "key" so it should be free now. the current beta build only supports quadro cards that's the problem adobe preime already got a working plugin and people talked how good it works.

but what's about this:
viewtopic.php?f=7&t=8263

this is tested with common cards.


----------



## Pimpmuckl (Nov 2, 2013)

I don't want to go too much off-topic, but what about the new R9 290x which sports a h264 encoder?

Is there even an SDK out there to use it? Edit: Looks like there is with VCE, didn't saw the thread sorry.


----------



## computerquip (Nov 2, 2013)

Perhaps VAAPI might be of use? I believe there's alternatives for Windows as well.

http://en.wikipedia.org/wiki/Video_Acceleration_API


----------



## dodgepong (Nov 2, 2013)

According to that wiki page, it only supports h264 encoding on the main profile and not the high profile, which is kind of sad. It also seems pretty limited in terms of hardware support. If you have a supported Intel GPU, you might as well just use QuickSync instead.


----------



## computerquip (Nov 9, 2013)

Herm... just realized most of these are meant for decoding anyways, not encoding. 

Perhaps encoding via the GPU should be left up to the codec we use (for instance, an OpenCL implementation would not be easy and definitely a codec-specific task). 

Never the less.. nvidia has NVENC. I'm not sure if AMD has anything. Maybe Mesa has something as well.


----------



## freehuhn (Nov 10, 2013)

> Never the less.. nvidia has NVENC. I'm not sure if AMD has anything. Maybe Mesa has something as well.



for some reasons my posting are kinda ignored...


amd nvenc version:
http://obsproject.com/forum/viewtopic.php?f=7&t=8263


----------



## moraldino (Nov 11, 2013)

Even if it were possible, wouldnt the GPU be a bad place to have encoding on if you're playing games?

So far, I think Quicksync is one of the best choices for local recording, and two pc setup with, or, without capture card for live.


----------



## freehuhn (Nov 13, 2013)

it's the perfect place thinks like nvenc and vce arn'#t using the shader is a special part in the gpu. there is no real impact on the in game fps. the quality of nvenc looks impressive and it is tweak able with ref frames b frame and so on.

the ipat with nvenc it's below 5 %.

with quicksync the gpu shader are used so if u run the game on the intel gpu too u got huge fps problems.

it' the same with video decoding on nvidia gpu they don't run on the shaders. amd doesn't  have a video engine.


----------

