【发布时间】:2016-12-22 05:39:59
【问题描述】:
我有输入文件: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
你看到了吗?存在编码器元数据!
在“subchunk1_id”后面的wav标头中,我期望在“subchunk2_id”中具有“fmt”值的是“data”值(明确的预期示例):
$ strings outfile.wav | more
RIFFFB
WAVEfmt
data
但它不是(LIST、INFOISFT 等):
$ strings outfile.wav | more
RIFFFB
WAVEfmt
LIST
INFOISFT
Lavf56.25.101
data
嗯..如何真正从输出文件中删除所有元数据?
【问题讨论】:
-
这个答案应该可以帮助你:superuser.com/questions/441361/…。它说您不能完全删除所有元数据。
-
@Martin -- 结果相同
-
附带说明,在 Linux 中,您可以使用
xxd <filename> | less查看二进制文件,这样可以更好地显示 IFF 块。