Beiträge von Vouk

    Thank you for the "prototype," It definitely works!

    Well, I have to admit it's more than a prototype already. :) Development was surprisingly easy. I just wanted it to be careful as the whole plugin was not thoroughly tested and basically just a quick hack of 2 days work.

    I just tested it on Getty, and the great news - generated ProRes passed the Getty's automatic QualityControl on ESP. Before that day, only two converters out of many I tried have been passed: Acrovid FootageStudio 4K and ProDad Mercalli (which is not exactly a converter but can be used like this).

    That's really awesome! Good to know.

    Another question, will be color_range, colorspace, and color_primaries be supported?


    static PropertyID pIOPropColorPrimaries = "clrPrimaries"; // int16_t

    static PropertyID pIOTransferCharacteristics = "clrTransfer"; // int16_t

    static PropertyID pIOColorMatrix = "clrMtx"; // int16_t

    Very good point. Thats whats currently still left and what I was looking in today.

    • ColorRange will be set in the next version
    • Voukoder also needs this fields to be set. Unfortunately the values are not defined/documented in the DVR plugin SDK. So I don't know how to map these values.
      • frameData.colorSpace (pIOColorMatrix )
      • frameData.colorPrimaries (pIOPropColorPrimaries)
      • frameData.colorTransfer (pIOTransferCharacteristics)

    And it is used by default, right?

    Yes, I used "prores_ks" for voukoder as I was told it is the best implementation.

    I'm getting around half the speed from Resolve's Nvidia Encoding.


    Resolve 1440p 60fps: ~240fps while encoding (4:01 for a 15min Vid)

    Voukoder 1440 60fps with h264 nvidia preset: ~114fps while encoding (7:56 for a 15min Vid)

    Well, this is just a first prototype of 2 days work. Nothing has been optimized yet. But I don't think voukoder will ever be faster than the native DVR implementation. The goal is to have more encoders available in DVR - the existing encoder implementations seem to be quite good actually.

    Currently the plugin gets the video as 422 and voukoder needs to convert it down to 420. That's something I can still optimize and it should give some more speed.

    You have an active filter btw (gamma correction). Removing it gave me 40 more fps.

    It runs stable, but I have to restart Resolve after using Voukoder, because the normal encoder wouldn't work anymore.

    Looking into that.

    Edit: This seems to be working after todays DVR update (17.1.1 Build 9)

    My GPU also only gets 50% Usage while enconding with Voukoder. Maybe I did something wrong here? Normal Resolve encoding uses around 99% GPU.

    If you set the preset to "slow" it uses 100% GPU.

    Still: Voukoder is not the magical tool to make everything faster. But it might offer you more encoders and more options. And I guess DVR uses CUDA in a clever way to prevent lots of copy actions from/to host and gpu.

    Here is the first prototype to test. Please tell about your findings / issues here in this thread. (You need to have Voukoder installed, of course).

    Extract the ZIP file here and start Resolve.

    The plugin will appear here:

    Please note: If you like it and if you want to have further support and development consider donating. It will really help me, thanks.

    P.S.: It will only work with the studio version of DVR. The plugin does not work with the free version.

    Edit: You can find the latest version in the regular voukoder download section now.

    I'll have to find some time to investigate this in detail, but ...

    An encoder encodes exactly one uncompressed stream to a compressed stream. (That's what Mainconcept might do). i.e. uncompressed 4:2:0 to compressed h264.

    It then returns the data back to DVR so it can package it in whatever container it wants. (i.e. MP4 or MOV)

    The big question I need to find out is if DVR also supports an external muxer. So i can get both video and audio (in sync) from DVR, send both to Voukoder and Voukoder handles muxing and outputting.

    But from what I've read is that this SDK is an encoder SDK only. It is not a generic File I/O SDK, which I have for Premiere, AfterEffects and VEGAS.

    I believe that the difficulty with Premiere/Vegas/etc. will be getting the frame to decode at all on the GPU more than anything else, but I could be wrong

    This is out of my control. At the beginning of it all I get a pointer to a frame buffer in the CPU addressable memory. So the NLE is doing all decoding, rendering, etc.

    Some months ago I was investigating if CUDA could improve the speed of pixel format conversion in the high bit depth mode. I noticed coping frames back and forth between CPU and GPU memory is quite expensive and I should do it as less as possible.

    I guess the "cuda" pixel format in FFmpeg contains a pointer to the GPU memory. So I guess with the FFmpeg command line above you're doing exactly what is was talking about as "way 2".

    As I am using FFmpeg/libav on the C API level, I still have to figure it all out. But this will be included in voukoder sooner or later.

    Yes, I see your point on this. I plan to add this to the voukoder successor actually and I would like to implement this in a smart way.

    From what I understand is how the would work in the current voukoder:

    1. Copy frame from CPU to GPU
    2. Apply CUDA filter
    3. Copy frame from GPU to CPU
    4. Copy frame from CPU to GPU
    5. Do GPU encoding
    6. Copy frame from GPU to CPU
    7. Write to disk
    8. Go to step 1

    I'd love to do it in this way:

    1. Copy multiple frames from CPU to GPU (as many as fit in the GPUs memory)
    2. Run CUDA filters over all frames
    3. Du GPU encoding on all frames
    4. Copy frame from GPU to CPU
    5. Write to disk
    6. Go to step 1

    I'm trying to find out if the FFmpeg accelerated filters work like the first way to the second way. Do you have any info on this?

    Thank you for your most intelligent post to this forum.

    1. When people ask for a download possibility directly from the creator where they can easily download the original file(s) they need I'm willing to help them, yes. I'm not the kind of person to tell them "You want it? Search for it! HAHAHA! LMAO"
    2. People have asked me how they can support and donate to this project, but the current options won't work in their country. So I am thinking of providing possibilities that allow people from this country to support to this project and try to set up services like AliPay, etc.
    3. And why should I ignore requests from people if they represent the largest group of voukoder users?

    P.S.: You might have noticed this is not just related to one forum post.