如何自动将 .mp4 和 .m4a 文件转换为 .mp3 文件并保留封面?

如何自动将 .mp4 和 .m4a 文件转换为 .mp3 文件并保留封面?

我有一些.mp4音频.m4a文件需要转换为.mp3文件。我希望生成的.mp3文件包含源文件中的封面图片,而无需手动摆弄 EasyTAG。我该怎么做?

答案1

我编写了一个可以自动执行此操作的脚本。只需对每个文件运行该脚本.m4amp4如下所示,它将.mp3在同一目录中生成文件:

convert-mp4-to-mp3.sh *.mp4 *.m4a

您需要安装以下依赖项:

sudo apt-get install realpath libav-tools atomicparsley eyed3

这是脚本。复制并粘贴此内容并将其保存到名为的文件中convert-mp4-to-mp3.sh

#!/bin/bash

set -e

for filename in "$@" ; do
    if [[ "$filename" == -* ]] ; then
        printf "Filename %s must not begin with a dash\n" "$filename" 1>&2
        continue
    fi
    printf "Converting %s\n" "$filename"
    filename=$(realpath "$filename")
    directory=$(mktemp -d)
    cwd=$(pwd)
    output="$(basename "$filename" | sed 's/\.[^.]*$//').mp3"
    cd "$directory"
    avconv -i "$filename" "$output"
    ln -s "$filename" "$(basename "$filename")"
    AtomicParsley "$(basename "$filename")" --extractPix || true
    shopt -s nullglob
    for imagefilename in *.jpg *.png *.JPG *.PNG ; do
        eyeD3 --add-image="$imagefilename":FRONT_COVER "$output" 
        break
    done
    shopt -u nullglob
    mv "$output" "$(dirname "$filename")"
    cd "$cwd"
    rm -r "$directory"
done

相关内容