After Effects not using CPU even with simple video conversion.
I'm very new to this forum and this is my first post. the reason i'm here is because I am confused about something which I hope someone could solve my problem.
When I export the video (which is 4K in this example) from Premier Pro, it utilize the cpu well and it takes 4 minutes to convert the video to H.264 format and anything default matching the source footage.
now if I do the same with Adobe Encoder, it behaves the same and utilize the cpu well and takes almost same time to convert,
but the problem is if I use the same video in after effects, create new composition from the source file and do nothing else but just export it to Media Encoder and every settings is the same as with previous example. It takes more time almost 20 minutes and it is using CPU 40% to 50%.
Can someone please guide me telling, what is wrong with the After Effects?
I have read many forums telling that AE is more complex and it has to do computations, but my concern is that, Im not using any effects or else, am jut converting the video, and isn't it logical that the same video should take the same time to convert? or at lease it should utilize the full CPU, because if its only converting the video file, it should only depend on CPU.
my PC is (in my thinking) capable to handle this kind of job, i have build it myself with following components.
Asus X99 gaming mothorboard.
intel i7 6800k CPU
Samsung 500GB Evo M.2 SSD on PCI x slot.
EVGA GTX1050 ti GPU
windows 7 64bit ultimate
After Effects CC 2017
Premiere Prp CC 2017
Media Encoder CC 2017
also note that it is not about 4K video or anything. This problem is there even if I use any video file of any resolution or size, The difference and AE not utilizing full CPU.
please help. Thanks (sorry for bad english)
No it's not the 4K that's doing it.
The best pipeline for AE and encoding is to first render out of AE as either an uncompressed format or something that is virtually lossless like ProRes or BlackMagic. Then take that rendered movie and use another tool to encode.
This is especially true with H264 which really needs to wade through every frame first to see what every frame looks like in order to get the best compression/size ratio. AE by it's nature doesn't know what's coming up or what the last frame looked like, it takes each frame as it comes. So it can't really do the 2 pass thing efficiently.
Premiere is also designed to cache elements and mix elements on the fly so you don't have to wait for dissolves which require two streams at the very least.
Because AE assumes that:
1) there will be more streams of content than any reasonable processor or card or codec could handle in real time and will have effects that require subpixel sampling and 3D matrix math and 3rd party effects, so it takes one frame at a time, and
2) there are better tools to be doing editing and compressing in. Making a product do all things for all people leads to an overly complex interface and a result that isn't as good as one that specializes.
While you can do many of things that Premiere can do and Encoder can do inside of AE, it's not the ideal program for it. The same reason the Premiere doesn't have the flexibility to do the things AE can do is the same reason that AE is a more complex program (or perhaps differently complex) so that it can do highly specialized things, but can't do something as simple as dissolve two layers in real time. And compressing isn't one of those features either.
Apart from saving the drive space (and drive space is cheap now) I can't see a good reason for a render and compress pipeline out of AE. Do you really want to waste extra time with compressing a shot that isn't right yet?
You are right though, given what AE is being tasked with I don't find it takes full advantage of the procs or threads or even ram. There was a time that no matter how much ram you had AE could only use a few gigs of it. I have a feeling this is an infrastructure issue. Remember Adobe bought this program (it used to be called COSA) and they are probably still dealing with legacy code that is cheaper to piggy back on than rip it out and start again. Is it perfect? Not by a very long shot. But given the price and what it can do...
If you must encode from AE, set a watch folder for your compression software of choice and have it start it's thing once AE has finished the render. If you really need to increase your speed use FFmpg. After using it you will have the same reaction to its speed as you are having with AE vs premiere - why isn't everything this fast? Plus you can transcode from one format to another without creating an intermediary format and without losing quality.
my concern is not only about speed, i was just experimenting with AE and PP the difference, and i want to understand what hardware recourse AE needs to do its job, because even if i export a single straight video file and export it, it takes more than expected also it is not using cpu more than 50% neither RAM is used and M.2 SSD is also fairy fast. so what limits it?
and also if i export to uncompressed file it almost takes same time but with less cpu usage.
Perhaps AE isn't pegging the procs because it's not doing pesky routines like "memory management" or "cache clearing" - yes I'm taking to you Adobe!
Here is my guess as to what's going on.
In PP you are able to hit play and it just plays. Right? We'll not so fast. You are only able to do this if you are in a codec that has the wizardry to shepherd all those pixels through in a way that will allow that to happen at 30fps. Try it. Import an HD file made of umcompressed tiffs and see how fast it can play without rendering. So I would call PP codec clean - it can work with and pass through the codec you are using.
Because AE is expecting to composite, color correct, distort and use alphas, it only makes sense to do this with uncompressed pixels. To do this with a file that has a codec on it (I know, technically everything is a codec- even raw) would mean that the file wouldn't unpack correctly, there would be missing information, and the color space you would be working in would not allow even the simplest color correction before clipping occurred.
So AE takes whatever it's given (even H24) and turns it into pixels in the color space set for the AE working enviro. And thats a lot of work to slug through pixel by pixel. But that still doesn't explain the proc not being used. I mean, why not harness more resources to get that stuff through quicker?
And just because so many people don't know - a high end 264 file is 30k mb per second or just under 4 mB per second. Uncompressed HD (in 8 bit, 30fps) is 186 mb per second. PP can deal with the compressed one at 4mB but AE has to deal with all the pixels at 186 mB. That's almost a 5000 percent difference.
I have a feeling the lack of processor interest in what you are rendering is due to the threaded nature of the app. Obviously it should be more multi threaded, but can it be? With elements having to be recombined at the end of the crunching and be aware of other bits of the image before deciding on final antialiasing and layer depth, perhaps that's a harder task than just splitting up the job. Keep in mind to that it has to do one layer and then add in the next - rinse, repeat. Perhaps the individual jobs are so simple. before advancing to the next, are so simple there is no way to saturate the processor.
For years we lamented the fact there was no good paint solution for AE. We dreamed of adobe someday buying a world class paint package and incorporating the two. (And Adobe bought Pshop from the brother's Knoll a decade before). A compositing package without a good paint is just silly. But there it is. If they couldn't combine their own products perhaps there is some coding law of nature they can't get past. Or perhaps its just that they could see like we did that they would end up with only one product to sell. Rumor has it that they bought Cosa (now AE) to get the layering tech for Pshop. So cross pollination can happen.
When working on Flame or Inferno you don't have to cache the single clip you are working with, you can just play it - and that's with a massive EXR or other cine file, granted, there is some codec magic going on there to let you even see it on your lowly 8 bit screen. But even on a higher bit display it can still play real time. So it is doable in a compositing type environment.
I don't use Nuke or Fusion or HitFilm so I'd be curious to know how fast they are and how well they saturate the bus. AE is a product for the masses and just so happens to be good enough for professional use, so perhaps it hasn't had the development it should have because they can't sell it for the astronomical prices Discreet used to get for Flame. I think it's survived because of it's robust plug in set, lack of a secret handshake to write plug ins for, and it's "in the moment" flexibility. In Flame if you want to pass something through another clip's matte you have to go make (process) that matte first. In Ae you just layer it properly an ta da!
Thanks for the reply.
I dont have much technically knowledge about AE but what I could conclude from your reply is that.
AE can't be faster than this, because It has to uncompressed all video data than do its job, and even then it couldn't utilize all the CPU power because its way of flow is serial type and not parallel type. so it can't use all the hardware in same time.?