用例非常简单。Imagemagick 能够进行转换,但我想使用 ffmpeg 进行转换。这是我尝试过的所有命令,它们都给出了 moov atom not found 错误。
ffmpeg -i /Users/ajitesh/Downloads/sample1.heif -c:v png -pix_fmt rgb48 /Users/ajitesh/Downloads/sample.png
Run Code Online (Sandbox Code Playgroud)
输出
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7f85aa813200] moov atom not found
/Users/ajitesh/Downloads/sample1.heif: Invalid data found when processing input
Run Code Online (Sandbox Code Playgroud)
通过尝试使用以下命令提取 moov atom 的位置,似乎 moov atom 实际上并不存在
ffmpeg -v trace -i /Users/ajitesh/Downloads/sample1.heif 2>&1 | grep -e type:\'mdat\' -e type:\'moov\'
Run Code Online (Sandbox Code Playgroud)
输出
[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
Run Code Online (Sandbox Code Playgroud)
好吧,已经是 2023 年了,ffmpeg 仍然不支持heif图像格式。我建议使用heif-convert,它可以通过所有主要的 Linux 包管理器和自制软件获得。
heif-convert以下是在主要 Linux 发行版和 macOS 上安装和使用的说明。它的用法如下所示:
heif-convert input.[heic|heif] output.[png|jpg]
Run Code Online (Sandbox Code Playgroud)
您可以通过以下方式安装它:
sudo apt-get install libheif1
Run Code Online (Sandbox Code Playgroud)
sudo dnf install libheif
Run Code Online (Sandbox Code Playgroud)
sudo yum install epel-release libheif
Run Code Online (Sandbox Code Playgroud)
sudo pacman -S libheif
Run Code Online (Sandbox Code Playgroud)
sudo zypper install libheif1
Run Code Online (Sandbox Code Playgroud)
brew install libheif
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3353 次 |
| 最近记录: |