Proxy files - different approach from my workflow with GoPro footage


This suggestion comes from a workflow I’ve made for myself, so please let me start with this.

So GoPro cameras automatically register low resolution copies of the footage you record with them. The copies have same name as the original but with a different extension .LRV (Low Res Video).

My workflow:

  1. Create Shotcut project in its own folder “MyProject”
  2. Copy all original GoPro clips to MyProject/clips
  3. Copy all .LRV clips to MyProject/proxy, but rename them from .LRV to .MP4 (so they are name identically with the original clips but are kept in separate folder).
  4. I load clips from “proxy” folder onto my playlist and edit the project until satisfied.
  5. Close the project, rename the “clips” and “proxy” folders so that they switch places (each becomes the other)
  6. Reopen the project, and this time the original clips will be loaded instead of low-res ones. Render!

Now, the GoPro’s .LRV files have lower resolution than what I’d like, so I started to create 720p copies of my original clips, and then use these just the same way as described above.

So my suggestion now:
How about Shotcut recognizes the .LRV file extension? In Shotcut UI provide a button (or menu option or something), to toggle the LRV setting on and off. On LRV on, name of every clip used is checked, id there is a file with exactly same name but with .LRV extension instead.
I would not need to have 2 separate folders any more. GoPro users could benefit, because they Already have .LRV files together with their original .MP4 files. Others would benefit, because when they render their own lo-res proxies, they still keep them together in the same place, just with a different file extension.

Alternative: if reloading the clips in the open project is problematic, how about just a plain simple flag on the Export dialog page, that if you check it, for every clip that has .LRV extension in your project, the rendering engine will actually use an .mp4 file of the same name if it finds it. Thant way I don’t need to reload anything, I just always add .lrv files to my project, and only on te rendering I check the checkbox and know that rendering job will use hi-res files when applicable automatically.

How to "proxy" edit with Shotcut
How to Reduce Preview Lag?

FYI - please check this MLT Proxy functionality on a tool I published for my workflow:

Compiled binary for 64bit Linux is available. For Windows or Mac it can be compiled with Lazarus IDE (Free Pascal), because I made it open source (work in progress).


A small issue that I recently addressed with the tool I shared:
when your proxy file has different resolution than the original file, it causes problems with some filters. Specifically the ones that deal with height and width, like crop or size/position.
What I ended up doing is I use proxy files of same resolution as the original clip, but a quality that is low enough to introduce boost of speed into UI responsiveness, yet high enough to still look good in the preview window.

GPU doesn't seem to get tasked

I accidentally used the .lrv files for my project since I got my first gopro a few weeks ago. I gather from your post that you can’t just swap files without tricking it by naming. If I just delete my original .lrv files and change the names of the HD files to match and then reopen Shotcut it should swap files and I won’t lose my project?


well, no, you won’t loose your project. But when you swap LRV with the full res clips, you will perhaps find that some of the filrters you (might have) applied on the LRV clips will give much different outcomes when project opens with full res clips instead. If that is the case, you would have to either readjust filters settings manually, or (semi)automatically using some sort of XML parser on the shotcut project files (MLT)