用例非常直接。Imagemagick可以进行转换,但我想使用ffmpeg进行转换。以下是我尝试过的所有命令,所有这些命令都给出了moov原子未找到的错误。
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原子的位置,看起来moov原子实际上并不存在
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:HEIF支持,因为FFmpeg开发正在进行中,情况可能在未来发生变化。
Welp,现在是2023,ffmpeg仍然不支持heif
图像格式。我建议使用heif-convert
,它可以通过所有主要的linux包管理器和自制程序获得。
以下是在主要Linux发行版和macOS上安装和使用heif-convert
的说明。它的用法如下:
heif-convert input.[heic|heif] output.[png|jpg]
您可以通过以下方式安装:
- Ubuntu/Debian:
sudo apt-get install libheif1
- Fedora:
sudo dnf install libheif
- RHEL/CNTOS:
sudo yum install epel-release libheif
- 架构Linux:
sudo pacman -S libheif
- openSUSE:
sudo zypper install libheif1
- macOS:
brew install libheif