Open Source DCP Player Proof of Concept

This is a proof of concept that it is possible today to build a DCP player for Macintosh OSX 10.8 with open source tools. It explains you how to to install the necessary tools and how to use it.

It is a proof of concept. There is no GUI application (we use ffplay) and you need to select the media file yourself and the playback is not realtime. But you can inspect DCP content now if you want.

Currently, ffmpeg can unpack MXF files and decode JPEG2000 streams. However, it cannot convert from the XYZ-colorspace to RGB-Colorspace.

Therefore I propose to modify the ffmpeg source code by adding the xyz2rgb Video Filter. This is why you need to compile the ffmpeg binaries and its dependencies yourself.

Important update April 30rd 2013: The colorspace transform has been integrated today in ffmpeg in libswscale. This means our code is not needed any more. We will check the last build and get back to you.
https://ffmpeg.org/trac/ffmpeg/ticket/1279

Important update June 3rd 2013: With the current build of ffmpeg, creation of a Prores from a DCP is as simple as
ffmpeg -i j2c.mxf -i pcm.mxf -vcodec prores -acodec pcm_s16le output.mov

Documentation

Install ffmpeg with xyz2rgb Video Filter
Use ffmpeg for DCP playback
Use ffmpeg for DCP to h.264 conversion
xyz2rgb Video Filter documentation

Download

xyz2rgb.zip Source code changes on ffmpeg new version 1.1
http://www.filmlist.ch/dcp/dcpsample.zip Sample DCP folder to use for test: iPhone movie clip 1080p 30fps converted to DCP with OpenDCP, 360 MB

License

The xyz2rgb Video Filter is released as LGPL. ffmpeg is a great tool so I am proud to add my little contribution on it. It took about 30 hours to code and check xyz2rgb.

Current limitations

  • I will propose the inclusion of the xyz2rgb filter on the ffmpeg forums. However, I am not acqainted on the handling of CVS servers, so I hope somebody of the developer group will do it.
  • Currently, you need to choose the mxf files manually. A PHP script could be used to parse the CPL.xml and propose tracks interactively
  • Currently, there are no subtitles. A PHP script could parse the subtitles.xml and create an .ass file. However, I did not manage to compile libass which has too much dependencies so I gave up.
  • The color transformation is mathematically correct, but practically an approximation. Both reference platforms Open DCP and EasyDCP Creator do more than just apply gamma and a matrix, so a perfect round trip for our test chart is not completely perfect. I may at a later stage adapt for this. See the results of the round trip on these files

opendcp709testchart.jpg
opendcpsrgbtestchart.jpg
easydcptestchart.jpg

On Open DCP:
http://www.apertus.org/opendcp-article
http://www.opendcp.org/

History


1.3.2013 1.1: Correction of bug in the blue channel indexes, changed gamma to Rec709 2.2222 (1/0.45)
30.9.2012 1.0 First release

30.9.2012 Matthias Bürcher