我有输入文件:infile.mp3这个文件包含元数据(艺术家,流派等)我尝试删除输出wav文件的所有元数据。
是!我找到了选项:
-map_metadata -1
但输出对我来说意外......
$ ffmpeg -i infile.mp3 -acodec pcm_s16le -ac 2 -ar 44100 -map_metadata -1 ./outfile.wav
好!
$ ffprobe outfile.wav
Input #0, wav, from 'inp.wav':
Metadata:
encoder : Lavf56.25.101
Duration: 00:04:00.47, bitrate: 1411 kb/s
Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz, 2 channels, s16, 1411 kb/s
你看?编码器元数据存在
在带有“fmt”值的“subchunk1_id”之后的wav标题中,我希望“subchunk2_id”具有“数据”值(清楚的预期示例):
$ strings outfile.wav | more
RIFFFB
WAVEfmt
data
但它不是(LIST,INFOISFT等):
$ strings outfile.wav | more
RIFFFB
WAVEfmt
LIST
INFOISFT
Lavf56.25.101
data
那么..如何真正删除输出文件的所有元数据?
-fflags +bitexact -flags:v +bitexact -flags:a +bitexact
也许首先将它复制到.wav文件(不支持元数据),然后将其复制回.mp3?
```
ffmpeg -i in.mp3 tmp.wav
ffmpeg -i tmp.wav out.mp3
```