获取Android中mp4文件的位深度或颜色空间



我目前正在安卓系统上开发视频播放器。视频播放器应支持8位内容和10位内容。因为应用程序中的流量不同,所以在播放视频之前,我需要知道内容是否为10位BT2020。我尝试过MediaMetadataRetriever,但没有关于比特深度、颜色空间、原色、传输特性等的信息。此外,我使用该项目得到了相同的结果:https://github.com/wseemann/FFmpegMediaMetadataRetriever.

有没有办法在Android中获得更多关于颜色空间或比特深度的信息?类似于MediaInfo工具的东西。https://mediaarea.net/en/MediaInfo

一段时间后,我发现我可以使用MediaExtractor,然后从使用extractor.getTrackFormat(trackIndex)创建的MediaFormat对象中获得所需的信息。对于HDR10,我检查了颜色标准和传递函数。

mediaFormat.containsKey(MediaFormat.KEY_COLOR_STANDARD)
) {
if (mediaFormat.getInteger(MediaFormat.KEY_COLOR_TRANSFER) == MediaFormat.COLOR_TRANSFER_ST2084
&& mediaFormat.getInteger(MediaFormat.KEY_COLOR_STANDARD) == MediaFormat.COLOR_STANDARD_BT2020
) {
return true
}
}

最新更新