2 Replies Latest reply on May 25, 2015 6:59 PM by Colin Holgate

    Extremely poor framerate when exporting a movie

    alank6989697

      Hello there,

      I am currently making an animation which needs to be 60 fps and can't be lower. This animation does contain a lot of symbols which have nested animations so I am aware it would eat up a lot of processing power when exporting. The file type I'm trying to export can either be .avi or .mov. However, when the export has finished, the framerate in some areas are dreadful! The lowest framerate I got ranged between 3-6 fps which of course does not look at all good. I've tried exporting in 1 fps and speeding it up to 60fps in After Effects but the issue happens yet again somehow. The areas where there is lag in the framerate will even drop to a ridiculous 0.2 fps. Can anyone help me how to stop this annoying issue as the frame rate is recorded almost as if it was a webcam but it is starting to get irritating as I need to meet a deadline in this animation!

      Feel free to ask any questions,

      Thank you for your time reading this

        • 1. Re: Extremely poor framerate when exporting a movie
          kglad Adobe Community Professional & MVP

          as you might imagine there's no simple one-step fix-all.  in fact, it may be there is no fix possible if what you're doing is complex enough.

           

          there are some general guidelines however:  if you're only moving objects on-stage (left,right,up,down), you can realize a significant benefit from enabling the object's cacheAsBitmap property.

           

          and there are many other possible things you can do.  here's a list from Flash Game Development: In a Social, Mobile and 3D World

           

           

          Optimization Techniques

           

          Unfortunately, I know of no completely satisfactory way to organize this information. In what follows, I discuss memory management first with sub-topics listed in alphabetical order. Then I discuss CPU/GPU management with sub-topics listed in alphabetical order.

           

          That may seem logical but there are, at least, two problems with that organization.

          1. I do not believe it is the most helpful way to organize this information.
          2. Memory management affects CPU/GPU usage, so everything in the Memory Management section could also be listed in the CPU/GPU section.

           

          Anyway, I am going to also list the information two other ways, from easiest to hardest to implement and from greatest to least benefit.

           

          Both of those later listings are subjective and are dependent on developer experience and capabilities, as well as, the test situation and test environment. I very much doubt there would be a consensus on ordering of these lists.  Nevertheless, I think they still are worthwhile.

           

          Easiest to Hardest to Implement

           

          1. Do not use Filters.
          2. Always use reverse for-loops and avoid do-loops and avoid while-loops.
          3. Explicitly stop Timers to ready them for gc (garbage collection).
          4. Use weak event listeners and remove listeners.
          5. Strictly type variables whenever possible.
          6. Explicitly disable mouse interactivity when mouse interactivity not needed.
          7. Replace dispatchEvents with callback functions whenever possible.
          8. Stop Sounds to enable Sounds and SoundChannels to be gc'd.
          9. Use the most basic DisplayObject needed.
          10. Always use cacheAsBitmap and cacheAsBitmapMatrix with air apps (i.e., mobile devices).
          11. Reuse Objects whenever possible.
          12. Event.ENTER_FRAME loops: Use different listeners and different listener functions applied to as few DisplayObjects as possible.
          13. Pool Objects instead of creating and gc'ing Objects.
          14. Use partial blitting.
          15. Use stage blitting.

            16. Use Stage3D.


           

          Greatest to Least Benefit

           

          1. Use stage blitting (if there is enough system memory).
          2. Use Stage3D.
          3. Use partial blitting.
          4. Use cacheAsBitmap and cacheAsBitmapMatrix with mobile devices.
          5. Explicitly disable mouse interactivity when mouse interactivity not needed.
          6. Do not use Filters.
          7. Use the most basic DisplayObject needed.
          8. Reuse Objects whenever possible.
          9. Event.ENTER_FRAME loops: Use different listeners and different listener functions applied to as few DisplayObjects as possible.
          10. Use reverse for-loops and avoid do-loops and while-loops.
          11. Pool Objects instead of creating and gc'ing Objects.
          12. Strictly type variables whenever possible.
          13. Use weak event listeners and remove listeners.
          14. Replace dispatchEvents with callback functions whenever possible.
          15. Explicitly stop Timers to ready for gc.

            16. Stop Sounds to enable Sounds and SoundChannels to be gc'd.

          1 person found this helpful
          • 2. Re: Extremely poor framerate when exporting a movie
            Colin Holgate MVP & Adobe Community Professional

            You don't say what version of Flash Pro you're using. If it's Flash 9 up to the CS6, you have no hope. If it;s Flash 2014, it should give perfect video. Can you post the FLA somewhere? I can use the latest Flash Pro to make a perfect video.