From: Zhao Zhili <zhiliz...@tencent.com> What works:
1. Create a sample with macOS videotoolbox ffmpeg -i base.mp4 -i alpha.mp4 \ -c:v hevc_videotoolbox -alpha_quality 0.5 -b:v 2M \ -filter_complex '[0:v]scale,format=bgra[v0];[1:v]scale=640x480,format=gray[v1];[v0][v1]alphamerge[v2]' \ -map '[v2]' -y hevc-alpha.ts Then you can remux it to mp4 if you prefer. 2. Decoding test a. Check alpha plane ./ffmpeg -i hevc-alpha.ts -an -vf extractplanes=planes=a -f nut - |ffplay - b. Check Y plane ./ffmpeg -i hevc-alpha.ts -an -vf extractplanes=planes=y -f nut - |ffplay - What doesn't work: 1. Encoding with videotoolbox and output as mp4 directly, due to missing PS. Can be fixed by https://patchwork.ffmpeg.org/project/ffmpeg/patch/20241210191641.676-1-t...@rothenpieler.org/ 2. vps_extension is over-engineering and decode_vps_ext() is far from complete. A complete implementation might take a week, and I don't have enough spare time. I would greatly appreciate it if someone could help implement it. Branch on github: https://github.com/quink-black/FFmpeg/tree/hevc-alpha-3 Zhao Zhili (5): avcodec/hevc: Move ScalabilityMask to hevc header file avcodec/hevc: Rewrite scalability_mask_flag parse in decode_vps_ext avcodec/hevc/ps: Add basic HEVC_SCALABILITY_AUXILIARY support avcodec/hevc/sei: Add support for alpha channel information avcodec/hevc: Add alpha layer support libavcodec/hevc/hevc.h | 7 +++ libavcodec/hevc/hevcdec.c | 75 ++++++++++++++++++++++++++++++- libavcodec/hevc/hevcdec.h | 2 + libavcodec/hevc/ps.c | 95 +++++++++++++++++++++++---------------- libavcodec/hevc/ps.h | 3 ++ libavcodec/hevc/refs.c | 10 ++++- libavcodec/hevc/sei.c | 30 +++++++++++++ libavcodec/hevc/sei.h | 14 ++++++ 8 files changed, 195 insertions(+), 41 deletions(-) -- 2.46.0 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".