Why does VIRB Edit Export at Half Original Bit Rate?

I'm new to VIRB Edit and using it with my VIRB 360. I'm recording 4K 30fps and the original files right off the camera are at about an 80 Mbps bitrate. However, after stabilization with VIRB Edit and exporting them at all the highest settings including Taget Quality 'MAX', the resulting files are only 40 Mbps bit rate. I know this is at a cost of quality, wondering how I can keep the original bit rate.
  • Don't troll the poor folks on the GCM forum, you won't find me there ;)
    @aramezan is correct though that my team has other (very demanding) obligations besides VirbEdit. However, everyone's persistence on this matter helped me to persuade the right people that this is worth making time for and I think I have a fix. I now believe that only users with Nvidia graphics cards would have seen a dramatic drop in quality that many of you have observed. After some testing and tweaking, videos exported by VirbEdit appear visually indistinguishable from the original, but this comes at a performance cost.

    If you are not using an Nvidia graphics card, and you experience a significant loss in quality as compared to 4.2.3, please let me know so I can look into this more
  • Don't troll the poor folks on the GCM forum, you won't find me there ;)
    @aramezan is correct though that my team has other (very demanding) obligations besides VirbEdit. However, everyone's persistence on this matter helped me to persuade the right people that this is worth making time for and I think I have a fix. I now believe that only users with Nvidia graphics cards would have seen a dramatic drop in quality that many of you have observed. After some testing and tweaking, videos exported by VirbEdit appear visually indistinguishable from the original, but this comes at a performance cost.

    If you are not using an Nvidia graphics card, and you experience a significant loss in quality as compared to 4.2.3, please let me know so I can look into this more


    Honestly I'm not sure how to take this. Are you saying people who use invidia graphics are just screwed? Correct my if I'm wrong but you guys suggest nvidia cards in your minimum and recommend requirements.

    I'm pretty sure I have tested this on a non nvidia machine with the same results but I will test it again.
  • Don't troll the poor folks on the GCM forum, you won't find me there ;)
    @aramezan is correct though that my team has other (very demanding) obligations besides VirbEdit. However, everyone's persistence on this matter helped me to persuade the right people that this is worth making time for and I think I have a fix. I now believe that only users with Nvidia graphics cards would have seen a dramatic drop in quality that many of you have observed. After some testing and tweaking, videos exported by VirbEdit appear visually indistinguishable from the original, but this comes at a performance cost.

    If you are not using an Nvidia graphics card, and you experience a significant loss in quality as compared to 4.2.3, please let me know so I can look into this more



    Purdington, first thank you for the reply. I feel like this is christmas morning lol. This has been such a huge problem for me and if you get this fixed you would be considered a hero in my eyes. Specially after you talked me into purchasing an nvidia card through our many discussions here :).

    It sounds like you have already found a solution? Is there any roadmap as to when an update will be released? Also, in terms of performance cost, is the solution simply to not off load to the gpu anymore? Or is there a performance hit just because the output file will have a higher bitrate? Hopefully the second one because if the first then it would be basically going back to 4.2.3

    Also, can you detail how the quality dropdown will work with this fix? Can "Max" quality have near the same bitrate as the source and each step down in quality reduce the bitrate? I understand CBR and VBR and if you encode a CBR source video with VBR the bitrate may go down naturally. But from what I've seen, the source is already VBR.
  • So I just did a test video on a non nvidia graphics with a source bit rate of 80mb at it exported and 30mb.


    Update: I did some more testing and you are definitely on to something. I believe the drastic reduction in bit rate was due to it reducing the fps from 60 to 30 (not sure why that should matter as no other software does.) I tested it on 4k 30 and source is 60mb and it exported at 55mb. That is definitely an improvement but in 4.2.3 if you selected medium target quality it would export at the source bit rate. Now selecting max reduces it by 5mb. Having said that it's not worth the export times!!!
  • Purdington, please make sure you are testing with an action video and not a test video of someone's cubicle where there is no movement. In my kayaking videos where I'm moving 1-2mph, I see a lot less degradation than my cycling videos, even though the source of both is 60mbr and output is 41mbr. Which makes sense that a higher motion video would require a higher bitrate when you start thinking about keyframes and encoding.
  • "Are you saying people who use invidia graphics are just screwed?" --bramezan
    "temporarily screwed" would be more accurate. I have a fix.

    "I understand CBR and VBR and if you encode a CBR source video with VBR the bitrate may go down naturally. But from what I've seen, the source is already VBR." --aramezan
    I believe all videos recorded with virb cameras have the same bit rate, whether its staring at a motionless wall for 10 minutes, or a fast moving mountain biking video. A large part of the bit rate loss comes from encoding to VBR from the CBR source video because 80mb/s is an unnecessarily high bit rate for most videos. That being the case, comparisons between the source and destination video bit rates aren't helpful in determining quality. My goal is for a max quality export to be visually indistinguishable from the source video. If VirbEdit exports an 80Mb/s video down to 40 and it looks just as good as the original, that's a win in my book.

    "Purdington, please make sure you are testing with an action video and not a test video of someone's cubicle" --aramezan
    I will keep this in mind


    "It sounds like you have already found a solution? Is there any roadmap as to when an update will be released?"
    Yes I have a fix, yes there is a road map for when it will be released. No I can't tell you when it is :(

    For the more technically minded, when you select "ffmpeg" as your encoder, in 5.x we started using nvenc (Nvidia's encoding API) in our exports for people using nvidia cards. Everyone else's exports use libx264. It turns out nvenc has terrible quality even with the highest possible quality settings. The solution I settled on is to have high and max quality exports use libx264, which does not leverage the gpu, while medium and low still use nvenc. This means your exported video will look better but take longer for high quality settings, and for medium and low they will be much faster, but much lower quality. I think some of the other speed improvements in 5.x will still make libx264 exports faster than they used to be, but 4k videos are not going to export in real time anymore. I deeply wish that there was a way to export a video really fast at really high quality with reasonable file sizes, but there is no way that I am aware of. You pretty much have to pick 2 of those things.
  • So for the ones that want good quality what CPU do you recommend to help speed up the process?
  • "I believe the drastic reduction in bit rate was due to it reducing the fps from 60 to 30"--aramezan

    We only allow exports with settings that match our cameras. Since Garmin doesn't make any cameras that record 4k 60, we don't support exports with those settings either. Of course, you are exporting a 4k 60 video from VirbEdit, which means....:eek:

    :mad::mad::mad:

    Actually, if you really want to, you can make it export a 4k 60 video, its just a bit of manual work. Let me know if you are curious.
  • @bramezan libx264's speed scales with the number of CPU cores you have.

    I've noticed that the "Media Foundation" encoder setting seems to produce pretty good quality output, and also leverages your GPU. Has anyone had better luck trying that out?
  • I think that quote was from bramezan, but that's ok as we get mistaking for each other in real life too :).

    I'm interested to know what parameters virb edit passes ffmpeg when encoding. Ffmpeg has so many options as I'm sure you know. You can chose to encode by target bitrate, target quality, target filesize, encoding time, etc. I have taken a 4K source file (60Mbr) from ultra 30 and encoded it using ffmpeg command line with the commands below using the nvenc api. I am only able to see quality degradation compared to the source by lowering target bitrate down to 40Mbr.

    ffmpeg -i 20180120_4K_Source.mp4 -c:v h264_nvenc -b:v 60M output.mp4

    How are you determining the target bitrate of 40Mbr to pass to ffmpeg? My bet is, you aren't. You are using one of the other options where the encoder will determine bitrate for you and that maybe the bitrate determined is different between libx264 and nvenc for the same parameter passed. In your tests is the bitrate different for the degraded nvenc output and the new libx264 output you say looks good?