[FFmpeg-trac] #9088(avformat:open): HEVC bitstream with alpha layer to mp4

FFmpeg trac at avcodec.org
Mon Mar 29 19:43:30 EEST 2021


#9088: HEVC bitstream with alpha layer to mp4
-------------------------------------+-------------------------------------
             Reporter:  johnhe4      |                    Owner:
                 Type:  defect       |                   Status:  open
             Priority:  normal       |                Component:  avformat
              Version:  git-master   |               Resolution:
             Keywords:  hevc mov     |               Blocked By:
  alpha                              |
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------

Comment (by johnhe4):

 Yes, those links are related but I don't think they affect the scope.
 Sorry for not posting.

 No, this ticket is not a duplicate of #7965. Perhaps the best way to
 explain why is to detail my target use case.

 I am looking to segment out video using a Linux instance in the cloud.
 This segmentation process will result in two layers: a foreground layer
 and a background layer. I want to stream the foreground layer over the
 Internet to an Apple device that will render this foreground layer over
 whatever background the app chooses.

 I know of two traditional methods to accomplish this that make inefficient
 use of bandwidth and/or push complexity to the end device. Traditional
 method 1 is to send both layers as separate streams, or if possible, as
 separate tracks in a single stream. This requires the device to spin up
 two decoders, perform post and or pre-decode synchronization, and possibly
 deal with multiple-multiple bitrates. Traditional method 2 is to have the
 Linux server overwrite the background with a predefined chroma key. This
 requires a carefully chosen chroma key that will not unexpectedly occur in
 the foreground, and requires custom shaders on the end device.

 Alpha support in HEVC seems (to me) a much better solution than the
 traditional methods, if it is supported.

 This ticket is different than #7965 because it specifically asks for
 muxing support only. I would like FFmpeg to mux an existing HEVC bitstream
 which includes alpha (encoded with whatever, in this case NVidia but can
 be anything) into an MP4 (or TS file) that Apple can decode. From my
 limited understanding of FFmpeg, any changes relating to this ticket
 wouldn't need to touch the encoder or decoder but would instead touch
 muxers and parsers.

 Here is a link from Apple that includes more information for HEVC with
 alpha, including the profile constraints on Apple devices:
 https://developer.apple.com/videos/play/wwdc2019/506/

 I noticed some activity on #7965, that is great to see. I imagine this ask
 will grow as more non-Apple encoders begin to support HEVC with alpha.

--
Ticket URL: <https://trac.ffmpeg.org/ticket/9088#comment:8>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list