Petit guide pour la création d’un DCP

Toutes les étapes pour créer vous même un fichier vidéo pour un projecteur de cinéma numérique avec Photoshop et OpenDCP.

Publié le

Cette page a été écrite grâce aux conseils du site : http://home-made-dcp.over-blog.fr/ Site au demeurant très intéressant (et très bordélique aussi).

Les fichiers faits sont conforme DCP et testés en grandeur nature sur un serveur Doremi DCP2000.

Vous aurez besoin de :

  • Une machine sous Linux pour formater et écrire le disque dur en ext3 dans le cas ou votre vidéo fait plus de 4 minutes, ou le cas échéant, de ExtFS sous OSX (payant, avec période d’essai)
  • Photoshop à partir de la CS4, ou le cas échéant After Effects. OSX ou Windows, comme vous voulez.
  • Une clé USB formaté en FAT32 ou un disque dur qui sera dédié pour le DCP (il sera repartitionné et reformaté)
  • OpenDCP, logiciel libre et gratuit. Il tourne sous Windows, Linux, et OSX
  • Une vidéo en HD 1080 à 24, 25 ou 29,97 images par seconde. Progressive ou desentrelacée. Les médias entrelacés sont interdits. Je vous conseille un programme en excellente qualité, et qui a été bien vérifié. L’idéal serait qu’elle soit déjà en 5.1
  • Du stockage en conséquence et rapide sur la machine de calcul, celle avec Photoshop/After et OpenDCP. Raid 0 ou 5 hautement conseillé. Comptez 1,26 Gbps de débit brut de base. Soit plus de 600 Go pour une heure. En 8 bits.
  • Six œufs frais
  • Beaucoup de temps, environ deux fois 5 heures pour 20 minutes de vidéo, pour un Core i7 à 2,66 GHz, avec un raid 5 sur 3 disques de 1,5 To
  • Un logiciel de traitement audio : Wavelab, Audition, Audacity… ou sox après la lecture de ce post
  • Un logiciel de montage vidéo quelconque pour extraire l’audio de la vidéo

La conversion se fait en plusieurs étapes :

  1. convertir votre vidéo en suite d’image TIFF
  2. convertir la suite d’image TIFF en suite d’image JPEG2000
  3. wrapper la suite d’image JPEG2000 dans un fichier MXF
  4. extraire l’audio
  5. convertir l’audio en 24 bits
  6. normaliser l’audio à -12 dbFS
  7. exporter l’audio en séparant les canaux
  8. wrapper l’audio dans un MXF
  9. créer le DCP : produire les XML qui accompagnent les MXF
  10. repartitionner et formater le disque dur en ext3
  11. écrire le DCP sur le disque dur
  12. Enjoy !

Attachez votre ceinture : on commence.

Convertir votre vidéo en suite d’image TIFF

Mise à jour : attention avec Photoshop

Ouvrez Photoshop.

J’utilise Photoshop, mais After peut convenir, en sachant que j’ai eu de gros problèmes d’engorgement de débit de disque sous Windows avec lui.

Si vous préférez utiliser After, adaptez ce que je fais avec Photoshop, pour au final, faire la même chose.

Vérifiez que votre espace de travail RVB est bien en sRGB. Dans le menu Edition / Couleurs.

Choix du profil de couleurs

Ouvrez la vidéo dans Photoshop.

Changez la taille de la zone de travail :

Menu zone de travail

Définissez la largeur à 1998 pixels

Taille zone de travail

Pourquoi 1998 ? Parce qu’il y a trois formats en cinéma numérique:

  • le Flat – F, soit du 1998×1080 en 2K, ce qui fait un ratio de 1,85
  • le Scope – S, soit du 2048×858 en 2K, ce qui fait un ratio de 2,39
  • le Full – C, soit du 2048×1080 en 2K, ce qui fait un ratio de 1.90

Nous allons faire du flat, c’est ce qu’il y a de plus proche avec la HD.

Ensuite, nous allons ajouter les petites bandes noires à gauche et a droite : ajoutez un calque, et mettez le sous le calque de votre vidéo:

Ajout d'un calque transparent

Utilisez le pot de peinture, en noir, pour remplir le Calque 2.

Vous avez maintenant un programme prêt à l’export. Vous pouvez bien sur ajouter des logos, ou faire de la retouche, cela ne change pas.

Menu rendu video

Fichier / Exportation / Rendu vidéo

Param rendu video cercle

Vérifiez que :

  1. Emplacement / Nom : « UN_NOM_DE_FICHIER_SANS_ESPACE_«  AVEC UN « _ » à la fin !
  2. Choisissez un dossier vide
  3. Option de fichier / Séquence d’images TIFF, avec 5 chiffres
  4. Bouton paramètre : sans compression, entrelacé, IBM PC, pyramide d’images, pas de calques
  5. Option de rendu : sans alpha, et fréquence d’images du document

Lancez… et patientez

Convertir la suite d’image TIFF en suite d’image JPEG2000

Ouvrez OpenDCP, onglet JPEG2000

Jpeg2000

Laissez tout par défaut, sauf si vous savez ce que vous faites, hormis :

  • frame rate : celui de votre vidéo
  • Threads : égal ou inférieur au nombre de processeurs de votre machine : ici un i7 avec Hyper Treading 2×4 coeurs
  • Input et Output directory
  • Bandwidth : ne montez pas trop en débit, en 125 ça fonctionne très bien (le JPEG2000 est très efficace)

Attention, le dossier output doit être vide.

Lancez… et patientez encore très longtemps.

Vous pouvez ouvrir les fichiers JPEG2000 avec Photoshop, en définissant le profil de couleur en XYZ.

Dans le menu édition :

Edition definir un profil Attribuer un profil

Sinon… et bien vous verrez bien la tête de vos couleurs…

Wrapper la suite d’image JPEG2000 dans un fichier MXF

Respirez, le plus long est fait.

MXF creator jpeg2000

Dans OpenDCP, onglet MXF Creator :

  • Source JPEG2000
  • on fait du MXF SMPTE
  • réglez la bonne fréquence d’image

En entrée, votre séquence JPEG2000, et en sortie, un fichier MXF. Donnez lui un nom court, sans accents, et sans espaces.

L’opération est assez rapide : le temps de copie des JPEG2000.

Extraire l’audio

Avec votre logiciel de montage préféré, extrayez le mix audio (wav ou aiff). Il doit avoir la même durée, et être parfaitement synchrone avec la vidéo. Vous pouvez ouvrir le fichier vidéo avec Audition si vous l’avez.

Vous pouvez aussi utiliser sox en suivant cette procédure : Exporter l’audio d’une vidéo pour un DCP. Si cela fonctionne pour vous, passez directement à l’étape Wrapper l’audio dans un MXF, plus bas…

Convertir l’audio en 24 bits

Ouvrez votre fichier audio avec votre éditeur préféré, et lancez une conversion en 24 bits si votre source est en 16 bits.

Le DCP impose le 24 bits.

Normaliser l’audio à -12 dBFS

La crête la plus forte du signal doit être à -12dBFS, c’est imposé par le DCP (en télévision pour un prêt à diffuser, on impose une crête à -9 dbFS). Par contre ici, la dynamique audio n’est pas vraiment restreinte, alors faites vous plaisir.

Normalisez bien tout les canaux ensembles avec le même gain, même en 5.1. Attention, si le 5.1 est recommandé, n’improvisez pas un mix 5.1 sans les outils et les compétences pour le faire (le risque est d’avoir des décalages de phase ou des masques de fréquence apparaitre entre les canaux).

Exporter l’audio en séparant les canaux

Faites un fichier wav, PCM mono, 24 bits, 48 kHz.

Un fichier par canal.

Wrapper l’audio dans un MXF

Retournez dans OpenDCP, onglet MXF Creator

MXF WAV

  • Source WAV (c’est bien, vous suivez…)
  • on fait du MXF SMPTE
  • réglez la bonne fréquence d’image, mais ça, vous le saviez déjà

Envoyez vos WAV dans Sound Input, après avoir défini Stereo ou 5.1

En sortie, le deuxième fichier MXF pour l’audio. Donnez lui la aussi un nom court, sans accents, et sans espaces.

Créer le DCP : produire les XML qui accompagnent les MXF

Le DCP c’est, au minimum :

  • un MXF pour la vidéo en JPEG2000
  • un MXF pour l’audio en WAV PCM
  • un fichier VOLINDEX.xml (trivial) qui appel un ASSETMAP
  • un fichier ASSETMAP.xml qui référence les MXF, CPL et PKL
  • un fichier *_cpl.xml qui référence votre programme : durée, ratio, titre, etc…
  • un fichier *_pkl.xml qui identifie les deux MXF : taille, hash (sha-1), mime type.
  • tout ça à la racine d’un disque dur/clé usb.

Les XML doivent être produit par OpenDCP : c’est plus simple, plus rapide et plus sûr. Si vous voulez utiliser des fonctions avancées (playlist, cryptage), passez sur une appli pro.

Donc, dans OpenDCP, onglet DCP Package, définissez les titres : Composition Parameters

  • Content Title : utilisez le bouton Title Generator

Content title

Vous devez avoir compris le principe… Pas d’espace ni d’accents ni autre chose que des majuscules et des minuscules pour le titre du film tel que TitreDuFilm.

Je laisse studio vide, ça marche sans.

  • définissez les autre champs comme moi. Je pense que vous pouvez avoir plus de lattidute pour ça – ce ne sont que des métadonnées tierces – mais je n’ai pas pu faire trop d’essais.
  • je n’ai jamais utilisé XML digital signature

DCP Package v2

  • Pour Reel, c’est très simple mais n’inversez pas picture et sound 😉
  • Vérifiez que les durations soient bien identiques
  • Create DCP pour lancer l’ensemble. Patentez, c’est un peu long, le temps du calcul des SHA-1 sur les deux MXF

J’ai eu un bug avec la version Windows (0.0.22) sur la taille « vue » du MXF vidéo par OpenDCP dans le XML _pkl. Si vous avez le problème, utilisez OpenDCP sous OSX ou Linux (ne copiez que les deux MXF si vous avez préparé l’ensemble sous Windows comme moi).

Repartitionner et formater le disque dur en ext3

Deux solutions : utilisez Linux si vous en avez un sous la main, ou alors utilisez ExtFS for Mac OS X.

Sous Linux

Vérifier votre disque : la table de partition doit être de type DOS/MBR et ne doit y avoir qu’une seule partition (en fait, la configuration par défaut). Si le disque vient d’un Mac (GUID/GPT), il faut repartitionner.

Vous pouvez utiliser fdisk, ou gparted.

Puis formatez en ext3.

sudo mkfs.ext3 -j -I 128 /dev/sdx0 -L "DCP"

Remplacez sdx0 par votre périphérique.

Le « -I 128 » est obligatoire.

N’utilisez pas des outils graphique si vous n’êtes pas sûr que ce paramètre est bien utilisé.

Utilisez tune2fs pour ne pas avoir de problème si votre disque fait beaucoup d’allez retours entre le serveur de projection et votre machine

sudo tune2fs -i 0 -c 1000 /dev/sdx0

Sous Mac

Avec ExtFS d’installé et en utilisant l’utilitaire de disque, effacez le disque en « Extended Format ». C’est tout.

Ecrire le DCP sur le disque dur

Faite une simple copie à la racine du disque du DCP, c’est à dire des 4 XML et 2 MXF.

Ensuite, vous pouvez faire une dernière vérification (facultative) : calculez la somme de contrôle sha-1 des deux MXF, puis allez dans le fichier _pkl.xml, vous avez 3 assets : la vidéo, l’audio, et le _cpl.xml

Dans la balise <hash> vous avez, codé en base64, la calculez la somme de contrôle sha-1 calculée par OpenDCP.

Avec ce petit script :

#!/bin/sh INPUT=$1;
echo $INPUT > /tmp/hash.txt
openssl enc -d -base64 -in /tmp/hash.txt -out /tmp/hash.txt.done
cat /tmp/hash.txt.done
hexdump /tmp/hash.txt.done
rm /tmp/hash.txt
rm /tmp/hash.txt.done

que vous exécutez avec en paramètre votre hash en base64 base64.sh JzU4RGZ9XwTjm+M2UkEWcb/qOMs= Vous obtiendrez le sha-1 calculé par OpenDCP

0000000 27 35 38 44 66 7d 5f 04 e3 9b e3 36 52 41 16 71
0000010 bf ea 38 cb
0000014

soit ici : 27353844667d5f04e39be33652411671

A utiliser si vous avec un problème de reconnaissance du fichier par le serveur de projection. Comparez aussi la taille de vos fichiers et ceux inscrits dans le pkl, j’ai eu des bugs avec la version d’OpenDCP sous Windows.

Enjoy !

Ingestez le serveur avec votre disque dur.

(Vous pouvez maintenant vous cuire une omelette avec vos œufs, devant un bon film, vous l’avez mérité)

Mise à jour du 06/04/2012

Citation de la procédure en utilisant sox

Mise à jour du 17/08/2013

Correction d’erreurs suggérés par un lecteur au niveau du SHA-1 au lieu du 256, de la définition de l’ASSETMAP, et de la casse du titre du film.