Announcement

Collapse
No announcement yet.

AMD Open-Sources VCE Video Encode Engine Code

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • #31
    Originally posted by _SXX_ View Post
    I just wonder if it's possible to encode to h264 right from framebuffer?
    That's one of the question I would have had too: If yes, it could be used for streaming rendered 3d stuff and for finally having a good way to record 3d applications.

    The other would be: Is the hardware h.264 only? Is h.265, vp9, daala, ... support a) possible b) likely to happen?

    Comment


    • #32
      Originally posted by Drago View Post
      Intel have supported video encoding via VA-API,
      for a long time now. Just for your information.
      Yes and it's nothing to brag about. In fact, having say an R9 290 with all that exposure for OpenCL 1.2 and soon OpenCL 2.x [read the spec] you can see how this code drop can be moved to OpenCL 2.0 and life gets very interesting, while the CPU is no longer hand-cuffed. Then extend this to the HSA platform and you'll realize that Intel's solution is sub-par.

      Comment


      • #33
        Originally posted by Deathsimple View Post
        Indeed, while releasing UVD was quite painfull and took us years to complete getting VCE out of the door was rather simple.
        I would say simpler. We learned a lot from UVD which helped with this VCE release.

        Comment


        • #34
          Originally posted by _SXX_ View Post
          I just wonder if it's possible to encode to h264 right from framebuffer?
          That's something we're working on. No ETA yet.

          Comment


          • #35
            Originally posted by twriter View Post
            That's something we're working on. No ETA yet.
            Thanks for answer. That would be awesome feature!

            Comment


            • #36
              On the topic of hardware video encoding/transcoding. Anyone know of any easy to use software that can use or working towards hardware accelerated video transcoding? I'm not a video expert which is why I use HandBrake and they're only working on Windows hardware acceleration using Intel Quick Sync right now.

              Also, does anyone know of any recent reviews that compare AMD and Intel hardware encoded videos to x264? I'm very behind in this area especially since I don't use any software that make use of it yet but the last time (years?) I looked into it, AMD/ATI encoded videos weren't that great looking. At least on Windows. It was probably when the ATI brand was still being used for GPUs.

              Thanks!

              Comment


              • #37
                So I am looking to upgrade my GPU very soon. Will an R7 260x support this? It is the card I want to switch to. I see the firmware file is BONAIRE_xxx_vce.bin and the chip on the 260X/7790 is Bonaire.

                Comment


                • #38
                  Originally posted by guido12 View Post
                  On the topic of hardware video encoding/transcoding. Anyone know of any easy to use software that can use or working towards hardware accelerated video transcoding? I'm not a video expert which is why I use HandBrake and they're only working on Windows hardware acceleration using Intel Quick Sync right now.
                  For VCE bring-up we used gstreamer. It's pretty straight forward to build a media encode/decode/transcode pipeline with gstreamer.

                  Comment


                  • #39
                    Originally posted by crshbndct View Post
                    So I am looking to upgrade my GPU very soon. Will an R7 260x support this? It is the card I want to switch to. I see the firmware file is BONAIRE_xxx_vce.bin and the chip on the 260X/7790 is Bonaire.
                    Yes, all Sea Islands GPUs are supported.

                    Comment


                    • #40
                      Originally posted by pinguinpc View Post
                      Respect VCE code is very good, for example if simplescreen recorder support this, linux screencasting users appreciate that
                      SSR uses FFmpeg for encoding.

                      Originally posted by agd5f View Post
                      For VCE bring-up we used gstreamer. It's pretty straight forward to build a media encode/decode/transcode pipeline with gstreamer.
                      I find FFmpeg much easier to use (GStreamer has some weird syntax and piping rules...). It would be nice if this was available in FFmpeg. (Does FFmpeg support VA-API encoding, by the way?)

                      Comment


                      • #41
                        How about multi GPU setups? like an A10-7850K w/ an R9 series GPU? Would it be able to make use of both or would just one be used and if so which?

                        Comment


                        • #42
                          Originally posted by GreatEmerald View Post
                          It would be nice if this was available in FFmpeg. (Does FFmpeg support VA-API encoding, by the way?)
                          ffmpeg has no h264 encoder. They use libx264 and that project don't want hardware encoders. the result is not so nice like what the cpu generates.

                          Comment


                          • #43
                            Originally posted by Kivada View Post
                            How about multi GPU setups? like an A10-7850K w/ an R9 series GPU? Would it be able to make use of both or would just one be used and if so which?
                            I haven't tested that yet, but in theory it should work fine to just specify the GPU by just setting DRI_PRIME=x.

                            Comment


                            • #44
                              Originally posted by agd5f View Post
                              Is there some specific app you have in mind? There doesn't seem to much that supports hw encoding in general on Linux (either API). Most people use gstreamer for encoding which supports both omx and vaapi. Additionally omx has some nice features for implementing more efficient transcoding.
                              I use mencoder (which is used by the major GUIs like handbrake). Mplayer supports vaapi for playback, so adding it for encode ought to be easier than adding a whole new api.

                              (seriously, people use gstreamer for encoding? It is unusable for playback due to being 3-10x slower than mplayer derivatives...)

                              Comment


                              • #45
                                Originally posted by curaga View Post
                                Mplayer supports vaapi for playback, so adding it for encode ought to be easier than adding a whole new api.
                                Sorry forgotten to explain that. The encoding part of VA-API works with slice level data, but the output of VCE is an elementary stream.

                                So to support VA-API the software stack would look something like this:
                                1. VCE encodes the frame to an elementary stream
                                2. driver decodes the elementary stream back to slice level data
                                3. VA-API passes slice level data to application
                                4. Application encodes slice level data back to an elementary stream

                                That makes no sense on both CPU and implementation overhead and is the main reason why we dropped VA-API support.

                                Comment

                                Working...
                                X