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

Dee*_*eep 10 metadata ffmpeg wav

我有输入文件: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
Run Code Online (Sandbox Code Playgroud)

你看?编码器元数据存在

在带有"fmt"值的"subchunk1_id"之后的wav标题中,我期望"subchunk2_id"具有"数据"值(清楚的预期示例):

$ strings outfile.wav | more
RIFFFB
WAVEfmt
data
Run Code Online (Sandbox Code Playgroud)

但它不是(LIST,INFOISFT等):

$ strings outfile.wav | more
RIFFFB
WAVEfmt 
LIST
INFOISFT
Lavf56.25.101
data
Run Code Online (Sandbox Code Playgroud)

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

小智 6

-fflags +bitexact -flags:v +bitexact -flags:a +bitexact
Run Code Online (Sandbox Code Playgroud)

  • @Jun711是的,“fflags”是“ffmpeg”的一部分。完整的命令是“ffmpeg -i input.m4a -c copy -fflags +bitexact -flags:v +bitexact -flags:a +bitexact output.m4a” (6认同)