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

Posted

技术标签:

【中文标题】如何使用 ffmpeg 从 MPEG-4 文件中提取音频 [关闭]【英文标题】:How to extract audio from MPEG-4 file using ffmpeg [closed] 【发布时间】:2015-04-14 06:05:29 【问题描述】:

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

存储提取的音频数据以供进一步分析的便捷形式是什么? (编辑:换句话说:如果我想获得音频声级,使用 PCM 格式或 WAV 之类的格式更好吗?)

从有关该主题的其他问题中,我了解到 ffmpeg 是执行此操作的正确工具。

【问题讨论】:

***.com/questions/9913032/… 看看这个,也许会有帮助 到目前为止您尝试过什么? *** 期待您 try to solve your own problem first,因为您的尝试有助于我们更好地了解您想要什么。请编辑问题以显示您尝试过的内容,并使用minimal reproducible example 显示您遇到的特定障碍。欲了解更多信息,请参阅How to Ask。 【参考方案1】:

关于你的第一个问题:

你确实可以用ffmpeg做到这一点,但我只能给你命令行形式。您可能想修改输出格式,但请查看http://linux.die.net/man/1/ffmpeg 的手册页,或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(或任何其他格式)并再次打开它以进行一些分析。 (声级检查等...)我担心考虑到我需要分析的音频量可能会导致性能不佳。 您也可以使用-acodec copy 复制音频流,但是您需要知道您的音频是哪种格式。【参考方案2】:

您可以使用以下命令:

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

-vn: 没有视频

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

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

-ac:音频通道数

-ar:音频采样率

out.wav 输出 wav 文件

【讨论】:

以上是关于如何使用 ffmpeg 从 MPEG-4 文件中提取音频 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

OpenCV: FFMPEG: tag xxx is not found (format ‘mp4 / MP4 (MPEG-4 Part 14)‘)‘

OpenCV: FFMPEG: tag xxx is not found (format ‘mp4 / MP4 (MPEG-4 Part 14)‘)‘

ffmpeg libx264 AVCodecContext 设置

安装ffmpeg

如何用ffmpeg输出碎片化的mp4?

FFMPEG 同时编码音频和强制字幕?