• Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
    Dedicated community for Japanese speakers
  • 한국 커뮤니티
    Dedicated community for Korean speakers
Exit
0

Multicam from project 1 changes when project 2 opened

Explorer ,
Nov 21, 2024 Nov 21, 2024

Copy link to clipboard

Copied

V25 0.2 beta (also apparent in previous versions)

MacOS

 

https://drive.google.com/file/d/1RlTZldPxuyYExpCMn6OD9e5hq74Gr4i0/view?usp=drivesdk

ScreenRec of issue. Watch this first will be quicker than trying to understand the following...

 

I have a base multicam, named '1.1 MC' feeding nests that are part of a 2nd multicam ('1.2 MC'). The 2nd multicam is then edited into a sequence.

 

This is all within standalone 'project 1'

 

Project 1 is duplicated to 'Project 2' and amended slightly (3-box landscape nest is swapped for 3-box portrait, plus audio in 2.1 base multicam is slipped back 8 frames.). Multicams renamed in project 2 to '2.1 MC' and '2.2 MC'.

 

Both projects added to a production by dragging from finder and dropping on production window (individually, to avoid 'duplicate projects being created - which is potentially another bug?).

 

Fresh 'project 5' + sequence created in the production, project 1 opened and the project 1 edited sequence edited into the project 5 sequence via source monitor.

 

Project 5 sequence shows landscape 3-box and audio on 1 second points. As expected.

BUT

 

If project 2 (with portrait 3-box and slipped audio) is just OPENED the following changes happen to the other projects:

 

Project 1 muoticams are changed (names from 1.1 & 1.2 to 2.1 & 2.2, 3-box to portrait, audio slipped back 8 frames)

Project 5 sequence also has those changes.

 

If projects 1 + 2 are closed, without saving, and project 1 reopened then the project 5 sequence reverts to landscape 3-box & correct audio placement.

 

Analysis:

Seems that the multicams have some kind of UUID that is not regenerated - so within a production there are incorrect references made.

 

 

Background:

Weekly zoom meeting style show recorded as isos. Main cameras are in a branded 1-box, plus extra 'super source' style 2-box, 3-box, 4-box' needed as sources.

 

Tight turnaround so

a. We start editing efitorial before all recordings are available

b. Multiple editors doing sections, 1 editor combines them in stitch.

 

Bug Unresolved
TOPICS
Bug

Views

95

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
5 Comments
Explorer ,
Nov 21, 2024 Nov 21, 2024

Copy link to clipboard

Copied

OK the workaround for this *appears* to be (no real testing yet) to open the duplicate project and replace the ObjectUID and ObjectURef for the 2x multicam sequences. 

For me that meant searching for ClassID="fb11c33a-b0a9-4465-aa94-b6d5db2628cf" to find the <Master lips> for the 2 multicams - then copy the ObjectUID and replace with random v4 UIDs generated from https://www.uuidgenerator.net/

 

But don't do this at home. I might try this on the next episode, but realise it's risky.

Votes

Translate

Translate

Report

Report
Explorer ,
Nov 21, 2024 Nov 21, 2024

Copy link to clipboard

Copied

Votes

Translate

Translate

Report

Report
Explorer ,
Nov 22, 2024 Nov 22, 2024

Copy link to clipboard

Copied

Yet to fully test but here's the code I'm using to regenerate UUIDs for MasterClips for a project to avoid collisions.
Caveat Emptor if anyone tries this...

 

I can't seem to remove the code but really, like @Bruce Bullis says, don't do this. 

 

 

import os
import sys
import re
import gzip
import pathlib
import fileinput
import uuid
import tkinter as tk
from tkinter import filedialog
root = tk.Tk()
root.withdraw()

def handle_exceptions(exception):  # Receives an exception type and does error handling.
	if exception[0] == FileNotFoundError:
		print('Invalid file path. Check your path and file name.')
	elif exception[0] == BufferError:
		print('Buffer error... how on earth did you do this?')
	else:
		print('An unknown error occured.')
		print("Full exception: \n" + str(exception) +
			  '\nTraceback Line: ' + str(exception[-1].tb_lineno))

def regenerate(file_path):
	pattern = re.compile(r'(<MasterClip ObjectUID=")([0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12})(" ClassID)')
	root, ext = os.path.splitext(file_path)  # Checking if file extension is correct.
	new_name = (root + '_regenerated' + '.prproj')	
	try:
		if ext != '.prproj':
			print('Invalid filetype. Must have valid .prproj extension.')
			# If not a valid Adobe Premiere file, exit.
		elif os.path.exists(new_name):
			print('Output file already exists at this location. Please move or rename.')
		else:  # Otherwise... continue on to unzip
			with gzip.open(file_path, 'rt') as f:  # Decompress project file and open...
				file_data = f.read()  # Put file contents into variable as string text
				# loop through the MasterClip UUIDs and replace
				for m in re.finditer(pattern, file_data):
					uuid_search = m.group(2)
					# Create and convert a UUID to a string of hex digits in standard form
					uuid_replace = str(uuid.uuid4())
					
					# Replace the target string
					file_data = file_data.replace(uuid_search, uuid_replace)
			with gzip.open(new_name, 'wt') as f_out:
				f_out.write(file_data)  
	except:
		exception = sys.exc_info()
		handle_exceptions(exception[0])
	
# get filename from prompt and regenerate IDs
regenerate(filedialog.askopenfilename())



 

  

Votes

Translate

Translate

Report

Report
Adobe Employee ,
Nov 22, 2024 Nov 22, 2024

Copy link to clipboard

Copied

Adobe neither supports nor recommends direct modification of .prproj files. 

Votes

Translate

Translate

Report

Report
Explorer ,
Nov 22, 2024 Nov 22, 2024

Copy link to clipboard

Copied

LATEST

Understandable, who knows what demons might be unleashed.

 

But it did get your attention 😬

Votes

Translate

Translate

Report

Report
Resources