1

在 Android 上从 JPG 转换为 HEIC 格式(使用 HEVC 编码)时遇到一些麻烦

我正在使用诺基亚 HEIF 的库 ( https://github.com/nokiatech/heif/ ) 来解析我需要放置一些数据的数据,包括:

  1. 解码器配置数据(作为一个字节数组)跟随诺基亚所称的名称,我认为数据可以是配置文件数据,标题数据,......存储VPS / PPS,Exif,元数据......

  2. 诺基亚调用名称后的图像数据->这可能是HEVC编码的比特流。

所以现在,我通过如下命令获得了基于图像数据比特流 (2) 的 FFMPEG 工具: ffmpeg -i oktest.png -crf 12 -preset medium -pix_fmt yuv420p -f hevc.bin

这是来自诺基亚的一个参考链接,他们指导如何进行馈送数据和编码为 HEIF 格式。 https://github.com/nokiatech/heif/issues/44

但是,我不明白如何从 FFMPEG 工具获取解码器配置数据,因为我是在 Android 平台上开发的。我的意思是某些定义的确定与头脑不同,所以我找不到任何解决方案。我已经向诺基亚支持请求了一张票,但还没有回复。

        val heif = HEIF()
       val decoderConfig = context.assets.open(bitStreamDecoderConfig).readBytes()
        val decoderConfig = decoderBuffer?.array() ?: ByteArray(0)
        val imageData = FileInputStream(bitStreamData).readBytes()
        val imageItem =
            HEVCImageItem(heif, Size(imageWidth, imageHeight), decoderConfig, imageData)
        heif.primaryImage = imageItem
        heif.majorBrand = HEIF.BRAND_MIF1
        heif.addCompatibleBrand(HEIF.BRAND_HEIC)
        heif.save("$targetOutputFolder/$fileNameNoneExtension.${destinationType()}")
4

0 回答 0