Dans DaVinci Resolve, l’un des outils les plus important à notre disposition est le Media Pool, qui nous permet de gérer nos clips, images et autres ressources multimédias. Pour faciliter cette gestion et accroître votre productivité, j’ai rassemblé un recueil de méthodes et de techniques pour optimiser l’utilisation du Media Pool.
Dans cet article, nous allons explorer les différentes facettes de la gestion du Media Pool, notamment la création de dossiers, la vérification de l’existence de dossiers, la récupération de clips, et la navigation à travers les dossiers et sous-dossiers. Ces astuces vous aideront à gagner du temps pour la création de script.
Dans DaVinci Resolve, la structure du Media Pool est hiérarchique, avec un « folder root » (racine de dossier) qui contient tous les dossiers et sous-dossiers.
Pour obtenir ce dossier racine On a récupéré l’objet projectManager pour récupérer l’objet currentProject pour enfin récupérer MediaPool. Et avec cet objet on utilise la méthode GetRootFolder() qui nous retourne un objet Folder. Cet objet Étant le dossier racine du Media pool. À partir de là, on peut utiliser rootFolder pour lister les dossiers à l’intérieur du dossier racine.
projectManger = resolve.GetProjectManager()
currentProject = projectManger.GetCurrentProject()
mediaPool = currentProject.GetMediaPool()
rootFolder = mediaPool.GetRootFolder()
listFolderInRoot = rootFolder.GetSubFolderList()
Cette liste, on peut maintenant l’afficher grâce à une simple boucle.
for folder in listFolderInRoot:
print(folder.GetName())
résultat :
dossier-test1
dossier-test2
dossier-test3
Le « dossier courant du Media Pool » fait référence au dossier actuellement sélectionné par l’utilisateur dans la structure du Media Pool. C’est très utiles pour un script permettant à l’utilisateur de choisir ou l’action va se produire.
projectManger = resolve.GetProjectManager()
currentProject = projectManger.GetCurrentProject()
mediaPool = currentProject.GetMediaPool()
currentFolder = mediaPool.GetCurrentFolder()
listFolderInCurrent = currentFolder.GetSubFolderList()
Cette liste, on peut maintenant l’afficher grâce à une simple boucle.
for folder in listFolderInCurrent:
print(folder.GetName())
résultat :
dossier-courant-test1
dossier-courant-test2
dossier-courant-test3
Pour illustrer davantage notre exploration de la gestion du Media Pool, prenons un exemple concret : la suppression d’un dossier nommé « test » à la racine du Media Pool. Cette tâche nous permettra de mettre en pratique les concepts que nous avons déjà abordés et de découvrir de nouvelles méthodes pour gérer nos médias.
Tout d’abord, nous devons obtenir une liste des dossiers présents dans le dossier racine. Cela nous permettra de rechercher le dossier spécifique que nous souhaitons supprimer.
projectManger = resolve.GetProjectManager()
currentProject = projectManger.GetCurrentProject()
mediaPool = currentProject.GetMediaPool()
rootFolder = mediaPool.GetRootFolder()
listFolderInRoot = rootFolder.GetSubFolderList()
Une fois que nous avons la liste des dossiers à la racine, nous parcourrons cette liste pour identifier le dossier portant le nom « test ».
folderIndex = None
for i, folder in enumerate(listFolderInRoot):
if folder.GetName() == "test":
folderIndex = i
Une fois que nous avons identifié le dossier « test », nous utiliserons une méthode appropriée pour le supprimer du Media Pool.
if folderIndex:
mediaPool.DeleteFolders(listFolderInRoot[folderIndex])
La subtilité réside dans le fait que nous devons récupérer le dossier racine du Media Pool et l’utiliser pour insérer un nouveau dossier. Cela signifie que nous utilisons un objet (le dossier racine) dans un autre (le Media Pool) pour effectuer cette opération.
La méthode que nous allons utiliser s’appelle AddFolder()
et elle nécessite que nous spécifiions le dossier parent dans lequel le nouveau dossier sera créé. Grâce à la récupération du dossier racine, nous pourrons insérer notre nouveau dossier directement à la racine du Media Pool.
projectManger = resolve.GetProjectManager()
currentProject = projectManger.GetCurrentProject()
mediaPool = currentProject.GetMediaPool()
rootFolder = mediaPool.GetRootFolder()
# création
mediaPool.AddSubFolder(rootFolder , "mondossier")
Vous devriez maintenant voir un dossier Du nom de “mondossier” s’afficher dans votre Media pool.
Maintenant que nous avons exploré la gestion des dossiers dans le Media Pool, passons à l’ajout d’un élément essentiel : un média provenant de notre disque dur. Notre objectif est de placer ce média à la racine du Media Pool.
Avant de plonger dans l’ajout de médias au Media Pool de DaVinci Resolve, il y a une étape cruciale à ne pas négliger : la configuration du Media Storage. Cette étape est essentielle pour que DaVinci Resolve puisse accéder et gérer correctement les médias depuis votre disque dur.
Le Media Storage de DaVinci Resolve est l’interface qui vous permet de spécifier les emplacements depuis lesquels le logiciel peut accéder aux médias. Si vous ne configurez pas correctement le Media Storage en ajoutant les dossiers de destination, DaVinci Resolve ne pourra pas trouver les médias que vous essayez d’importer.
Cette configuration préalable est cruciale pour que DaVinci Resolve puisse trouver et importer les médias à partir de vos disques durs. Si cette étape n’est pas correctement réalisée, vous risquez de rencontrer des problèmes lors de l’ajout de médias au Media Pool.
pathMedia = "C:/medias/image.png"
mediaStorage = resolve.GetMediaStorage()
mediaStorage.AddItemsToMediaPool(pathMedia)