Opened 5 weeks ago

Closed 4 weeks ago

Last modified 4 weeks ago

#11331 closed sponsoring request (needs_more_info)

X265 HEVC Alpha transparency support

Reported by: Mista_D Owned by:
Priority: wish Component: avcodec
Version: git-master Keywords: alpha x265 hevc
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description (last modified by Mista_D)

Very nice to see libx265 adding alpha channel support to the codec, unfortunately the feature is not yet integrated into FFmpeg.

Offering $500 USD for a working patch to add alpha channel libx265 decoding and encoding support to FFmpeg please. Similar to how VP9 and HEVC_VIDEOTOOLBOX codecs' alpha channel features have already been integrated.

Change History (6)

comment:1 by Mista_D, 5 weeks ago

Description: modified (diff)

comment:2 by quinkblack, 5 weeks ago

It's on my todo list, not get the time yet.

comment:3 by jeeb, 5 weeks ago

As noted on IRC, the preferred path for decoding alpha in HEVC is to look at how the MV-HEVC work has enabled nuh_layer_id >0 handling, and extending the native HEVC decoder in such manner (there should be a SEI message describing the layer as alpha layer, and then a separate video stream contained in packets marked with that layer).

For encoding it would currently indeed be one of the external encoders whose wrapper would have to be extended as there is no internal encoder for HEVC.

in reply to:  2 comment:4 by Mista_D, 5 weeks ago

Replying to quinkblack:

Any way to provide you with assistance: sample files, testing, cup of tea) maybe?

It's on my todo list, not get the time yet.

Last edited 5 weeks ago by Mista_D (previous) (diff)

comment:5 by Mista_D, 4 weeks ago

Resolution: needs_more_info
Status: newclosed

Removing this request for now. Seems its a bigger effort than originally anticipated.

comment:6 by Timo R., 4 weeks ago

Encoding support via libx265 and potentially nvenc might be available here now:
https://github.com/BtbN/FFmpeg/tree/nvenc_hevc_alpha

Currently there seems to be a driver bug that makes nvenc write incomplete alpha headers when in global headers mode.
To work around that in a non-compliant, hacky way:
https://github.com/BtbN/FFmpeg/tree/nvenc_hevc_alpha_hack

I have not yet found a way to actually decode or test those files.
Nothing seems to support decoding them. But on first glance they seem to be correct and spec compliant.

Note: See TracTickets for help on using tickets.