prores444 12bit?

1,023 views
Skip to first unread message

Kieran

unread,
Jun 1, 2012, 6:39:26 PM6/1/12
to ffmbc-discuss
Hi,

Is there any way to use ffmbc to create prores444 12 bit?

I see that -pix_fmt yuv444p12 is not supported, but -pix_fmt yuv444p16
is, although passing -pix_fmt yuv444p16 seems to be ignored and the
output ends up prores422.

Thanks,

Kieran.

Baptiste Coudurier

unread,
Jun 1, 2012, 8:03:28 PM6/1/12
to ffmbc-...@googlegroups.com
Hey,
I don't think there is such thing as prores444 12 bits.
Nothing in the decoder itself indicates so, the only thing that could be
12 bits is the alpha channel. I may be wrong though.
If you find a real 444 12 bits file, share it, maybe will find out.

--
Baptiste COUDURIER
Key fingerprint 8D77134D20CC9220201FC5DB0AC9325C5C1ABAAA
FFmpeg maintainer http://www.ffmpeg.org

25al...@gmail.com

unread,
Jun 24, 2012, 4:14:12 AM6/24/12
to ffmbc-...@googlegroups.com

I don't think there is such thing as prores444 12 bits.

There is. The Arri Alexa camera records 12bit RGB ProRes444 Quicktimes:
http://www.arri.com/de/camera/digital_cameras/cameras/camera_details.html?product=9&subsection=technical_data&cHash=6925fbc9f0149f23d2f67804b61feeb4

Records Apple QuickTime/ProRes files or MFX/DNxHD files onto either one or two (Dual Recording) SxS PRO cards. All codecs legal range with embedded audio, timecode and metadata.

Codec: QuickTime/ProRes 4444
Compression (1): 5:1
Bit Rate in Mb/s at 30 fps: 330
Bit Depth: 12
Color Coding: 4:4:4 RGB

I found a sample on http://blog.localheropost.com/main/2010/10/6/arri-alexa-event-test-footage.html :
http://www.localheropost.com/alexa/LocalHeroAlexaTest-Day-LogC.mov

I could also make other samples available next week if it's useful.

This is what ffmbc reports:

$ ffmbc -i LocalHeroAlexaTest-Day-LogC.mov
FFmbc version 0.7-rc7
Copyright (c) 2008-2012 Baptiste Coudurier and the FFmpeg developers
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'LocalHeroAlexaTest-Day-LogC.mov':
  Metadata:
    major_brand: qt 
    minor_version: 537199360
    compatible_brands: qt 
    creation_time: 2010-10-08 21:47:07
    com.apple.finalcutstudio.media.uuid: 4120E088-F45A-4374-8337-F77FD7D04F5A
    timecode: 01:00:00:00
  Duration: 00:00:08.21, start: 0.000000, bitrate: 263572 kb/s
    Stream #0.0(eng): Video: prores, yuv444p10le, 1920x1080p, 262022 kb/s, PAR 1:1 DAR 16:9, 23.98 fps
    Metadata:
      codec_name: Apple ProRes 4444
    Stream #0.1(eng): Audio: pcm_s16le, 48000 Hz, 2 channels, s16, 1536 kb/s
    Stream #0.2(eng): Data: unknown (tmcd)

I suppose the 10 in yuv444p10le means ffmbc believes it is 10bit?


Baptiste Coudurier

unread,
Jun 24, 2012, 5:45:05 PM6/24/12
to ffmbc-...@googlegroups.com
Hi,

On 6/24/12 1:14 AM, 25al...@gmail.com wrote:
>
>
>> I don't think there is such thing as prores444 12 bits.
>>
>
> There is. The Arri Alexa camera records 12bit RGB ProRes444 Quicktimes:
> http://www.arri.com/de/camera/digital_cameras/cameras/camera_details.html?product=9&subsection=technical_data&cHash=6925fbc9f0149f23d2f67804b61feeb4
>
> I suppose the 10 in yuv444p*10*le means ffmbc believes it is 10bit?
>

No, it means that it is 10bits and not 12bits, the decoding would look wrong
it if was 12bits :)

Kieran Tyrrell

unread,
Jun 25, 2012, 4:06:45 AM6/25/12
to ffmbc-...@googlegroups.com
How bizarre, there is general public understanding that ProRes 444 supports 12 bit (if you google 'ProRes 12bit' you find references), and even Apple and Wikipedia mention 12 bit support:

http://images.apple.com/support/finalcutpro/docs/Apple-ProRes-White-Paper-July-2009.pdf
page 4:
"Apple ProRes 4444: The new Apple ProRes 4444 codec preserves motion image sequences originating in either 4:4:4 RGB or 4:4:4 Y’CBCR color spaces. At its remarkably low data rate as compared to uncompressed 4:4:4 HD, Apple ProRes 4444 supports 12-bit pixel depth with an optional, mathematically lossless alpha channel for true 4:4:4:4 support."

en.wikipedia.org/wiki/Prores (the 444 section)

but I am unable to find or produce any samples with 12 bit, and even with the alexa footage it's unclear if it's 10 or 12 bit. (Alexa would certainly have it's customers believe it's 12 bit). All the software I have for handling video don't even discriminate between 10 and 12 bit ProRes444 so it's impossible to tell...

To add to the confusion, most references to 12 bit ProRes444 mention RGB encoding, whereas FFmbc reports the sample clips as YUV.

Agustin Goya

unread,
Jun 25, 2012, 8:15:20 AM6/25/12
to ffmbc-...@googlegroups.com
If I'm not mistaken, Arri's Alexa records in ProRes 444 C-Log, letting you store the equivalent of a 12bit dynamic range image in 10bit. That might be the source of confussion.

Sent from my phone

Kieran Tyrrell

unread,
Jun 25, 2012, 8:19:24 AM6/25/12
to ffmbc-...@googlegroups.com
further investigation reveals:

in decode_frame_header of proresdec.c the pixel format is obtained from the frame header:

avctx->pix_fmt = (buf[12] & 0xC0) == 0xC0 ? PIX_FMT_YUV444P10 : PIX_FMT_YUV422P10;

but this byte (the 12th byte in the header) only contains the 'frameFlags' (chrominance factor 422/444, and the frame type progressive/interlaced), no information about colour depth.

The frame header also contains a src_pix_fmt field (the lower nibble of the 17th byte of the header), reportedly as such:
• 0 - unknown
• 1 - '2vuy' (8-bit 4:2:2)
• 2 - 'v210' (10-bit 4:2:2)
• 3 - 'v216' (10,12,14,16-bit 4:2:2)
• 4 - 'r408' (8-bit 4:4:4:4 with alpha)
• 5 - 'v408' (8-bit 4:4:4:4 with alpha and super black)
• 6 - 'r4fl' (32-bit floating-point 4:4:4:4)
• 7 - 0x20 (8-bit RGB)
• 8 - 'BGRA' (8-bit RGB with alpha)
• 9 - 'n302' seems to be undocumented
• 10 - 'b64a' (16-bit ARGB)
• 11 - 'R10k' (AJA 10-bit RGB)
• 12 - 'l302' seems to be undocumented
• 13-15 invalid

in the case of a ProRes 422 file exported using Compressor, this byte is set to 0x30 ('v216' (10,12,14,16-bit 4:2:2))

in the case of the ProRes 444 '12 bit' example footage from the Arri camera, this byte is set to 0 (unknown).

It would seem that the bit depth should be indicated somewhere else in the header, as ProRes 422 can support 8 OR 10 bit no?

Does anyone have the formal ProRes spec? I have been working from the following presumably reverse engineered doc:
http://wiki.multimedia.cx/index.php?title=Apple_ProRes

Thanks.



On 24 Jun 2012, at 23:45, Baptiste Coudurier wrote:

Kieran Tyrrell

unread,
Jun 25, 2012, 8:24:32 AM6/25/12
to ffmbc-...@googlegroups.com
ah ok thanks, yes that might explain the confusion with the Arri example footage, but there still seems to be evidence to suggest that true 12bit ProRes 444 can exist, even if it's rather uncommon :)

Patrick Dung

unread,
May 17, 2014, 3:56:14 PM5/17/14
to ffmbc-...@googlegroups.com, kie...@sonalksis.com, ffmbc-...@googlegroups.com
Sounddevices pix260/240 product page has some Prores samples (4444 12/10bit).
The product spec said it is Prores 4444 12bit. Are those files truly 12bit?

http://www.sounddevices.com/products/pix260i/downloads/
http://www.sounddevices.com/products/pix240i/sample-files/

Baptiste Coudurier

unread,
May 19, 2014, 8:48:51 PM5/19/14
to ffmbc-...@googlegroups.com
No, it's 10 bits


--
You received this message because you are subscribed to the Google Groups "ffmbc-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ffmbc-discus...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

elliott...@gmail.com

unread,
Feb 27, 2016, 5:59:27 PM2/27/16
to ffmbc-discuss, kieran....@gmail.com
Arri's documentation for both the Alexa and Alexa Mini cameras states that ProRes 444 and 444 XQ are both recorded as 12-bit RGB.  But FFmpeg identifies the files as yuv444p10le.  Why the discrepancy?
Reply all
Reply to author
Forward
0 new messages