如果将图像保存到元数据时,easytag v. 2.4.2 损坏了 flac 文件,该怎么办?

如果将图像保存到元数据时,easytag v. 2.4.2 损坏了 flac 文件,该怎么办?

我遇到了一个错误,当尝试将图片保存到文件时,easytag version 2.4.2它会损坏文件。flac这似乎取决于图片的大小,较小的可能会起作用(例如低于 30kB)。

因为我无法安装最新版本 2.4.3。而且我也不知道这是否能解决问题我需要一种方法来解决这个问题。

答案1

一种解决方案可能是使用metaflac添加图片。

这种方式easytag仍然可以用于标签,并且不需要额外的软件。

假设您位于文件所在的目录中flac,则可以执行以下脚本。它将原始文件的备份保存在目录之外,删除旧的元数据jpg并向所有文件添加一个。

#!/bin/bash

FILEPATH="/home/$USER/Desktop/coverart.jpg"

echo "**********************************************"
echo "** do 'metaflac --import-picture-from=$FILEPATH FILE'"
CURRENT_CD="${PWD##*/}"

if [ ! -d "../BACKUP" ]; then
  echo "** mkdir ../BACKUP"
  mkdir ../BACKUP
  else echo "** ../BACKUP already exists (directory)"
fi

if [ ! -d "../BACKUP/$CURRENT_CD" ]; then
  echo "** mkdir ../BACKUP/$CURRENT_CD"
  mkdir "../BACKUP/$CURRENT_CD"
  else
    echo "** ../BACKUP/$CURRENT_CD already exists (directory)"
fi

echo ""
for f in *.flac;
do
  if [ -f "$f" ]; then
    echo "$f"
    if [ ! -f "../BACKUP/$CURRENT_CD/$f" ]; then
      echo "-> cp $f to ../BACKUP/CURRENT_CD"
      cp "$f" "../BACKUP/$CURRENT_CD/$f"
    else 
      echo "-> backup file already exists" 
    fi
    echo "-> remove old pictures and tag COVERART"
    metaflac --remove --block-type=PICTURE,PADDING --dont-use-padding "$f"
    metaflac --remove-tag=COVERART  --dont-use-padding "$f"
    echo "-> add picture $FILEPATH"
    metaflac --import-picture-from="$FILEPATH" "$f"
  fi
done
echo "***********************************************"

相关内容