使用命令行从 MP3 文件中删除专辑封面

lbu*_*tlr 3 mp3

我想删除嵌入在一堆 MP3(数千个)中的专辑封面,但找不到命令行方法来执行此操作。我可以通过添加艺术lame,我可以添加或删除几乎任何其他标签id3tag,但我可以\xe2\x80\x99t找到一种方法来做类似的事情:

\n
for file in **/*.mp3 do <remove image command> $file; done\n
Run Code Online (Sandbox Code Playgroud)\n

有人知道我可能会投入什么吗<remove image command>

\n

lbu*_*tlr 5

似乎没有一个好的解决方案,我想出的最好的解决方案是使用 ffmpeg 快速创建一个新文件。@awesome14 提供的命令在我的系统上对我不起作用(大部分情况下是有效的,但它产生了许多错误,导致歌曲未被复制)。这是我想出的命令。

\n
for song in **/*.mp3\n   do NAME=$(echo ${song%/*} | sed -e 's|[/ ]|-|g\xe2\x80\x99)\n      ffmpeg -y -i $song -vn -c copy /path/NOART/"$NAME-"${song##*/}; \ndone\n
Run Code Online (Sandbox Code Playgroud)\n

这适用于 bash5 或 zsh shell。

\n
    \n
  1. **/*.mp3当前目录下每个目录中的每个与 .mp3 匹配的文件\n

    \n
  2. \n
  3. echo ${song%/*} | sed -e 's|[/ ]|-|g\xe2\x80\x99将路径部分(不在文件名中)中的所有斜杠\n和空格转换为破折号

    \n
  4. \n
  5. \xe2\x80\x94vn -c copy请勿复制视频(视频号),否则复制未修改的文件

    \n
  6. \n
  7. /path/NOART/"$NAME-"${song##*/}保存到路径,文件名设置为 NAME 变量和 $song 的基本名称。

    \n
  8. \n
  9. 输出文件名将类似于“10Cc-Look-Hear-Dressed To Kill.mp3\xe2\x80\x9d”。

    \n
  10. \n
\n

这样做的另一个优点是不会删除歌曲中的所有元数据,仅删除 \xe2\x80\x9cvideo\xe2\x80\x9d (在本例中是专辑封面)。

\n