def input_file_metadata(ingestLogBoilerplate, processingVars): pymmFunctions.ingest_log( # message "The input file MD5 hash is: " + makeMetadata.hash_file(processingVars['inputPath']), # status 'OK', # ingest boilerplate **ingestLogBoilerplate) mediainfo = makeMetadata.get_mediainfo_report( processingVars['inputPath'], processingVars['packageMetadataObjects']) if mediainfo: pymmFunctions.ingest_log( # message "mediainfo XML report for input file written to metadata directory for package.", # status 'OK', # ingest boilerplate **ingestLogBoilerplate) frameMD5 = makeMetadata.make_frame_md5( processingVars['inputPath'], processingVars['packageMetadataObjects']) if frameMD5 != False: pymmFunctions.ingest_log( # message "frameMD5 report for input file written to metadata directory for package", # status "OK", # ingest boilerplate **ingestLogBoilerplate)
def get_profiles(input_list): # BUILD A DICT OF PROFILES TO COMPARE FOR CONCATENATION print("*" * 100) profiles = {} for sourceFile in input_list: profiles[sourceFile] = {'video': '', 'audio': ''} videoProfile, audioProfile = makeMetadata.get_track_profiles( makeMetadata.get_mediainfo_report(sourceFile, '', _JSON=True)) profiles[sourceFile]['video'] = json.loads(videoProfile) profiles[sourceFile]['audio'] = json.loads(audioProfile) print(profiles) return profiles
def get_file_metadata(CurrentIngest, objectCategoryDetail=None): _object = CurrentIngest.currentTargetObject inputPath = _object.inputPath basename = os.path.basename(inputPath) mdDest = _object.metadataDirectory mediainfoPath = makeMetadata.get_mediainfo_report(inputPath, mdDest, _JSON=None, altFileName=basename) if os.path.isfile(mediainfoPath): event = 'metadata extraction' outcome = ("mediainfo XML report for input file " "written to metadata directory for package.") CurrentIngest.caller = '`mediainfo --Output=XML`' loggers.short_log(CurrentIngest, event, outcome, status='OK') CurrentIngest.caller = None _object.mediainfoPath = mediainfoPath else: event = 'metadata extraction' outcome = ("Could/did not mediainfo XML report " " for input file to metadata directory for package.") CurrentIngest.caller = '`mediainfo --Output=XML`' loggers.short_log(CurrentIngest, event, outcome, status='FAIL') if not objectCategoryDetail == 'access file': # don't bother calculating frame md5 for derivs.... frameMD5 = makeMetadata.make_frame_md5(inputPath, _object.metadataDirectory) if frameMD5 != False: event = 'message digest calculation' outcome = ("frameMD5 report for input file " "written to metadata directory for package") CurrentIngest.caller = \ CurrentIngest.ProcessArguments.ffmpegVersion\ +' with option `-f frameMD5`' loggers.short_log(CurrentIngest, event, outcome, status='OK') else: event = 'message digest calculation' outcome = ("Could/did not write frameMD5 report " "for input file to metadata directory for package") CurrentIngest.caller = \ CurrentIngest.ProcessArguments.ffmpegVersion\ +' with option `-f frameMD5`' loggers.short_log(CurrentIngest, event, outcome, status='FAIL') CurrentIngest.caller = None return mediainfoPath
def is_dpx_sequence(inputPath): ''' run mediainfo on the 'dpx' folder if there's anything other than dpx files in there the result will not parse as json and it indicates noncompliance with expected structure (PS-this is a hack) ''' _is_dpx_av = False try: mediainfo = makeMetadata.get_mediainfo_report(inputPath, '', _JSON=True) mediainfo = json.loads(mediainfo) except: _is_dpx_av = False if mediainfo: _is_dpx_av = True return _is_dpx_av
def make_derivs(processingVars): ''' Make derivatives based on options declared in config... ''' inputPath = processingVars['inputPath'] packageObjectDir = processingVars['packageObjectDir'] packageLogDir = processingVars['packageLogDir'] packageMetadataObjects = processingVars['packageMetadataObjects'] makeProres = processingVars['makeProres'] ingestType = processingVars['ingestType'] # we'll always output a resourcespace access file for video ingests, # so init the derivtypes list with `resourcespace` if ingestType in ('film scan', 'video transfer'): derivTypes = ['resourcespace'] deliveredDerivPaths = {} if pymmFunctions.boolean_answer( config['deriv delivery options']['proresHQ']): derivTypes.append('proresHQ') elif makeProres == True: derivTypes.append('proresHQ') else: pass for derivType in derivTypes: sys.argv = [ '', '-i' + inputPath, '-o' + packageObjectDir, '-d' + derivType, '-r' + packageLogDir ] deliveredDeriv = makeDerivs.main() deliveredDerivPaths[derivType] = deliveredDeriv for key, value in deliveredDerivPaths.items(): mdDest = os.path.join(packageMetadataObjects, key) if not os.path.isdir(mdDest): os.mkdir(mdDest) mediainfo = makeMetadata.get_mediainfo_report(value, mdDest)