WORKFLOW : Sortir des listes des rushs avec leur durée

igorbatchev

Membre actif
22 Novembre 2009
448
15
Bonsoir,

Je me permets de créer cette discussion pour voir si des gens n'ont pas des idées plus lumineuses que les miennes pour rendre plus agréables les moments où je dois dérusher ( = regarder plein de vidéos avant de les monter).

Quand je derush l'aime bien prendre des notes. Je le fais sur l'ordi parce que plus tard ça me permet de retrouver un plan juste en recherchant un mot clé dans mon .doc

Pour gagner du temps, j'ai bidouillé un truc sur automator qui me sort une liste de chemins.
Par exemple si dans le dossier "FILM" j'ai un fichier "JR1" et un fichier "JR2", avec deux clips vidéos dans chacun des dossier, je vais obtenir un .txt de la sorte :

FILM/JR1
FILM/JR1/VIDEO1
FILM/JR1/VIDEO2
FILM/JR2
FILM/JR2/VIDEO3
FILM/JR2/VIDEO4


Bien sûr en vrai je m'en sers pour des projets où il y a plusieurs rushs de temps.
Par ailleurs c'est cool de savoir combien de rush on va devoir mater.
Pour l'instant j'ai rien trouvé de mieux que de mettre les dossiers dans VLC pour avoir le temps total. Mais ça a plein de désaventages :
- si c'est du RAW pas encore compressé le logiciel plante.
- c'est un peu long si il y a soixante dossiers.

Alors voilà mon rêve : je voudrais pouvoir sortir un document qui combine toutes les infos. Genre :

FILM/JR_1_3min50sec00images
FILM/JR1/VIDEO1_2min00sec00images
FILM/JR1/VIDEO2_1min50sec00images
FILM/JR2_3min50sec00images
FILM/JR2/VIDEO3_2min50sec00images
FILM/JR2/VIDEO4_1min00sec00images



Est-ce que quelqu'un a une idée ? J'ai quelques bases un python je penser essayer de bidouiller un truc mais avant ça je me demandais si il n'existais pas des applications qui offrent déjà ce type d'automation ?

Au plaisir de vous lire,
Igor
 
Salut !
L'absence de réponses c'est parce que personne ne sait ? J'ai continué à chercher un peu et je n'ai pas trouvé (on m'a parlé de CatalystBrowse à un moment mais je n'ai pas trouvé de fonction qui répondait à mon attente).
Peut-être aussi que ma question est pas claire du tout, je me rends pas compte...
A plus,
Igor
 
Salut JLB21 :)

Alors ça fait 3 ans que je n'utilise plus FCPX (depuis je suis passé par Première puis Avid, et en ce moment j'apprends DaVinci que je trouve prometteur), mais c'est tout à fait envisageable de le réintégrer dans mon workflow si il m'aide à faire ce que je veux ! En fait je ne suis bloqué sur aucun logiciel, ça dépend à la fois de ce que me propose les gens chez qui je travaille mais surtout de mes besoins spécifiques. Par exemple le projet sur lequel je suis en ce moment et pour lequel je me pose cette question de workflow a plusieurs centaines d'heures de rushs, je l'aurais volontiers travaillé sous avid... mais un gros travail de synchronisation et de tri a déjà été fait sous première. Too sad.

En revanche je viens de jeter un oeil à l'aide et je ne trouve pas trop ce que je cherche...
Je veux dire j'ai l'impression que FCP m'affiche en effet le temps global dans un événement, ou qu'au pire je peux mettre tous les plans dans une timeline pour avoir le temps global, mais ce n'est pas de l'automation et ça revient à peu près au même que par VLC. !
Pour l'instant je n'ai pas FCPX sur ma machine donc c'est un peu difficile d'aller farfouiller moi-même... Dans l'outil recherche de l'aide j'ai tapé "export métadonnée", ".txt", et "export", mais j'ai rien trouvé qui corresponde.
Je suis persuadé que c'est une question qui vaut le coup d'être pensée, même sur le long terme, des potes monteurs comme moi m'ont dit qu'ils n'avaient pas d'idée mais qu'ils voulaient être tenus au courant !

A très vite,
Igor
 
Bonjour,
Réponse un peu rapide mais peut-être que Shot Notes peut permettre d'écrire ses notes dans un tableur (format .csv)
puis réimporter via le xml, les notes, clés, dans FCPX.

http://www.koptostudios.com/shot-notes-x/

Vu que Davinci (peut-être Premiere) sait importer un xml de FCPX peut-être que le jonglage entre les outils est possible.
Autre source d'infos : https://www.apple.com/final-cut-pro/resources/ecosystem/
Dans la rubrique Tools, il y a des "trucs" pour manipuler les xml.

Sinon, avec des connaissances en xml, il doit être possible d'adapter le .xml de FCPX dans tous les sens. Il ya quelques années par exemple, j'avais bricolé 2 pages en php qui permettaient de récupérer des infos saisies via un formulaire, des infos météo depuis un site et assembler le tout avec un .fcpxml. Cela permettait d'obtenir la météo de façon semi-automatique. En clair, il est possible de visualiser, personnaliser, générer par exemple un .csv pour un tableur même si ce n'est pas simple.
Conseil avant de se lancer dans cette voie, il est possible de personnaliser un "profil" de présentation des métadonnées en plus des présentations générales, étendues, DPP, etc...
 
Si tu veux juste obtenir la durée de ton fichier vidéo dans automator.

Tu installes exiftool sur ta machine

puis dans automator, avec une commande applescript tu récupères la durée de la video

Un exemple qui te demande de sélectionner une vidéo et te donne sa durée

upload_2018-1-28_16-46-17.webp

Tu peux inclure le pavé "exécute un script Applescript" dans ton (truc bidouillé automator)
j'ai bidouillé un truc sur automator qui me sort une liste de chemins.
 
Dernière édition:
Là, je viens de faire un essai rapide d'un export xml d'un évènement puis récupération dans un fichier .csv : du nom du fichier, son chemin, sa durée (non reformaté), ça marche. Il manquerait des trucs pour recalculer les durées en min:sec:img mais le principe est là.

Exemple du code en php pour générer le .csv compatible avec un tableur :

$filexml='3-01-2018.fcpxml';


if (file_exists($filexml))
{
$xml = simplexml_load_file($filexml);
$f = fopen('test.csv', 'w');
createCsv($xml, $f);
fclose($f);
}


function createCsv($xml,$f)
{
foreach ($xml->resources->asset as $item)
{
//ecriture du nom du media, de son chemin, de sa durée
//dans un .csv avec comme séparateur le ; et séparateur de texte "
fputcsv($f, array($item['name'],$item['src'],$item['duration']),';','"');
}
}


et j'obtiens un .csv ouvrable avec open office :
080101_000139_USER0339 (nom du fichier);file://Users/....(son chemin);5569920/48000s (sa durée dans un format à reformater)
 
Bonsoir,

Sinon AVID te permet tout ce que tu décris. Si tu lis tes rushs en AMA link (ou link to media), tu retrouves toutes les infos nécessaires dans ton Bin : durée, TC, format, codec...etc.
Avec pour avantage de ne pas avoir à multiplier les logiciels différent dans ton Workflow.

a+
 
Bonsoir,

Si le but vise juste à trier/rassembler, saisir des notes, le visualiseur permet de voir une sélection de 26 infos : format, codec, durée, etc..
Il est possible de saisir des notes pour chacun des rushs.
Il est possible de les rassembler grâce à des collections intelligentes (type, caméra, rôle, etc...) et pour voir la durée totale il suffit de les sélectionner et la somme apparaît en bas du visualiseur.

Si c'est juste pour ça, aucun logiciel externe n'est nécessaire.
 
Salut à tous, et un grand merci pour vos réponses !

Merci ProMox, mais le truc c'est que l'importation dans Avid... Ca prend déjà du temps ! D'autant plus qu'il n'existe pas de manière d'importer une arborescence (genre si j'ai 20 dossier dans un DDE de 2 teras, répartis en sous dossiers vidéos et son, je ne peux pas tout importer en lui demandant de me conserver l'arborescence comme c'est le cas sur Première je crois) (si je me trompe et qu'en fait si, c'est possible, dites moi :) ).

Mettons qu'il y ait deux situations fictives :
1) Quelqu'un me contacte pour que je lui monte son film. Il est incapable de me dire combien d'heure de rush il a (ça arrive ...). Heureusement j'ai un programme qui me permet de me dire combien de temps il y a EN TOUT dans le disque dur externe qu'il me passe, sans que j'ai à perdre de temps à l'importer dans tel ou tel programme... Bref avant que j'accepte le projet.
2) J'ai accepté un projet. Je veux me sortir un sortir un document qui combine toutes les infos comme expliqué dans le poste 1. A la limite dans ce cas là je peux tout importer dans le logiciel avant de me sortir ma liste de chemin + temps et de commencer à derusher.

Je crois qu'on a plusieurs pistes :
  1. On a la solution de Shot Notes, mais en fait ça implique déjà de tout importer dans FCP X :
    .
    Après l'avantage c'est que ça sort un joli tableur. Mais l'appli coûte plus de 50 euros.
  2. On a la solution proposée par Zelton, qui permet d'obtenir les metadata de chaque fichier... Le problème c'est que je sais pas coder des scripts automator, donc ça va me prendre un ou deux jours pour réussir à sortir des additions de métadata ! Mais je crois que je vais poursuivre dans cette direction.
  3. On a la solution en php de CV21. Là aussi on doit passer par l'importation dans FCP X. Je sais pas encore utiliser le PHP, pareil, faut que je me penche là-dessus. Mais CV21 tu penses que ça marcherait aussi avec un XLM sorti d'AVID ou de Premiere ou du DAV ? Parce que ce qui me plait avec le php c'est que le script fonctionnerait aussi sur PC.
  4. CV21 dans ton poste 9 tu parles bien de FCPX toujours ?
En fait j'ai l'impression qu'il n'existe en tout cas pas de soft qui permette de dire en deux temps trois mouvements combien de temps de vidéo on a en tout dans un dossier ou dans un DDE ! (le projet sur lequel je taffe en ce moment comporte des rushs de différentes caméras, je peux donc pas faire une règle de 3 par rapport à un standard fixe. C'est comme ça que je m'en étais sorti jusque là...). C'est à dire que dans les différentes réponses soit il faut faire un script et sortir la somme de toutes les valeurs temps, soit il faut déjà tout importer dans un logiciel puis faire un dossier intelligent avec tous les rushs pour avoir la durée globale.

Bref en tout cas un grand merci à vous, je vais essayer de voir ce que je réussis à faire à partir de vos pistes et je vous tiens au jus bien sûr,
Igor.
 
Réponse brève car en attente sur un parking pour tournage inondations...

Pour lister et mesurer le nombre et la durée des rushs de toute sorte vu que la durée apparaît dans le Finder je suppose qu’une combinaison d’appleScript et commande Shell doit le permettre.

Pour le xml, vu que fcpx est une base de donnée avec une interface de logiciel de montage il est possible d’imaginer un tas de manip dans tous les sens il en va probablement de même pour les autres applis.

Le php est juste un langage de script avec lequel je me débrouille avec l’aide du net. N’importe quel langage de script ou pas permet de les manipuler. Bonne recherche. J’essaierai de voir pour les commandes Shell + AppleScript peut-être....
 
Réponse plus précise à la question :

"Mais CV21 tu penses que ça marcherait aussi avec un XLM sorti d'AVID ou de Premiere ou du DAV ? Parce que ce qui me plait avec le php c'est que le script fonctionnerait aussi sur PC."

Je ne connais pas le contenu des xml exportés par les autres logiciels. Je n'évoque que FCPX. Il est possible d'obtenir le xml d'un événement ou de la bibliothèque qui contient les projets (timeline) et les médias ("navigateur/bin/chutier").
Les xml sont lisibles sur n'importe quel navigateur internet ou bloc note format texte afin de voir leur structure. Ces fichiers peuvent être générés/manipulés sur mac ou pc... Pour être honnête il peut y avoir des prises de tête avec le format d'enregistrement du xml en UTF8 je crois et pas autre chose pour FCPX (pas sûr).

En clair, que ce soit pour AVID ou autre il est possible de voir à quoi ressemble l'export d'un xml dans un navigateur internet. C'est une première étape. Si il y a les infos souhaitées, il devient alors possible de manipuler le xml pour sortir un document dans un autre format .csv, excel, txt, etc...
 
@ igorbatchev
Après une relecture de ta demande initiale, tu as un dossier avec des vidéos et des dossiers contenant des vidéos.
Tu veux en sortie un fichier texte avec la liste des chemins des vidéos, leurs durées et la durée par dossier.

Si c'est bien ça !
Installes exiftool : https://sourceforge.net/projects/exiftool/

Ensuite tu peux essayer ce script applescript qui génère le fichier texte sur le bureau (fichier qui peut s'ouvrir dans excel pour plus de lisibilité). j'ai largement commenté ce fichier pour permettre son adaptation.Si besoin de modifications n'hésite pas à demander.

Bloc de code:
property tothg : 0
property tmng : 0
property tsecg : 0
tell application "Finder"
    set chemin to choose folder with prompt "Sélectionnez le dossier contenant les fichiers à renommer"
   
    my inspecter(chemin)
end tell

on inspecter(un_dossier)
    tell application "Finder"
       
        set nomdos to name of un_dossier -- recupere le nom du dossier
        set FVideo to {"dv", "DV", "mov", "MOV", "VOB", "vob", "divx", "mp4", "MP4"} -- liste des extensions a traiter
        -- mise a 0 des variables duree fichier
        set toth to 0
        set totmn to 0
        set totsec to 0
        -- traitement des fichiers :
        set les_fichiers to files of un_dossier
        repeat with chaque_fichier in les_fichiers
            -- traitement d'un fichier
            tell application "Finder"
                set nom to name of chaque_fichier --récupère le nom du fichier
                set AppleScript's text item delimiters to {"."} -- defini le separateur
                set lextension to get last text item of nom -- recupère l'extension
                set duree to "" -- mise a blanc de la durée
                set lefichier to chaque_fichier as string
                if lextension is in FVideo then -- si fichier video
                    set duree to do shell script "/usr/local/bin/exiftool -duration " & quoted form of POSIX path of lefichier --récupère la duréeau format teste exiftool
                    set AppleScript's text item delimiters to {":"}
                    set seconde to get last text item of duree as string -- récupère les secondes
                    set minute to text item 3 of duree as string -- récupère les minutes
                    set heure to text item 2 of duree as string --récupère les heures
                    -- fait le total du dossier en cours
                    set toth to toth + heure as string
                    set totmn to totmn + minute as string
                    set totsec to totsec + seconde as string
                    -- fait total general
                    set tothg to tothg + heure
                    set tmng to tmng + minute
                    set tsecg to tsecg + seconde
                    my ecriture(lefichier, heure, minute, seconde) --appel pour ecriture dans fichier texte du fichier
                end if
            end tell
        end repeat
        my total(nomdos, toth, totmn, totsec) --appel pour ecriture dans fichier texte total dossier
        -- traitement des dossiers :
        set les_dossiers to folders of un_dossier
        repeat with chaque_dossier in les_dossiers
            my inspecter(chaque_dossier) -- dossier suivant
        end repeat
    end tell
end inspecter

on ecriture(nom, heure, minute, seconde)
    --Ecrit dans la fichier texte le nom + tabulation  + la durée   
    set lelog to open for access ((path to desktop folder as text) & "le dossier.txt") as text with write permission
    write nom & (ASCII character 9) & heure & " h " & minute & " mn " & seconde & " sec " & return to lelog starting at eof
    close access lelog
end ecriture

on total(nomdos, toth, totmn, totsec)
    -- calcule le temps total heure-minutes-secondes et ecrit dans fichier texte total dossier+dans fichierprovisoire listh+listmn+listsec
    set toth to toth + totmn div 60 as string
    set totmn to totmn mod 60 + totsec div 60 as string
    set totsec to totsec mod 60 as string
    set lelog to open for access ((path to desktop folder as text) & "le dossier.txt") as text with write permission
    write " total dossier " & nomdos & (ASCII character 9) & toth & " h " & totmn & " mn " & totsec & " sec" & (ASCII character 13) & return to lelog starting at eof
    close access lelog
end total

tell application "Finder"
    -- calcule le temps total heure-minutes-secondes
    set totgh to tothg + tmng div 60 as string
    set tmng to tmng mod 60 + tsecg div 60 as string
    set tsecg to tsecg mod 60 as string
    --Ecrit dans la fichier texte le nom + tabulation  + la durée   
    set lelog to open for access ((path to desktop folder as text) & "le dossier.txt") as text with write permission
    write " total général du dossier " & (ASCII character 9) & tothg & " h " & tmng & " mn " & tsecg & " sec" & return to lelog starting at eof
    close access lelog
end tell


tell application "Finder"
    (display dialog ("waouou ... Ca y est c'est fait !") buttons {"Salut !"})
end tell
 
Bonjour Igorbatchev,

"l'importation dans Avid... Ca prend déjà du temps!". Petite précision à propos de cette phrase, car depuis maintenant quelques années Avid n'importe plus forcement les médias (au moins depuis la version 4 si mes souvenirs sont bons). C'est pour cela que j'ai parlé d' "AMA link" et non d'import.
cf la doc d'Avid média composer ici :
https://www.avid.com/fr/plugins/ama-plugins

en plus de ca tu as des infos ici, pour récuperer les infos des bin dans excel.
https://www.repaire.net/forums/discussions/convertir-un-bin-en-fichier-texte.153447/

bonne soirée.
 
Un immense merci zeltron54, ça marche du tonnerre et je pense sincerement que ca servira a plus d'une personne ! Pour ma part je commence dés aujourd'hui a utiliser l'appli, mais je compte bien prendre le temps de la comprendre, si je me perds je reviendrai vers toi :)

Merci aussi a toi aussi PoxMox. J'avais bien compris aue tu parlais d'AMAlimk (donc je me suis planté en parlant d'import) mais je trouve quand meme plus simple de puvoir faire ces demarches sans passer par les logiciels de montage ! Cela dit je savais pas au on pouvait si facilement passer du bin a Excel et ca m'aide grandement.

Encore merci et a plus !
Igor
 
Salut Zeltron,
Je rencontre un petit problème avec le script que tu as fabriqué (ça tombe bien ça va me forcer à le comprendre) :

Screen Shot 2018-02-12 at 11.35.36.webp

J'ai d'abord cru que le script ne gérait pas les videos qui sont ont une duree inferieure a une minute (c'est a dire les videos qui ont une valeur minutes = 0) mais apres plusieurs essais il y en a pour lesqueles ca fonctionne.

Si je comprends bien c'est cette ligne qui pose problème :

set minute to text item 3 of duree as string -- récupère les minute
Pour comprendre j'aimerais fouiner un peu mais je bloque:
Je voudrqais afficher "duree" pour comprendre ce qui va pas dans la valeur.
Pour ca j ai fait ce script :
Bloc de code:
tell application "Finder"
    set chemin to choose folder with prompt "Sélectionnez le dossier contenant les fichiers à renommer"
   
    my inspecter(chemin)
end tell

on inspecter(un_dossier)
    tell application "Finder"
       
        set nomdos to name of un_dossier -- recupere le nom du dossier
        set FVideo to {"dv", "DV", "mov", "MOV", "VOB", "vob", "divx", "mp4", "MP4"} -- liste des extensions a traiter
        -- mise a 0 des variables duree fichier
        set toth to 0
        set totmn to 0
        set totsec to 0
        -- traitement des fichiers :
        set les_fichiers to files of un_dossier
        repeat with chaque_fichier in les_fichiers
            -- traitement d'un fichier
            tell application "Finder"
                set nom to name of chaque_fichier --récupère le nom du fichier
                set AppleScript's text item delimiters to {"."} -- defini le separateur
                set lextension to get last text item of nom -- recupère l'extension
                set duree to "" -- mise a blanc de la durée
                set lefichier to chaque_fichier as string
                if lextension is in FVideo then -- si fichier video
                    set duree to do shell script "/usr/local/bin/exiftool -duration " & quoted form of POSIX path of lefichier --récupère la duréeau format teste exiftool
                    print duree
                end if
            end tell
        end repeat
    end tell
end inspecter

mais j'ai un message d'erreur.
Screen Shot 2018-02-12 at 12.33.32.webp
J ai cru comprendre que c'est parce que ma valeur duree n est pas une chaine de caracteres. Du coup j'ai ajouté une ligne :


Bloc de code:
tell application "Finder"
    set chemin to choose folder with prompt "Sélectionnez le dossier contenant les fichiers à renommer"
   
    my inspecter(chemin)
end tell

on inspecter(un_dossier)
    tell application "Finder"
       
        set nomdos to name of un_dossier -- recupere le nom du dossier
        set FVideo to {"dv", "DV", "mov", "MOV", "VOB", "vob", "divx", "mp4", "MP4"} -- liste des extensions a traiter
        -- mise a 0 des variables duree fichier
        set toth to 0
        set totmn to 0
        set totsec to 0
        -- traitement des fichiers :
        set les_fichiers to files of un_dossier
        repeat with chaque_fichier in les_fichiers
            -- traitement d'un fichier
            tell application "Finder"
                set nom to name of chaque_fichier --récupère le nom du fichier
                set AppleScript's text item delimiters to {"."} -- defini le separateur
                set lextension to get last text item of nom -- recupère l'extension
                set duree to "" -- mise a blanc de la durée
                set lefichier to chaque_fichier as string
                if lextension is in FVideo then -- si fichier video
                    set duree to do shell script "/usr/local/bin/exiftool -duration " & quoted form of POSIX path of lefichier --récupère la duréeau format teste exiftool
                    set duree as string
                    print duree
                end if
            end tell
        end repeat
    end tell
end inspecter

Mais impossible de sauvegarder mon script, le programme renvoit une erreur de syntaxe . "A end of line can’t go after this class name."
Là j'avoue que je suis perdu, quelque chose m'échappe mais j'arrive pas à savoir quoi... J'ai l'intuition que le beugue vient du fait que Exiftool renvoit quelque chose de différent parfois et que le script n'arrive pas à le gérer, mais j'aurais besoin de l'afficher pour pouvoir comprendre !
J'espère aue mon message est pas trop confu,
Igor
 
Coucou igor
alors tu vas juste ajouter dans mon script la ligne:
display dialog duree
juste entre les 2 lignes :
set duree to do shell script "/usr/local/bin/exiftool -duration " & quoted form of POSIX path of lefichier --récupère la duréeau format teste exiftool

set AppleScript's text item delimiters to {":"}
ce qui donne :

set duree to do shell script "/usr/local/bin/exiftool -duration " & quoted form of POSIX path of lefichier --récupère la duréeau format teste exiftool
display dialog duree
set AppleScript's text item delimiters to {":"}

cette ligne affiche la valeur de la variable duree qui est récupéré par exiftool
cette variable a normalement la forme:
Duration :0:02:30
Exemple pour une durée de 2 minutes 30
Ensuite le script prend la dernière valeur apres les ":" pour les secondes , puis la troisième valeur depuis le debut pour les minutes et enfin la deuxième valeur pour les heures.
A voir également l'extension de ton fichier. cette extension doit être renseignée dans la liste:
set FVideo to {"dv", "DV", "mov", "MOV", "VOB", "vob", "divx", "mp4", "MP4"} -- liste des extensions a traiter
Sinon ajoute la.
 
Alors, je viens d'essayer...
Un fichier normal donne une durée normale :

Screen Shot 2018-02-12 at 13.54.58.webp

par contre le fichier qui me pose problème :

Screen Shot 2018-02-12 at 13.54.12.webp

Pour une raison que je capte pas la valeur renvoyee n'est pas 0:00:23
Et pourtant ce n'est pas un problème que j'ai avec tous les fichiers de moins d'une minute ! Par exemple :

Screen Shot 2018-02-12 at 13.59.04.webp

Du coup il faut que je cherche pourquoi ExifTool me renvoie une valeure cheloue comme ça en fait...

Je précise qu'au niveau des extensions je ne suis que sur du .mov puisque je travaille pour l'instant à partir de mes proxys.
 
Dernière édition:
Donc le problème vient du fichier !
Alors qu'a t'il de particulier, même origine, ou a t'il été déjà travaillé avec un autre logiciel ?
Là, je ne peut pas t'aider à trouver d'où vient la différence.