XaiJu
AkBKukU
AkBKukU

patreon


Programming Project: BRAW Decoder

Hello! This is a different thing that I figured I would post about here. I've been spending the last couple weeks working on this off and on and decided to just push through it the last few days until it was done.

This is a program that will let me automate *everything* I do with my footage files now! To help convey the significance of that to me, a little history about the channel and how I have worked with my videos from the beginning may be useful. I started out filming with a Nikon D5300 that recorded files into h264 MOVs. I used Blender to edit them and was always all about automating as much work as possible to my server. Which at that time was an Apple Xserve. In late 2018 though I bought a Blackmagic Pocket Cinema Camera 4k. It started out being able to shoot in ProRes in MOVs and CinemaDNG which is just a bunch of pictures per frame. Both of these are well established file formats that take up tons of space. So rather than just backing them up for my archives I would re-encode them into more efficient file formats like h265. There is a minor quality loss but it is massively out weighed by the space savings allowing me to store everything I film. I would do this re-encoding on my server which would allow me to run it overnight or while I wanted to use my computer for something else like a game.

But then there was a camera firmware update that I couldn't pass up on that added BRAW. It is a proprietary video file format made by Blackmagic specifically for their cameras. And while that sounds bad at first, it was actually wonderful when it came to editing. RAW file formats for digital cameras store information directly captured by the sensor rather than try to compress it down into an image. When editing starting with the sensor data inherently produces higher quality video and allows more advanced color correction. Because it's based on the sensor, even for photography like my Nikon D5300, the file formats have always been different from camera to camera. BRAW was actually a step up from this that unified all their cameras into one RAW format which made using any of them with the RAW sensor data easier. But this format was still proprietary. There has been an open fork of FFmpeg to decode it almost since its released but it has faced issues. And no other programs that I know of can work with it except the editing software I use which is made by Blackmagic. This has meant my backup process since this update has been done by "rendering" all of my video files out in my editor to h265 MOVs which is time consuming to setup and very error prone because of how the editing software works. I could send it as remote render job to my server but that only solved part of the problem of it being unattended.


Another aspect of BRAW though was the fact that an SDK was released for it to allow other editing software to write plugins to support it. I know Adobe Premier did this, and I have some other open source projects that do it as well. But that doesn't help me with automation. So a few weeks ago I finally had enough and decided I was just going to do it myself. I documented a lot of my trials and tribulations in the Discord server of developing this, but I now have a working first version of a program that uses the official Blackmagic RAW SDK as a frontend to FFmpeg which allows me to 100% fully automate my backups! I haven't had this working since I first got the camera and was shooting with ProRes and it feels like such a relief to be able to do it again. This is why I use a server, because I've already created a backup automation script that I plugged this program into that scans my work in progress video folders for BRAW files and archives them to my long term storage array. It's running right now as I type this catching up on footage I shot before I moved.

If nothing else, this is a mental weight lifted for me for multiple reasons. I don't have to wonder if there will ever be a program to do this now. I don't have to remember a whole lot of gotcha settings in Resolve for archiving my videos. I don't have to remember to archive them after a project is finished so I have space to put the next one on my editing array. And there are more reasons, but it just feels good to be at this point now.

I don't know if anyone else here will find this helpful or interesting but I thought I would share it since it took a bit of my time and is going to be a massive quality of life improvement for me. I've also been wanting to make a video, or series, about my editing workflow for well over a year at this point but I've never been satisfied with how my last stage of archiving has worked with this camera. This was the final piece of the puzzle for that and I feel like I can now begin to document it. So while I don't know if I'll make a dedicated video about this program, it will be featured heavily in the eventual video on my filming and editing workflow.

Programming Project: BRAW Decoder

More Creators