我目前正在安卓系统上开发视频播放器。视频播放器应支持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
}
}