Вариант использования очень прост. 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 на самом деле отсутствует, пытаясь извлечь местоположение атома 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 (по состоянию на 11 января 2021 г.).
Проверьте отчет об ошибке #6521: Поддержка HEIF, так как разработка FFmpeg активна и ситуация может измениться в будущем.
Хорошо, это 2023 год, а ffmpeg до сих пор не поддерживает формат изображения heif
. Я рекомендую использовать heif-convert
, который доступен во всех основных менеджерах пакетов Linux и доморощенных.
Вот инструкции по установке и использованию heif-convert
в основных дистрибутивах Linux и macOS. Это использование выглядит следующим образом:
heif-convert input.[heic|heif] output.[png|jpg]
И вы можете установить его через:
sudo apt-get install libheif1
sudo dnf install libheif
sudo yum install epel-release libheif
sudo pacman -S libheif
sudo zypper install libheif1
brew install libheif
Тем из вас, кому просто нужна команда для конвертации файлов, я рекомендую
sips
на MacOS. apple.stackexchange.com/a/410920