Project and Media Overview Software

Wobblycogs wrote on 5/13/2014, 9:41 AM
Hi,

I've not long been using Movie Studio 13 but after putting together my first twenty or so projects I found I wanted an overview showing me, for example, which projects were using a particular clip or piece of music. I googled for all I was worth but found nothing even close so like all good coders I wrote my own.

What I have at the moment is an application that will recursively scan one or more directories for Vegas Movie Studio project files (*.vf) and build a list of media used in them. It will also scan one or more directories for media files and build a list of files found.

By comparing the list of found media against the list of used media it can, for example, display

* a list of unused media
* projects with media that are missing
* media that is used by multiple projects
* etc, etc.

At the moment it generates a very simple HTML report but I plan on improving that as even with just 20 projects the report is very long.

What I'd like to know is if anyone else would be interested in this software? The application will be free and I'll open source it once I'm fairly happy with the shape of the code. If people are genuinely interested in using something like this I'll put in the effort to tidy up the code and add a user friendly front end.

If you would like to test out what I have you are more than welcome but you'll need to understand this: the project is currently packaged as a runnable jar file (Java 8 JVM needed) and takes a small number of command line parameters which you'll probably want to supply using a batch file.

Before anyone asks... At the moment this application can't read Vegas Pro (*.pro) files. I don't have any Vegas Pro files to test against so I've excluded them from the project scan. My guess is that Vegas Movie Studio and Vegas Pro probably use a broadly similar file format internally and so the application could probably be extended to read Pro files.

Before anyone asks 2... The project (*.vf) file format is binary and undocumented which means I'm seriously limited to what I can read from it. The basic chunk structure is easy enough to figure out but the majority of the data held in a chunk is unintelligible to me. I'm able to determine what media a project is using because it's contained in a fairly simple chunk but even that chunk has parts I don't (yet) understand. I've been able to extract some other meta-data and I could report on generated media (e.g. titles) but nothing very useful. It's highly unlikely I'll ever fully understand the contents of the file.

Comments

Jack S wrote on 5/13/2014, 10:50 AM
Hi. I admire your efforts but there is a simple way of doing this.
What I do when my project is finally finished is to:
1. Clear unused media from the media bin by selecting Tools then Clean Project Media (it used to be quicker with MS12 as there was a lightning bolt icon to click - Oh well, the disadvantages of a touch screen interface).
2. Use the Save As option to save your project to a new directory but click the 'Copy media with project' check box.
All the project files used in your project will now be in its own directory where you can use one of the many directory listing utilities to archive the directory listing (or perhaps, code the utility yourself to include the project listing in a database).

My system
Genshin Infinity Gaming PC
Motherboard Gigabyte H610M H: m-ATX w/, USB 3.2, 1 x M.2
Power Supply Corsair RM750X
Intel Core i7-13700K - 16-Core [8P @ 3.4GHz-5.4GHz / 8E @ 2.50GHz-4.20GHz]
30MB Cache + UHD Graphics, Ultimate OC Compatible
Case Fan 4 x CyberPowerPC Hyperloop 120mm ARGB & PWM Fan Kit
CPU Fan CyberPowerPC Master Liquid LITE 360 ARGB AIO Liquid Cooler, Ultimate OC Compatible
Memory 32GB (2 x 16GB) DDR5/5200MHz Corsair Vengeance RGB
MSI GeForce RTX 4060 Ti 8GB - Ray Tracing Technology, DX12, VR Ready, HDMI, DP
System drive 1TB WD Black SN770 M.2 NVMe PCIe SSD - 5150MB/s Read & 4900MB/s Write
Storage 2 x 2TB Seagate BarraCuda SATA-III 6.0Gb/s 7200RPM
Windows 11 Home (x64)
Monitors
Generic Monitor (PHL 222V8) connected to GeForce RTX 4060 Ti
Generic Monitor (SAMSUNG) connected to iGPU

Camcorder
SONY Handycam HDR-XR550VE

Wobblycogs wrote on 5/13/2014, 11:51 AM
I agree that is a solution but it doesn't quite solve the problem I want to solve.

The main drawback for me would be that you are copying the media and therefore potentially using a lot of additional storage. I could easily see myself using a 2GB clip in 5 projects, that's 8GB wasted (10GB if you keep the original source in place as well).

The other downside is that you can't (easily) tell which projects use a particular clip. The media files would probably have the same file name but you couldn't with certainty say they were the same clip. People making clip compilations for example want to avoid re-using clips across projects.
bansl wrote on 5/14/2014, 10:57 AM
Hi Wobblycogs,
I would certainly be interested in this project...

My only contribution so far is that I take a *.vf file and load it into an editor that can change hex values. (I use Visual SlickEdit).

In 4 change-all's, a sort and a couple of deletes, I have a simple text file that contains a list of the media included in the project.

I didn't try decoding the hex content of the vf file, but then I don't need that right now.

Cheers,

Bryan.
Wobblycogs wrote on 5/14/2014, 12:07 PM
Hi,

If you'd like a copy to try out email me (click my user name and then again in the profile) and I'll send it over. I'm currently working on sticking the information I extract into a database. I initially had a class that just did a few set operations but it quickly became apparent that wouldn't scale well enough.

I considered using a regular expression type extraction and perhaps that would have been faster but I hold out hope that I'll be able to extract more information from the file over time which would require processing it properly. I also wanted some practice as I don't get to play with binary files much doing web development :-).

I'll maybe try and get the project open sourced tonight...