HEVC编码器(从JPG转换为HEIC)



在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()}")

http://jpgtoheif.com/建议使用ffmpeg本身,而不是诺基亚的工具。

libheif还有另一个解决方案windows版本位于https://github.com/pphh77/libheif-Windowsbinary/releases

最新更新