Use ffmpeg for dcp playback

The general syntax for the use of ffplay for DCP playback is

cd dcpfolder
ffplay -ss 0 -lowres 1 -vf "xyz2rgb" -i picture.mxf

-ss defines the start in seconds

-lowres allows for subsampling. As jpeg2000 is a codec based on subsampling, the subsampling allows to achieve quite realtime performance using 50% or 25% size.

  • lowres 0 = full size (for example 1920 x 1080)
  • lowres 1 = 50% (for example 960 x 540)
  • lowres 2 = 25% (for example 480 x 270)

-vf "xyz2rgb" adds the XYZ2RGB conversion

-i defines the input file. Look in the DCP folder for the biggest file that finishes in the name with picture, video or j2c.

The ffplay player is very simple. In the terminal you see the position in seconds. It advances as fast as it can. I could not find a loop option, but the picture window has some key shortcuts

  • p or SPC pause, play
  • s pause, advance frame by frame
  • left/right backward/advance 10 seconds
  • f toggle fullscreen (basic interpolation)
  • q Quit
  • click left position at start (horizontal position of click works as timeline)

As an indication, on the MacBook Air, our sample files play back at 16% realtime in full size, at 25% realtime in lowres 1 and at 35% realtime in lowres 2.

Update

You may pipe ffmpeg and ffplay in one line to get playback with sound
ffmpeg -lowres 2 -ss 0 -r24 -i MOVIE.MOV -ss 0 -i AUDIO.WAV -vf xyz2rgb -ac: 2 -c:v mpeg2video -f avi - | ffplay -

"With a VERY FAST machine, specifying no codec (remove "-c:v mpeg2video"), full size ("-lores 0"), and starting at 0 (-ss 0), you can theoretically review the 2K cinema quality DCP exactly as is. Well, except for any special instructions included in the XML's -- subtitles or other programming".

From http://superuser.com/questions/559768/ffplay-how-to-play-together-separate-video-and-audio-files

See also Open Source DCP Player Proof of Concept