Créer un DCP sous linux Ubuntu | en test

Coeur Noir

Avatar du membre
Auteur du sujet
Messages : 3534
Enregistré le : lun. 2 mars 2009 - 10:16
Localisation : Maine et Loire - France
Contact :

Créer un DCP sous linux Ubuntu | en test

Message » jeu. 24 févr. 2011 - 4:58

CREER UN DCP SOUS UBUNTU
...et bien d'autres distributions linux.


Notes préalables :


Je relate ici mon expérience suite à la lecture de différents sites, blogs ou forums. Grand merci donc aux premiers "défricheurs" ! Entre autres : aproche sur les Forums du Repaire ce tuto est une reformulation de son post du 27/05/2010 | Home - digital_cinema_tools - GitHub | Welcome to Bruce Lindbloom's Web Site | crumbs: Making a DCP entirely with open source tools et of course projectionniste.net !

Les bonnes habitudes à prendre :

- la création d'un DCP demande de la place sur le disque dur : pour un film d'environ trois minutes, la séquence d'images avant conversion en jpeg2000 pèse déjà une bonne quinzaine de Go.

- n'éparpillez pas vos dossiers et fichiers à travers tout le système, crééez plutôt un dossier de travail au plus près de la racine de votre disque dur où vous placerez toutes vos ressources.

- gardez sous les yeux ce mode d'emploi, afin de pouvoir copier/coller les commandes, en les adaptant à votre projet.

Les prérequis :

- un fichier audio/video à convertir, dans votre dossier de travail. Idéalement cette vidéo est déjà en 2K, flat ou scope, ou en HD.

- savoir ouvrir un terminal et s'y promener dans ses dossiers, restons simples : les commandes cd et ls m'ont suffi.
Quelques astuces :
    > la touche "tabulation" auto-complète ce que vous êtes en train d'écrire
    > écrire cd ~/Bureau équivaut à cd /home/nom_utilisateur/Bureau
    > mon_repertoire/ pour indiquer qu'il faut descendre dans le dossier
    > ../ pour remonter d'un répertoire
    > ../../ remonter de deux répertoires
    > et donc ../tif_xyz (par ex) pour aller du répertoire où on se situe à celui d'à côté.


- la manoeuvre nécessite l'installation des logiciels suivants :
ffmpeg > http://doc.ubuntu-fr.org/ffmpeg | http://www.ffmpeg.org/index.html
imagemagick > déjà installé sous ubuntu
openjpeg > sudo apt-get install openjpeg-tools | http://www.openjpeg.org/
opencinematools > https://launchpad.net/~tim-klingt/+arch ... inematools > sudo apt-get install opencinematools | http://code.google.com/p/opencinematools/
SoX > sudo apt-get install sox | http://doc.ubuntu-fr.org/sox

note : si vous avez déjà utilisé DCP Creator sous windows, vous remarquerez qu'il s'agit exactement des mêmes outils, à l'exception de Sox (perso j'utilise audacity > http://doc.ubuntu-fr.org/audacity)

OPEN DCP
Il s'agit d'un autre logiciel open-source et multi plate-forme, plus complet et fonctionnel. Il se trouve par là, une procédure d'installation (sous ubuntu) par ici. Il a le gros avantage de regrouper tous les outils nécessaires à la créa d'un DCP sous une seule appli, il est de plus disponible avec des interfaces graphiques pour window$ et macinto$h qui sont, elles, très faciles à installer.

FFMPEG et Audacity (ou sox) restent indispensables.


DESCRIPTION DES ETAPES :
1) extraire de la video source la séquence d'images, "emballer" toutes les images converties dans un fichier mxf.
2) extraire de la video source le son, "emballer" toutes les pistes son dans un (autre) fichier mxf.
3) création des fichiers nécessaires au Digital Cinema Package : composition playlist, packing list, assetmap et volindex

...4) ingestez dans votre serveur !



Z'êtes prêts ? Avez vos clopes, vot' coca et le paquet de biscuits ? Alors allons-y !


ETAPE 1) IMAGES

1a - extraction des images


Dans votre dossier de travail, créer un dossier qui accueillera la séquence d'images, par exemple tif_rgb.

On extrait de la vidéo une séquence d'images .tif avec ffmpeg. Selon son format, on peut avoir besoin d'y rajouter des bandes noires (pad) ou de la tailler (crop) ou de la redimmensionner (s). C'est du cinéma, donc 24 images par seconde (r).

Ouvrez le terminal, placez-vous dans votre dossier de travail, lancez la commande :

Code : Tout sélectionner

ffmpeg -i /chemin_vers/votre_dossier/de_travail/votre_video.flv -r 24 -s 1910x1080 -padleft 44 -padright 44 /chemin_vers/votre_dossier/de_travail/tif_rgb/%06d.tif


Plus d'explications ? Pour l'exemple, la video source est en 16/9ème dans une résolution inférieure au 2K alors on l'aggrandit/déforme en 1910x1080 et on lui ajoute 44 pixels de noir à gauche et à droite pour atteindre le bon format flat 2K (à savoir : les valeurs de pad ou crop sont toujours paires, d'où le fait de ne pas redimensionner en 1920x1080 qui impliquerait des valeurs de pad impaires...)

note : avec ffmpeg vous n'êtes pas contraints d'utiliser un fichier source en avi.

1b - changement d'espace colorimètrique

Dans votre dossier de travail, créer un dossier qui accueillera la nouvelle séquence d'images, "recolorées", par exemple tif_xyz.

L'espace colorimétrique utilisé par les projecteurs numériques de cinéma est bien plus vaste que celui utilisé par l'affichage d'un écran d'ordinateur. Imagemagick va se charger de cette première conversion.

Dans le terminal, placez-vous dans votre dossier tif_rgb, lancez la commande :

Code : Tout sélectionner

for f in *.tif; do echo $f; convert $f -alpha off -depth 16 -gamma 0.454545 -resize 1998x1080 -recolor "0.4124564 0.3575761 0.1804375 0.2126729 0.7151522 0.0721750 0.0193339 0.1191920 0.9503041" -gamma 2.6 -type truecolor ../tif_xyz/$f; done


Plus d'explications ? Les images sont encodées en 16 bits, sans couche alpha (transparence) car les images projetées sont "opaques", chaque pixel possède sa propre information de couleur. Application d'une matrice adéquate pour le changement d'espace de couleurs. Vous voyez là aussi une autre occasion de redimensionner les images (selon ce qui aura été fait auparavant avec ffmpeg).

1c - conversion des images tif en images jpeg2000

Dans votre dossier de travail, créer un dossier qui accueillera les images "recolorées", converties en jpeg2000, par exemple img_j2c.

Voici donc le moment où on précise que c'est bien du cinéma 2K que l'on souhaite obtenir.

Dans le terminal, placez-vous dans votre dossier tif_xyz, lancez la commande :

Code : Tout sélectionner

for f in *.tif; do echo $f; image_to_j2k -i $f -cinema2K 24 -o ../img_j2c/$f.j2c; done


note : sur mon vieux coucou d'ordi à cette étape, ce fut long, de 1 à 3 secondes par image... Mais pas grave, sous linux on peut faire plusieurs choses en même temps ;-)

1d - emballage des images !

Le format MXF est non seulement indépendant du standard mais également des caractéristiques dimensionnelles des images vidéo (525 ou 625 lignes, SDTV ou HDTV... ) ou du débit utilisé (de 500 Kb/s à 1,5 Gb/s). MXF est également indépendant vis à vis des types de plate-formes informatiques et des systèmes d’exploitation utilisés (Windows, MacOS, Unix, Linux...) ou par rapport aux protocoles réseaux. > http://www.pfast.fr/?MXF-un-format-d-ec ... rtpage=2-6

Dans le terminal, placez-vous dans votre dossier img_j2c, lancez la commande :

Code : Tout sélectionner

asdcp-test -v -L -c titre_de_votre_choix_video.mxf /chemin_vers/votre_dossier/de_travail/img_j2k/


ETAPE 2) SON

2a - extraction du son depuis la video


Dans le terminal, placez-vous dans le dossier où se situe votre_video, normalement c'est votre dossier de travail, lancez la commande :

Code : Tout sélectionner

ffmpeg -i votre_video.flv -vn -f wav -ar 48000 -ac 2 son_de_ma_video.wav


Ici on a converti le son de la video en un fichier .wav stéréo (d'où le 2 dans la ligne de commande) échantillonné à 48000 Hz. Cette valeur d'échantillonnage est le minimum requis, 96 kHz est envisageable.

2b - De la stéréo au 5.1

A partir de la piste son de votre_video nous allons créer les 6 pistes attendues pour la diffusion en salle, soit gauche, droite, centre, basse, ambiance gauche et ambiance droite. Allez pour aller plus vite trichons en mettant en ambiance les mêmes pistes que gauche et droite...

Dans le terminal, placez-vous dans le dossier où se situe son_de_ma_video.wav, lancez les commandes :

Code : Tout sélectionner

sox son_de_ma_video.wav son_de_ma_video_gauche.wav mixer -l channels 1

sox son_de_ma_video.wav son_de_ma_video_droite.wav mixer -r channels 1

sox son_de_ma_video.wav son_de_ma_video_centre.wav channels 1

sox -V -v 0.5 son_de_ma_video_centre.wav son_de_ma_video_basse.wav lowpass 150


Les possibilités offertes par sox semblent innombrables (effets, volume, filtres, etc...) au vu de sa documentation (faites man sox dans le terminal, pour la consulter) mais j'avoue m'y sentir perdu et préférer dans ce cas une interface graphique tel qu'Audacity, terriblement complet aussi ! Même si c'est nettement moins rapide...

note : suite à l'utilisation de DCP Creator je croyais que le format des fichiers son étaient obligatoirement wav 24 bits signed PCM - qui confirme ?


2c - emballage du son !


Dans le terminal, placez-vous dans le dossier où se situent les 4 pistes wav précédemment créées, lancez la commande :

Code : Tout sélectionner

asdcp-test -v -L -c titre_de_votre_choix_audio.mxf son_de_ma_video_gauche.wav son_de_ma_video.wav son_de_ma_video_droite.wav son_de_ma_video.wav son_de_ma_video_centre.wav son_de_ma_video_basse.wav son_de_ma_video_gauche.wav son_de_ma_video_droite.wav


On arrive presque à la fin !

ETAPE 3) CREATION DU DCP


Placez vos deux fichiers mxf dans un dossier. Dans le terminal, allez dans ce dossier.

3a -créer la Composition Play List

Lancez la commande :

Code : Tout sélectionner

mkcpl --kind short --title NOM_COMPLET_ET_CONVENTIONNEL_DU_DCP --annotation NOM_COMPLET_ET_CONVENTIONNEL_DU_DCP --norating titre_de_votre_choix_video.mxf titre_de_votre_choix_audio.mxf > titre_de_votre_choix.cpl.xml


Derrière kind se détermine le type du contenu, soit trailer, teaser, short, test ou feature, etc...
Important : A propos du nommage des DCP, un petit tour par là s'impose > http://digitalcinemanamingconvention.com/

3b - créer la PacKing List

Depuis ce même dossier, dans le terminal lancez la commande :

Code : Tout sélectionner

mkpkl --issuer nom_du_distributeur --annotation NOM_COMPLET_ET_CONVENTIONNEL_DU_DCP titre_de_votre_choix_video.mxf titre_de_votre_choix_audio.mxf titre_de_votre_choix.cpl.xml > titre_de_votre_choix.pkl.xml


3c - créer ASSETMAP et VOLINDEX

Toujours depuis ce même dossier, dans le terminal lancez la commande :

Code : Tout sélectionner

mkmap --issuer nom_du_distributeur titre_de_votre_choix_video.mxf titre_de_votre_choix_audio.mxf titre_de_votre_choix.cpl.xml titre_de_votre_choix.pkl.xml


Et voilà c'est fini... enfin presque.

ETAPE 4) COPIEZ ET INGESTEZ

Sur un support que vous pourrez connecter à votre serveur préféré, copiez, dans un dossier du nom de votre DCP, les 6 fichiers suivants :

Les images > titre_de_votre_choix_video.mxf
Le son > titre_de_votre_choix_audio.mxf
La Composition Play List > titre_de_votre_choix.cpl.xml
La PacKing List > titre_de_votre_choix.pkl.xml
Le "squelette" > ASSETMAP
Le fichier d'index > VOLINDEX

Prenez garde au système de fichiers de vos supports : disques durs en ext (et pas ntfs) DVD gravés en UDF, clé usb... ben ça dépend beaucoup des serveurs : via la librairie ymagis une clé usb en ntfs passe très bien, le FAT32 vu la taille des fichiers me paraît exclu...
Modifié en dernier par Coeur Noir le ven. 2 sept. 2011 - 13:13, modifié 14 fois.

Coeur Noir

Avatar du membre
Auteur du sujet
Messages : 3534
Enregistré le : lun. 2 mars 2009 - 10:16
Localisation : Maine et Loire - France
Contact :

Message » jeu. 24 févr. 2011 - 5:04

J'espère faire évoluer ce tuto en fonction de mes tatônnements et vos retours d'expérience.

Bref tenez-moi au courant !
Modifié en dernier par Coeur Noir le lun. 14 mars 2011 - 13:16, modifié 4 fois.

Billy

Avatar du membre
Messages : 327
Enregistré le : dim. 22 févr. 2009 - 15:26

Message » jeu. 24 févr. 2011 - 8:42

Merci Coeur Noir pour ce tuto.
Il me reste plus qu a reinstaller linux sur un de mes ordis pour tester tout ca.
La société est bien foutue, elle fout des uniformes aux cons pour qu’on les reconnaissent !
-Bernie-

De l Independant a la marque jaune qui est du cote obscure.
Les temps sont durs.

Coeur Noir

Avatar du membre
Auteur du sujet
Messages : 3534
Enregistré le : lun. 2 mars 2009 - 10:16
Localisation : Maine et Loire - France
Contact :

Message » jeu. 24 févr. 2011 - 12:41

Hi, hi :lol: c'est ce que j'ai fait il y a quelques jours : geek attitude ! Voir par là...

Surtout donne ton retour d'expérience - dès que tu pourras - afin qu'on laisse un maximum d'infos disponibles à ce sujet : je suis sûr qu'il y a dans les parages des pros de la ligne de commande :wink:

C'est certes moins lisible qu'une interface graphique mais ça m'a paru assez rapide et surtout ça n'a pas planté mon vieil ordi. De plus pendant que ça travaille, on a toujours la main sur l'ordi pour faire autre chose : sous xp comme vista lorsque je lance DCP Creator c'est même pas la peine d'imaginer ouvrir une fenêtre...

Ah si seulement je savais "programmer" une interface graphique, j'en vois assez bien le scénario...

darklover

Avatar du membre
Messages : 800
Enregistré le : mar. 11 mai 2010 - 13:33
Localisation : Paris

Message » jeu. 24 févr. 2011 - 13:43

bonjour Coeur Noir

Pas mal en effet, beau boulot de traduction.

Bien que j'aurais dis "encapsuler" au lieu "d'emballer" !, de meme que l'explication sur les crop (valeurs paires pas paires) : on peut avoir un dcp de 1997 x 1080 ou 2000 x 1080.
sinon effectivement, çà ne fige pas la machine, il y a un seul "thread" Image_to_j2k utilisé.
Pour la réalisation d'une interface graphique, beaucoup utilise en effet ces outils (asdcplib, opencimatools, OpenJpeg,imagemagick...) . J'en ai fait moi-meme avec visual studio 2008 (windows), pas très difficile, mais exige une petite connaissance en programmation (genre c++ ou meme basic, visual basic est très simple et performant).

Coeur Noir

Avatar du membre
Auteur du sujet
Messages : 3534
Enregistré le : lun. 2 mars 2009 - 10:16
Localisation : Maine et Loire - France
Contact :

Message » jeu. 24 févr. 2011 - 15:38

darklover a écrit :Pas mal en effet, beau boulot de traduction. Bien que j'aurais dis "encapsuler" au lieu "d'emballer" !
Merci... bien que j'aurais dit "reformulation" plutôt que "traduction" :wink: Plus sérieusement "emballer" me paraît plus imagé/parlant (certes moins technique). Et c'est la traduction littérale de "to wrap" dans la langue de Shakespeare.
darklover a écrit :de meme que l'explication sur les crop (valeurs paires pas paires) : on peut avoir un dcp de 1997 x 1080 ou 2000 x 1080.
Oui on peut avoir un dcp "mal taillé" mais à priori on ne peut pas entrer des valeurs de crop ou pad impaires dans ffmpeg (cela dépend-il du format de la video, des options de conversion ? L'expérience nous dira...)
darklover a écrit :sinon effectivement, çà ne fige pas la machine, il y a un seul "thread" Image_to_j2k utilisé.
Sous windows le processus image_to_j2k monopolise le ou les processeurs - sous linux ça a l'air de se passer autrement : quelqu'un pour m'expliquer ?
darklover a écrit :Pour la réalisation d'une interface graphique, beaucoup utilise en effet ces outils (asdcplib, opencimatools, OpenJpeg, imagemagick...) . J'en ai fait moi-meme avec visual studio 2008 (windows), pas très difficile, mais exige une petite connaissance en programmation (genre c++ ou meme basic, visual basic est très simple et performant).
Vive l'open-source et les recommandations/normes publiées clairement et encore mille bravos à ceux qui comprennent tout ça et partagent ! (je ne fais que répéter, reformuler après avoir testé...) Je n'ai aucune connaissance en prog' et c'est sous ubuntu que j'aimerais avoir une interface graphique, des tuyaux ?

djromain07

Messages : 249
Enregistré le : lun. 5 juil. 2010 - 14:42

Message » jeu. 24 févr. 2011 - 21:04

Comme dit Billy, reste plus qu'à tester :)

Merci beaucoup en tout cas 07534

crushseho

Messages : 25
Enregistré le : ven. 25 févr. 2011 - 0:00

Message » ven. 25 févr. 2011 - 0:06

Sa fait un moment que j'essaie, mon problème c'est que je n'arrive pas à installer openjpeg et opencinematools.

Je suis sous lucid lynx, quelqu'un pourrai m'aiguiller un peu?

Coeur Noir

Avatar du membre
Auteur du sujet
Messages : 3534
Enregistré le : lun. 2 mars 2009 - 10:16
Localisation : Maine et Loire - France
Contact :

Message » ven. 25 févr. 2011 - 11:50

@crushseho : pour opencinematools il faut ajouter le dépôt ppa:tim-klingt/opencinematools à tes sources de logiciels : système > administration > sources de logiciels > onglet autres logiciels > bouton ajouter

Pour openjpeg, il m'a suffi d'ouvrir un terminal et de taper

Code : Tout sélectionner

sudo apt-get install openjpg-tools


Si cela ne fonctionne pas, c'est un problème de sources, voici les miennes :
Image
sachant que lprod ne te sera pas utile (c'est pour cinelerra).

Sinon faire une install' à la main depuis http://code.google.com/p/openjpeg/downl ... z&can=2&q= mais là je ne saurais t'aider...

crushseho

Messages : 25
Enregistré le : ven. 25 févr. 2011 - 0:00

Message » ven. 25 févr. 2011 - 16:48

Merci de la réponse, j'ai réussi ce matin pour opencinematools, j'ai vérifier mes dépôts etc sa marcher pas... je reviens 5 minutes après je lance la même commande et la sa marche... allez comprendre...

Il me reste plus que openjpeg :)

Edit : merci pour la liste de dépôts, tout est installé, je vais pouvoir tester :)

rem

Administrateur
Messages : 1003
Enregistré le : dim. 25 mars 2007 - 21:35

Message » ven. 25 févr. 2011 - 17:02

Merci Coeur Noir pour ce tuto. :D
Je viens de faire un lien sur la page d'accueil du site pointant sur ce topic

crushseho

Messages : 25
Enregistré le : ven. 25 févr. 2011 - 0:00

Message » ven. 25 févr. 2011 - 17:57

au faite petit truc pour pas mettre a chaque fois le chemin complet :
mon_repertoire/ pour indiquer qu'il faut descendre dans le dossier.
../ pour remonter d'un répertoire
../../ remonter de deux répertoires

et donc ../tif_xyz (par ex) pour aller du répertoire ou on se situe à celui d'à côté.

sa réduit la commande et sa fait gagner du temps.

Coeur Noir

Avatar du membre
Auteur du sujet
Messages : 3534
Enregistré le : lun. 2 mars 2009 - 10:16
Localisation : Maine et Loire - France
Contact :

Message » ven. 25 févr. 2011 - 18:27

C'est ajouté ;-) merci !

D'où l'interêt de travailler dans un seul dossier, où on place tout ce dont on a besoin.

crushseho

Messages : 25
Enregistré le : ven. 25 févr. 2011 - 0:00

Message » ven. 25 févr. 2011 - 20:23

Je viens de faire mon premier DCP, avec 15 sec d'une vidéos de mon fils :) Y'a juste que l'ordi est chez moi et que je suis au taf... donc faut le DL avant que je puisse tester...

opencinematools : même après l'avoir installer via la commande apt-get install, il se trouve qu'il n'était pas installé, il ne reconnaissait pas la commande asdcp-test, j'ai dut passer par le synaptic pour l'installer.

Sinon tout a roulé, merci pour le tuto !

Plus qu'a faire des tests maintenant :) et un script pour le lancer en une fois histoire de gagner du temps :)

Coeur Noir

Avatar du membre
Auteur du sujet
Messages : 3534
Enregistré le : lun. 2 mars 2009 - 10:16
Localisation : Maine et Loire - France
Contact :

Message » ven. 25 févr. 2011 - 21:00

Script, que bien sûr tu vas t'empresser de partager, hein, dis... :wink:

(curieux, je n'ai eu aucun souci pour installer...)