如何使用ffmpeg从MPEG-4文件中提取音频

3

我们如何从视频文件(MPEG-4格式)中提取音频?

在进一步分析前,存储提取的音频数据的方便形式是什么?(编辑:换句话说,如果我想获得音频声音级别,使用PCM格式还是类似WAV的格式更好?)

从其他关于此主题的问题中,我了解到ffmpeg是正确的工具来完成这个任务。


请查看这个链接,也许对你有帮助。 - undefined
你目前尝试了什么?StackOverflow希望你首先尝试解决自己的问题,因为你的尝试可以帮助我们更好地理解你的需求。请编辑问题,展示你已经尝试过的内容,并指出你遇到的具体障碍和一个[mcve]。如需更多信息,请参阅[ask]。 - undefined
2个回答

7

关于您的第一个问题:

您确实可以使用ffmpeg完成此操作,但我只能提供命令行形式。您可能需要调整输出格式,但请查看http://linux.die.net/man/1/ffmpeg上的man页面,或https://www.ffmpeg.org/ffmpeg.html#Audio-Options上的官方ffmpeg(音频)文档。

ffmpeg -i mpeg-4videofilename -vn -ac 2 -ar 44100 -ab 320k -f mp3 output.mp3

命令行选项的解释:

  • -i 输入文件
  • -vn 没有视频
  • -ac 音频通道
  • -ar 音频采样率
  • -ab 音频比特率
  • -f 输出格式

问题在于我想避免将音频文件保存为mp3(或其他任何格式),然后再次打开它以进行分析(例如声音级别检查等)。考虑到我需要分析的音频数量,我担心这样做可能会导致性能下降。 - undefined
1
你还可以使用-acodec copy来复制音频流,但是这样你就需要知道你的音频是哪种格式。 - undefined

5

您可以使用以下命令:

ffmpeg -i input.mp4 -vn -acodec pcm_s16le -ac 2 -ar 44100 out.wav

-vn: 没有视频

-acodec: 音频编解码器选择。

pcm_sl6le: 小端格式的2字节样本

-ac: 音频通道数

-ar: 音频采样率

out.wav 输出wav文件


将第一个竖线(- i)之间的空格删除,并将其更改为(-i)ffmpeg -i input.mp4 -vn -acodec pcm_s16le -ac 2 -ar 44100 out.wav - undefined
如果将-vn添加到转换中,使用其他格式(如"mp3"或"m4a")作为输出,速度会更快。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接