OK, o codec nativo não é tão bom quanto o codec libvpx que é fornecido pelos peeps do Webm. Então, se você quiser esta informação alfa, então você deve substituir o codec em load com o codec libvpx.
Como você faz isso - veja aqui: link
Basicamente, o terceiro argumento para avformat_open_input()
precisa ser um av_find_input_format("libvpx")
, que é o tipo AVInputFormat
Se você não tiver certeza se é um codec do VP8,9 no contexto do arquivo, precisará testar o arquivo primeiro, descobrir o codec e, em seguida, substituí-lo em uma carga real. Veja aqui como fazer isso: link
e por último - se você quiser usar o codec nativo em vez de webm, a menos que tenha um alpha (mas por que você), então você pode verificar se o sinalizador alfa está definido, verificando os dados do lado AV_PKT_DATA_MATROSKA_BLOCKADDITIONAL.
Verifique se AV_PKT_DATA_MATROSKA_BLOCKADDITIONAL se o side_data começa com (uint64_t) 1 existe uma camada de transparência.
Mas o consenso geral é sempre usar o decodificador libvpx.
Editar: mais detalhes O id do codec do Google VP8 é 139. e 167 é o codec do Google VP9. Para substituir as versões libvpx, você precisa encontrar "libvpx-vp8" e "libvpx-vp9" usando, por exemplo, avcodec_find_decoder_by_name ("libvpx-vp9")