I've recently started using Davinci Resolve for my editing software. Something I found interesting about it was that it saved all of its project data in a Postgres Database instead of project files. This gives you the option of saving things to a remote work server so you can work on it from several computers. Video projects can generate a lot of raw footage and data, and keeping files and such locally can be a logistical nightmare. But the cloud is basically infinite. So can we edit video using the cloud as our storage? Probably not, but it's worth a shot!
The idea here is to be able to edit something on my desktop, and then seamlessly move over to my laptop and keep editing from anywhere in the world. My desktop is connected to gigabit ethernet, but my laptop will use WiFi, which will likely render working with big files useless. But we'll see.
I decided to go with Azure for this since they seem to have a very easy-to-setup way to do Samba Shares over the internet. The problem with this, however, is that Samba's port 445 is blocked by most ISPs (in both directions, for some reason.) So... I guess we have to set up a VPN to Azure.
Azure is somewhat confusing to me coming from a bit of a Google Cloud background. I don't claim to know a lot about cloud, but at least with Google it's a little more straight forward in its hierarchy. I haven't played around with Azure enough to pinpoint and articulate what exactly is confusing, but nonetheless, I prefer the layout of Google Cloud to Azure (and AWS too, although I have very little experience with that layout too.)
And boy, oh boy does an Azure VPN Gateway take forever to create. When it finally was up and running, I connected to it (with great difficulty) and found that I was still unable to connect to the file share. So, you know what? I'm just gonna make my own VPN using a VM.
I booted up a small CentOS B1s VM, installed Docker, and fired up an OpenVPN container. Using OpenVPN I could then tunnel my traffic into the data center which then allowed me access to the file share. Finally.
File transfer speeds weren't superb, which made me nervous about things to come editing-wise. The VPN machine isn't the fastest, but it was sitting at ~14% CPU and the network didn't seem to be saturated.
So while I waited for those files to upload over SMB, I spun up a Postgres database in Azure and let Resolve migrate it. Fun fact: you have to use an older version of Postgres (9-point-something should work) because with newer versions the migrations will fail.
So there's a big problem with either how Resolve tries to establish a connection or maybe how Azure expects people to connect. The username I was told to use - resolve@resolvedb - caused a connection issue because it was parsing the hostname as resolvedb instead of the real hostname. Even if I created a new user "tucker" on the server, it wouldn't work. This is a bug in DaVinci Resolve, sure, but it's also kind of dumb on the part of Azure to expect that every application can work with this. Resolve wouldn't even let me escape the @!
So I gave up and spun up a Postgres container on the VPN machine. Just another one of many compromises I've had to make thus far. At this point, everything was done copying over. So I created a new project and tried to work with it.
The experience was so bad. Importing files, creating timelines... just everything. 1080p content played back... okay. 4K played back at about 5fps. And then a 6K BRAW file?
I never claimed Resolve was the most stable program out there. It does somewhat well. But, in the end, I think this is a bad idea. You should probably use Blackmagic's collaboration server before you go and try to make your own like this. It has many more features. And it's likely it'll work in the cloud without a VPN, but don't hold me to that, I haven't tried it yet.
In either case, maybe an on-prem solution is best here. Lots of people do collaborative video editing over the network, but I don't think the cloud is ready for it yet.
No comments:
Post a Comment