Page 1 of 1

Mux and transcode seperate mxfs from DCP

Posted: Mon Jun 01, 2015 11:20 am
by Kieran O Leary
Hello again!

I'm wondering how to handle muxing seperate audio and video from a DCP. Ideally, I'd also like to put filters such as timecode/watermark (hopefully it's the same process as usual in ffastrans)

I've gotten this to work in ffmpeg (just using prores as an example, I'd probably use h264 in practise) with

Code: Select all

ffmpeg.exe -i E:\MVI_3970.dcp\jp2k_54c1a423-1a2c-418a-9fca-481f09173e4d.mxf -i E:\MVI_3970.dcp\wav_cb6b093a-ec0b-4fed-b447-65e55d3d696a.mxf -vcodec prores -acodec copy "F:\muxed.mov"
Here's the naming scheme of the A/V files within a DCP:
Image: jp2k_54c1a423-1a2c-418a-9fca-481f09173e4d.mxf
Audio: wav_cb6b093a-ec0b-4fed-b447-65e55d3d696a.mxf

I just can't get ffmpeg to pick up the seperate sources. I saw that other thread about seperate image sequences and audio but couldn't apply it here.

Any help would be greatly appreciated.

Re: Mux and transcode seperate mxfs from DCP

Posted: Mon Jun 01, 2015 9:20 pm
by admin
Hi Kieran,

In order to construct a valid file name you need to know in advance what the name convention is. Your two files indicate that there is no way of constructing a second name on the basis of just one of them:

jp2k_54c1a423-1a2c-418a-9fca-481f09173e4d.mxf
wav_cb6b093a-ec0b-4fed-b447-65e55d3d696a.mxf

However, I think we can pull this of by combining 3 different workflows. It adds complexity and transcoding time but I think it's possible.
The way I would do it is to set up 2 workflows monitoring jp2k_*.mxf files and wav_*.mxf respectively. You would then just set up a destination folders removing the original names but adding "%original_path~1%" to the suffix of the video workflow and "wav_%original_path~1%" as suffix to the audio workflow and put both in the same destination folder, f.ex. E:\dcp_output.
Then you create a 3'rd workflow looking for all files in E:\dcp_output except "wav_*.mxf". Now you can add the following custom ffmpeg command.

"-i "%original_path%\wav_%original_name%.mxf" -vcodec prores -acodec copy"

Translated into a meaningful normal ffmpeg command should look something like this:

ffmpeg.exe -i "E:\dcp_output\MVI_3970.dcp.mxf" -i "E:\dcp_output\wav_MVI_3970.dcp.mxf" " -vcodec prores -acodec copy "F:\muxed.mov"

It's rather late so I have not actually tried this particular workflow but it works in my head ;-) Please let me know if you can make any sense out of it. If not I will try to help you out further.

-steipal

Re: Mux and transcode seperate mxfs from DCP

Posted: Tue Jun 02, 2015 12:05 am
by Kieran O Leary
Thanks for getting back to me. It's late here as well but here's my findings.

I'm still working on applying your workflow, I'm almost there but I'll have to take up the task in the morning. I haven't found success yet, but regardless, I hit a dead end when it comes to applying a timecode with what seems to be an avisynth error: "I don't know what yz12le means". I'm guessing this is some incompatibility with the 12 bit xyz colour space of DCPs. I'm sure there's a workaround to this, as an extra workflow could occur turning the file into 8/10bit and THEN apply the timecode?

I'll report back in the morning with the rest of your recommendations. I'll have a detailed description of what steps I've taken and what errors I've received. Thanks Steipal.

Re: Mux and transcode seperate mxfs from DCP

Posted: Tue Jun 02, 2015 9:27 am
by admin
Hi agian,

Dont's waste any more time on this because I've found a bug that makes FFAStrans unable to properly deal with dcp-files with xyz12le color space. :roll: I will look at a fix as soon as possible.

Sorry for this :oops:

-steipal

Re: Mux and transcode seperate mxfs from DCP

Posted: Tue Jun 02, 2015 9:56 am
by Kieran O Leary
Hey,

No worries! I really appreciate you getting back to me because I'd spend hours trying to get it working. I look forward to whenever you can find the time to get it working. I might still experiment with getting it working via ffastrans by transcoding the mxfs to 8/10 bit yuv beforehand. I'm just looking to make proxies so it doesn't matter too much if it goes through a few transcoding steps ;]