ffmpeg 如何仅保留 mp3 的一些元数据标签

ffmpeg 如何仅保留 mp3 的一些元数据标签

我想删除 mp3 中的所有元数据标签但保留“专辑”和 mp3“封面图片”,在这种情况下我该怎么做?

我期望发生这样的事情但它不起作用:

ffmpeg -i "input.mp3" -map_metadata -1 -map_metadata album -map_metadata "Cover (front)" -c copy output.mp3

我使用的是 Windows 11 操作系统

答案1

bash 脚本:

#!/bin/bash

f="input 4.mp3"
o="/tmp/out.mp3"
MET=(-map_metadata -1)
IFS=, read ALB <<< $(ffprobe -v 0 -show_entries format_tags=album -of csv=p=0 "$f")
MET+=(-metadata "album=$ALB")
CNT=0
while IFS=, read CMN; do
MET+=(-metadata:s:v:$CNT comment="Cover (front)")
((CNT++))
done < <(ffprobe -v 0 -select_streams v -show_entries stream_tags=comment -of csv=p=0 "$f")

echo "${MET[@]}"
echo -----------
ffmpeg -i "$f" -map 0 -c copy "${MET[@]}" "$o" -y -hide_banner
echo -----------
ffprobe "$o" -hide_banner
echo -----------
mediainfo "$o"

相关内容