使用ffmpeg将heif文件转换为png/jpg
用例非常简单。Imagemagick 能够进行转换,但我想使用 ffmpeg 进行转换。这是我尝试过的所有命令,它们都给出了 moov atom not found 错误。
ffmpeg -i /Users/ajitesh/Downloads/sample1.heif -c:v png -pix_fmt rgb48 /Users/ajitesh/Downloads/sample.png
输出
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7f85aa813200] moov atom not found
/Users/ajitesh/Downloads/sample1.heif: Invalid data found when processing input
通过尝试使用以下命令提取 moov atom 的位置,似乎 moov atom 实际上并不存在
ffmpeg -v trace -i /Users/ajitesh/Downloads/sample1.heif 2>&1 | grep -e type:'mdat' -e type:'moov'
输出
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7f824c00f000] type:'mdat' parent:'root' sz: 2503083 420 2503495
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7f824c00f000] type:'mdat' parent:'root' sz: 2503083 420 2503495
回答
FFmpeg 目前不支持 HEIF 解码(截至 2021-01-11)。
检查错误报告#6521:由于 FFmpeg 开发处于活动状态,因此HEIF 支持在未来可能会发生变化。