如何使用ffmpeg删除所有元数据?

问题描述 投票:8回答:2

我有输入文件: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

那么..如何真正删除输出文件的所有元数据?

ffmpeg metadata wav
2个回答
5
投票
-fflags +bitexact -flags:v +bitexact -flags:a +bitexact

-2
投票

也许首先将它复制到.wav文件(不支持元数据),然后将其复制回.mp3?

```
ffmpeg -i in.mp3 tmp.wav
ffmpeg -i tmp.wav out.mp3
```
© www.soinside.com 2019 - 2024. All rights reserved.