How to rewrap/demux stereoscopic MXF files with ffmpeg?

634 views
Skip to first unread message

to...@rendertom.com

unread,
Sep 19, 2013, 6:08:10 AM9/19/13
to ffmbc-...@googlegroups.com
Hi guys.
I found this source that helped me rewrap regular DCP MXF files:
http://www.belle-nuit.com/use-ffmpeg-for-dcp-to-h-264-conversion

It's great.

BUT I have stereoscopic DCP. How would I go rewraping it to two Left and Right MOV files? What ever I do, ffmpeg skips every second frame.


At the bottom I attach ffmpeg report about video file. Interesting, but FFMPEG sees this video as Stream #0:0: Video: jpeg2000 (JPEG 2000 digital cinema 2K), xyz12le, 2048x1080, 24 tbr, 24 tbn, 24 tbc         - I presume it's like regular mono track video. BUT while I preview this DCP on "easyDCP Player+" I am definitely sure this is a stereoscopic image.

So my quesstion is - how to rewrap/demux stereoscopic MXF with ffmpeg to 2 Left and Right video files. Is this even possible?

Thank you very much.

Tomas-Sinkunass-iMac:~ Tomas$ /ffmpeg2 -i /Users/Tomas/Desktop/MANDMRELIEF_ADV_S_20_2K_20130326_i3D/85111a89-af85-4722-8416-68aea1f33084_j2c.mxf 
ffmpeg version N-56538-g22d781d-tessus Copyright (c) 2000-2013 the FFmpeg developers
  built on Sep 16 2013 18:36:35 with llvm-gcc 4.2.1 (LLVM build 2336.1.00)
  configuration: --prefix=/Users/tessus/data/ext/ffmpeg/sw --as=yasm --extra-version=tessus --disable-shared --enable-static --disable-ffplay --enable-gpl --enable-pthreads --enable-postproc --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid --enable-libspeex --enable-bzlib --enable-zlib --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libxavs --enable-version3 --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvpx --enable-libgsm --enable-libopus --enable-fontconfig --enable-libfreetype --enable-libass --enable-libbluray --enable-filters --enable-runtime-cpudetect
  libavutil      52. 43.100 / 52. 43.100
  libavcodec     55. 31.101 / 55. 31.101
  libavformat    55. 16.103 / 55. 16.103
  libavdevice    55.  3.100 / 55.  3.100
  libavfilter     3. 85.100 /  3. 85.100
  libswscale      2.  5.100 /  2.  5.100
  libswresample   0. 17.103 /  0. 17.103
  libpostproc    52.  3.100 / 52.  3.100
[mxf @ 0x10200f800] "OPAtom" with 2 ECs - assuming OP1a
Input #0, mxf, from '/Users/Tomas/Desktop/MANDMRELIEF_ADV_S_20_2K_20130326_i3D/85111a89-af85-4722-8416-68aea1f33084_j2c.mxf':
  Metadata:
    uid             : f80b2d6e-343b-423d-95f5-ae8ecc077538
    generation_uid  : 50b96d1e-c340-49c2-966b-3d9aa1def86e
    company_name    : Fraunhofer IIS
    product_name    : easyDCP Creator+
    product_version : 1.4.2
    product_uid     : 7d836e16-37c7-4c22-b2e0-46a717e84f42
    modification_date: 2013-03-26 12:26:35
    application_platform: win32
    timecode        : 00:00:00:00
  Duration: 00:00:30.08, start: 0.000000, bitrate: 115110 kb/s
    Stream #0:0: Video: jpeg2000 (JPEG 2000 digital cinema 2K), xyz12le, 2048x1080, 24 tbr, 24 tbn, 24 tbc
At least one output file must be specified

Tomas Sinkunas

unread,
Sep 19, 2013, 12:28:07 PM9/19/13
to ffmbc-...@googlegroups.com
After spending few hours and testing things out, I found a way to demux those images by forcing it to play at 48 fps, instead of 24. Here's the code:

ffmpeg -r 48 -i INPUT.MXF OUTPUT/image%06d.tif

That seems to produce one image for LEFT eye and the other for RIGHT eye. However, all of them go sequentially - image001.tiff (left eye), image002.tiff (right eye), image003.tiff (left eye), image004.tiff (right eye), image005.tiff (left eye), image006.tiff (right eye).

Now the headache is how to make ffmpeg produce one sequence for one eye, and the other sequence for the other eye. How?
Better yet, how to get left_eye.mov and right_eye.mov? Two separate files. How?

If anyone has a solution - please share it:) Thank you.
Reply all
Reply to author
Forward
0 new messages