7 Replies Latest reply on Jan 12, 2016 10:01 AM by Bruce Bullis

    How to get a rendered frame from the Mercury engine

    wh91966330 Level 1

      Hello,

       

      I am developing an Exporter working on Premiere Pro CS 5.5 using software encoder. Currently I got rendered frame from the sequence through RenderVideoFrame() function and send it to the encoder.

       

      It works fine but the rendering speed is too slow to follow the encoding speed. Rendering frames via multi-threads increases the rendering speed but it harms the software encoder speed, and since the Exporter will be running on a render-accelerated hardware that Mercury engine supports, I would like to get a rendered frame from the Mercury engine. I think I can use GetAcceleratedRendererRTStatusForTime() for this, I wonder if this function is what I think. Also I would like to know if there are any sample codes that I can reference.


      Thanks

        • 1. Re: How to get a rendered frame from the Mercury engine
          Bruce Bullis Adobe Employee

          First question: why are you targeting an obsolete version of PPro, with your current development? 4.5 years is pretty old, in software years.

           

          All available sample code is in the PPro C++ plug-in SDK, here: http://www.adobe.com/devnet/premiere.html

          • 2. Re: How to get a rendered frame from the Mercury engine
            wh91966330 Level 1

            Since my customer wants a plugin for CS5.5, and they does not want to change their current environment. So I have no choice.

             

            I found the answer of my question, just using RenderVideoFrame() works with GPU acceleration if possible. But  another problem has occured, the GPU acceleration works only if I render framed with high quality on my PC( by setting renderParms.inRenderQuality = kPrRenderQuality_High ) , which is not useful (rendering frame with high quality takes about double times than low quality but actually does not make a big difference for the videos my customers are handling, so low quality setting is enough). Weird thing is, GPU acceleration works on my customer's PC even though rendering quality is set low, and me and my customers are using the same GPU(quadro 2000). I could not find anything related this problem on the SDK documents or on the web.


            Anyone experienced same problem and found a solution?

             

            Maybe the OS is corrupted? or is that kind of SDK bug?

             

            Thanks in advance.

            • 3. Re: How to get a rendered frame from the Mercury engine
              Bruce Bullis Adobe Employee

              I'm amazed that someone is willing to fund software development, for obsolete versions of PPro.

               

              Perhaps Zac knows something...?

              • 4. Re: How to get a rendered frame from the Mercury engine
                wh91966330 Level 1

                Ok, found a solution again.

                 

                GPU acceleration works differently between pixel formats. Previously I rendered frames with the pixel format PrPixelFormat_YUV_420_MPEG2_FIELD_PICTURE_PLANAR_8u_709 only, and it seems this pixel format supports GPU acceleration only in high quality rendering. I changed the pixel format into PrPixelFormat_YUV_420_MPEG2_FRAME_PICTURE_PLANAR_8u_601 and it worked in all rendering quality settings. In the previous post, the reason why GPU worked on my customer's PC is while I was testing on that PC, I tried to change setting in different parts and accidentally I set the pixel format into the one that supports GPU acceleration in all rendering quality.


                Hope I could find any information about what pixel type and what rendering options supports GPU acceleration and what does not...Anyway it has been solved.

                 

                Well, for the PPro version, the client is the countrywide VOD provider and dominates the whole country's VOD service business, with hundreds of employees and video editing computers mainly using PPro CS5.5 so costs and risks reasons.

                • 5. Re: How to get a rendered frame from the Mercury engine
                  Bruce Bullis Adobe Employee

                  Glad you found something that works.

                  Well, for the PPro version, the client is the countrywide VOD provider and dominates the whole country's VOD service business, with hundreds of employees and video editing computers mainly using PPro CS5.5 so costs and risks reasons.

                   

                  Building a business around hundreds of people using obsolete software, and paying for further custom development around that software, seems exceedingly risky. Happy to talk with the customer directly about those risks, if you think it would help them get current. [b b b at adobe dot com]

                  • 6. Re: How to get a rendered frame from the Mercury engine
                    wh91966330 Level 1

                    Some more problem are occurred.

                     

                    1. sometimes the exported result is upside-down flipped

                    2. sometimes the exported result is broken(a few broken frames are repeating the whole play time)

                    3. HW accel does not work when rendering 1 layer sequence.(works on 2 layer video) and the result is broken when HW accel works.

                     

                    anyone who experienced this kind of problems?

                     

                     

                     

                    Note : I appreciate the effort people who try to help me but basically this is the thread about rendering problem. Please stay focus on the topic. I would like to make HW accel rendering works on PPro CS5.5 Exporter SDK correctly, so upgrading PPro version would not fix this problem.

                    • 7. Re: How to get a rendered frame from the Mercury engine
                      Bruce Bullis Adobe Employee

                      Many, many improvements and changes have been made to GPU rendering, in the past five years.

                       

                      We will support you in your efforts to create integration with Creative Cloud applications.

                       

                      Additionally, if team members find or remember technical details from early 2011, relevant to the issues you've encountered, we will certainly share them.