Welcome to our community

Be a part of something great, join today!

  • Hey all, just changed over the backend after 15 years I figured time to give it a bit of an update, its probably gonna be a bit weird for most of you and i am sure there is a few bugs to work out but it should kinda work the same as before... hopefully :)

Digital Cinema Package

Do you have acces to SMPTE 429-6-2006 (D-Cinema Packaging – MXF Track File Essence Encryption)? There are some important specifics the process needs to match.

I Don't, but I have been using the DCI Compliance Test Plan for the majority of my testing, it seems to have most of the information I need.

I think one of the best ways to share code and information is by setting up a public code repository (with something like googlecode or github). This gives you tools to track updates, feedback, some space for documentation etc. Your work can also become a catalyst for other interesting things when it's out in the wild. Also, as you mention that you're a student, these things are generally not frowned upon in a CV.

I'm currently redesigning my website, so it will have details of many of my projects including my adventures in digital cinema, but for now, the updated site is not up yet. Hopefully I'll have it done by the end of this week, here's the address: www.heathjepson.com.

So far, I don't have any code to share yet, but I may in the future since I have a tiny bit of experience with Java, C and C++.

And if anyone here knows anything about film booking, is it possible for an individual to rent a DCP for a movie that is in 2nd run or home release? I know it's a long shot, but worth a try, any tips?
 
And if anyone here knows anything about film booking, is it possible for an individual to rent a DCP for a movie that is in 2nd run or home release? I know it's a long shot, but worth a try, any tips?

You can rent DCPs through the established contacts of a commercial theater, targeting one of their servers (Distributors will, obviously, not rent out to an unknown cinema server/certificate). But this wouldn't be useful for your purposes as you want to test your own certificate creation process.

Leaves DCI's reference DCP and CineCert's KDM Generator (http://www.cinecert.com/dci_ref_01/) -- this as info for others as you have already tried that. Alas, the reference DCP seems to be unavailable at the moment, at least the link (http://www.dcimovies.com/reference/) is nil. Might turn up again, I've asked John Hurst, will post what he says.

What's wrong again with making your own simple DCP and testing your process on a server?
 
Thanks for the info. I was afraid of that, I wasn't sure if sever certificates had to come from an approved vendor or if self signed would do, but now I know.


The only thing keeping me from doing a complete test (creating an encrypted DCP, generating a KDM for my self signed cert, decrypting, playing the DCP on my computer and finally trying it out at my local cinema) is that I have not figured out how to generate KDMs yet, honestly I have not spent a great deal of time on it.
 
I met the same problem

I met the same problem

hi,fabrizio:
Have you find the method to get the IV in the mxf? I recently met the same problem.I can get the aes 128 key,but I didn't know where to get the iv.
expect you reply.thanks


KDM generation part 2
I'll continue sharing my experiences hoping somebody is interested in DCP encryption.
My first goal was to see just an image after the decryption process.
The <Cipherdata> section of the KDM was succesfully decrypted using
base64 -di cipherdata.txt | openssl rsautl -inkey my_privkey.pem -decrypt -oaep > decoded-cipherData.bin
The resulting 138 bytes file corresponds to that defined in the SMPTE document S430.1. The last 16 bytes
contain the AES128 key.
Now that the key is available I only know two options: decrypt all the asset using mxfcrypt, or extract j2c files using "asdcp-test -x"
and then decrypt them using "openssl enc -d".
Unfortunately both solutions failed: mxfcrypt was just useful to understand that the even-odd bytes of the key found in the <cipherdata>
had to be swapped: if the key is wrong mxfcrypt complains (this is very helpful!). But then the unencrypted mxf file is
unusable: asdcp-test cannot open it, and easyDcpPlayer says that the index table is missing.
"openssl enc" needs the correct option: there are many aes128 variants. After many hours I discovered that DCI uses the CBC
block cipher mode, and no "salt" in the key. Unsure about "padding". But still openssl needs the IV (initialization Vector) in addition to the key.
Trying to give the key as a password (option lower -k) didn't work.
Now: why openssl needs key and IV and mxfcrypt only needs the key? I could not find the IV inside the mxf header. How to continue?
 
Hi Sophieliucm,
actually I did not progress on that topic, since my priority was to make a KDM generator, and I got some good results, as I'll explain. About decrypting the content I'm looking forward to follow Wolfgang Woehl precious suggestions posted on 23-7-2010 as soon I've got time.
About KDM generation I tested a workflow that until now worked on two DCP servers, but I have to try it on all servers to be sure. This workflow at this time needs a commercial software, the Fraunhofer KDM generator, nice and quite affordable (euro 750). It is intended only to generate KDMs for DCP produced with EasyDcp+, but if you are able to extract the aes keys from another KDM you can easily produce the "digest" file that makes the Fraunhofer generator work. In this way I managed to build a KDM generator avoiding to use an expensive workstation (a Clipster) for everyday KDM generation.
Unfortunately it does not work under linux (only PC and mac) and since it is not handy for my workflow I'm trying an alternative (and free) solution too: to generate a new KDM just re-editing an exsisting one (of course generated for a certificate where I have the private key as well). A first naive attempt to decrypt and re-encrypt with another certificate only the <ciphertext> session failed: the doremi server ingest log said: DBCHECK_ETM_PRIVATE_INTEGRITY_FAILURE, that makes sense, since I didn't care about modifiying the <ds:SignatureValue> content. But taking care of all the (boring) required details I'm confident it will work.
Fabrizio
 
Alas, the reference DCP seems to be unavailable at the moment, at least the link (http://www.dcimovies.com/reference/) is nil. Might turn up again, I've asked John Hurst, will post what he says.
John writes that the reference package was withdrawn as it was old and contained errors. He writes that he is working on a new package (which is getting delayed by other work) and that soon SMPTE will be selling a digital leader DCP which he considers a reference DCP.
 
Hey guys. We run a DCP authoring facility in Soho, London called ExpressDCP. We have our own SMPTE compliant digital cinema to test our DCPs in. We use a powerful OpenCube server that allows us to work at twice real-time speed. We stock and hire DCI compliant CRU DX115 hard drives. And we've created and distributed digital cinema content all over the world for several major titles. We are great value for money and if you quote "Red" we'll give you a 5% discount (valid until Dec31st 2010).

Check us out at www.expressdcp.com
 
Hey guys. We run a DCP authoring facility in Soho, London called ExpressDCP. We have our own SMPTE compliant digital cinema to test our DCPs in. We use a powerful OpenCube server that allows us to work at twice real-time speed. We stock and hire DCI compliant CRU DX115 hard drives. And we've created and distributed digital cinema content all over the world for several major titles. We are great value for money and if you quote "Red" we'll give you a 5% discount (valid until Dec31st 2010).

You mean you won't do it for free? You actually expect the people here to pay you for it?

What a novel concept...
 
Ia anyone here who use the cinematools under Windows?
 
DCPC

DCPC

I've tested the open source DCP tools Windows frontend DCPC and it does actually work. I've documented my test here:

http://www.knuterikevensen.com/?p=197

you find it at:
http://cinema.terminal-entry.de/


It can multithread the openjpeg jpeg2000 encoder.
It includes the imagemagick color space conversion.
It can also make metadata from MXF files.
Does not yet support 25 fps.
 
Hi,
I was wondering if anyone knew the price for dcp-Player from fraunhofer.
The demo seems to work Ok, but also seems to want special expensive graphic cards.

Compared to dcpPlayer form www.digitall.net.au at only $250us and works well on pretty much any modern system. Does some smart processing to let the video PLAY by cutting corners if the system does not have the power to do full quality.
Great for a dcp viewer on no so great hardware.

And it does sound cheap at $250. How much is fraunhofer??
Its not on the website..


James
 
Hi,
I was wondering if anyone knew the price for dcp-Player from fraunhofer.
The demo seems to work Ok, but also seems to want special expensive graphic cards.

Compared to dcpPlayer form www.digitall.net.au at only $250us and works well on pretty much any modern system. Does some smart processing to let the video PLAY by cutting corners if the system does not have the power to do full quality.
Great for a dcp viewer on no so great hardware.

And it does sound cheap at $250. How much is fraunhofer??
Its not on the website..


James
James, the basic Player is Euro1000, the Player+ is Euro2500.
Player+ has some very handy features such as XYZ to RGB colour conversion on-the-fly, also plays stereo in a variety of formats.
 
DCP XML tool

DCP XML tool

This past weekend, I started working on a project which has an ambitious goal of being a complete open source tool for creating DCPs, along the lines of easyDCP.

The first part I tackled were the routines to create the XML files. To make them useful to me until the entire package is complete, I built a command line for them, which results in a replacement for opencinematools in my current work flow. I think it resolves some shortcomings while hopefully not introducing too many more. It is a single command line tool, rather than three, can handle multiple reels, detect MXF interop/SMPTE, 3D, generate hash digests if desired, etc.

If anybody is interested in testing it out, feedback would be appreciated. I have compiled and run it on Linux and OS X, but it should compile under Windows without much effort. It still requires the AS-DCP libraries and its dependencies. I haven't had a chance to try it on a digital server yet.

I'm sure there are plenty of bug fixes or improvements needed...

Anyway, to try it

http://code.google.com/p/opendcp/
 
Thanks for input Wolfgang! I'll get some fixes out. I wrote it while watching football, so I figured I'd have a issue or two or more. Hopefully, it is a good starting point. Did you find the command line usage to be ok?
 
Wrt usage: Without tab completion I'd probably end up in an institution. So having to say
$ opendcp_xml -r one.mxf:and_another.mxf
is a bit awkward (bash completion appends a space after the fact), no biggie though. I'm not familiar with C stdlib's getopts but I guess there should be a way to provide completion-friendly lists?

Good starting point indeed. You're going for a GUI system, right? Have you considered writing this in, at least, C++? I would think that getting stuff robust and solid (which, in my experience, is actually -- just like the old fellows say -- 90% of the work) and being flexible and quick at the same time in C would be a major pita in the long run.

I've looked at Python and the community support for neat stuff like inline C/C++/... and contemporary gui toolkits is very reassuring. It's not just a prototype platform, I'm sure you know.

Have you considered going git? In combination with something like github (no affiliation) it can take a huge load off your shoulders. Branching becomes painless, hence I use it more and enjoy the freedom for experimenting. googlecode, in comparison, is quite frugal in its offering, isn't it?
 
Yeah, the colon separators were me being lazy. I should be able to get rid of them without too much effort.

The GUI is the ultimate plan. What I'm working on first are all the routines, which could be hooked into by a CLI or GUI.

I'm not using C++ mostly out of personal preference, but if the GUI ends up being a pain using C, then I'm open to C++. Originally, I had done quite a bit of stuff in objective c with plans to only support OS X. Then I figured it would be more useful to people if I went a more cross-platform approach.

I'll check out github, never used it before. Googlecode hasn't been as smooth as I had hoped.
 
Hello everyone,

Im still waiting for compiled windows opendcp which will workin with 25fps in 3D too. But now I have another question. :)

Is possible make DCP in Cineasset from DoremiLabs and than play it on another machine (from another manufacturer)?

Thanks
 
Back
Top