Skip to content

FCP shows FFmpeg-generated ProRes 4444 alpha as opaque on Sonoma 14.4.1 Apple Silicon; Prores decode errors in log #359

Description

@joema4

This not an FCP bug and maybe not a MacOS bug. Filing this to avoid confusion because it may appear like an FCP or MacOS bug.


DESCRIPTION:

Starting with Sonoma 14.4.0 or 14.4.1 on Apple Silicon, FCP 10.7.1 will incorrectly show a transparent ProRes 4444 alpha channel as opaque if the file was generated by certain versions of FFmpeg and the associated Lavf library. Resolve Studio 18.6.6 and Premiere Pro 24.3.0 behave likewise. This does not happen on Intel.

FCP playback will also generate ProRes HW errors in the MacOS system log. There is no user-facing error. These do not appear in Console but can be seen using the terminal "log show" command. Example:

2024-05-11 10:00:27.683661-0500 0x2db Error 0x0 0 0 kernel: (AppleProResHW) ERROR: AppleProResHW (0x13e358d7): processDecodeFrameDone(): HW error decSatus=6 status0=0x7f043000 statusCode=63 status2=0x1

FFmpeg versions tested and behavior (Note: ALL cause ProRes HW decode errors, even if alpha transparency is OK)

FFmpeg 7.01, Lavf61.1.100 - transparent alpha channel OK
FFmpeg 7.00, Lavf61.3.103 - transparent alpha channel OK
FFmpeg 6.10, Lavf60.16.100 - transparent alpha channel shows as opaque
FFmpeg 5.??, Lavf58.43.100 - transparent alpha channel shows as opaque

This seems an interpretation problem due to something in the FFmpeg-encoded file. I inspected the alpha-channel values in the encoded file using the QCTools datascope and they had transparent values (ie close to 0x0000) but appeared as opaque in FCP. See attached datascope screen shot.


HOW TO REPRODUCE:

(1) Use an Apple Silicon machine running Sonoma 14.4.1.

(2) Attached are four 1080p ProRes 4444 files with a transparent alpha channel. Each one is generated by one of the above four versions of FFmpeg and has the above-stated behaviors (version numbers also in the filenames).

Files: https://www.dropbox.com/scl/fo/l6388h0co0q8gwvx1ojcm/AFHdiZwt6wp5MmSKSmT6vEc?rlkey=rvf3kedtlxek4w9gf7ng7lloe&dl=0

(3) Import the four ProRes 4444 files to FCP.

(4) Add each file to a project timeline.

(5) Add beneath each clip a built-in FCP generator to observe if alpha-channel transparency exists.

(6) Examine the MacOS system log using the terminal "log show" command. Example syntax (do within 10 sec of FCP playback):

sudo log show --last 10s > ~/Documents/LogShowOutput_10s.txt

(7) The log is verbose so use BBEdit or similar to filter through the file. Look for the string "AppleProResHW".


SCREENSHOTS:

Filename: QCTools_Datascope_PR4444_AlphaChannel.jpg. QCTools Datascope showing alpha-channel value of 0x0060 (should be nearly transparent), but shows as opaque in FCP on MacOS Sonoma 14.4.1 Apple Silicon.


SPECS:

  • 2022 M1 Ultra Mac Studio (128GB RAM, 8TB SSD)
  • macOS Sonoma 14.4.1
  • Final Cut Pro 10.7.1
  • Also tested: 2019 i9 MacBook Pro 16, 2023 M2 Pro Mac Mini, both running Sonoma 14.4.1

OTHER STEPS TAKEN:

  • Did binary diff on video files starting with name "QT4444". They are the same except encoded using two different versions of FFmpeg. No apparent differences that would account for the behavior.
  • Examined metadata of "good" and "bad" QT4444 video files using FFmpeg, FFprobe, ExifTool. No obvious differences at metadata level.
  • Ran FCP under XCode and set breakpoints to find FFImageRepFFPixelBuffer during playback. Nothing obvious.

TO DO:

  • Provide various statically-built versions of FFmpeg in both Intel and Apple Silicon versions
  • Provide instructions and video files for encoding ProRes 4444 files using FFmpeg
  • Provide instructions for using the self-encoded files for testing alpha-channel transparency issue

QCTools_Datascope_PR4444_AlphaChannel

No activity

Activity on this issue will appear here.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions