使用ffmpeg将heif文件转换为png/jpg



用例非常直接。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]

您可以通过以下方式安装:

  1. Ubuntu/Debian:
sudo apt-get install libheif1
  1. Fedora:
sudo dnf install libheif
  1. RHEL/CNTOS:
sudo yum install epel-release libheif
  1. 架构Linux:
sudo pacman -S libheif
  1. openSUSE:
sudo zypper install libheif1
  1. macOS:
brew install libheif

最新更新