我下载了一些 MP4 编码的视频,我想将其中的音频流提取成 MP3 文件,以便在我的数字播放器上轻松收听。
最有可能的是,VLC 可以做到这一点,但是按照论坛上的说明进行操作发出了“冒泡”的声音文件。
以下是文件规格:
- 音频 mp4a 44100 Hz
- 视频 AVC1
答案1
使用ffmpeg:
ffmpeg -i 输入文件.mp4 -vn -b:a 128k -c:a libmp3lame 输出文件.mp3
(不要忘记调整音频比特率,-b:a
否则即使是低质量的源,您也可能会得到一个巨大的文件。)
许多数字播放器实际上也支持 AAC 音频,因此您可以尝试提取原始 AAC 音频流,而不必进一步降低质量:
ffmpeg -i 输入文件.mp4 -vn -c:a 复制 输出文件.m4a
对于旧版本的 ffmpeg,您需要使用-ab
&-acodec
选项而不是-b:a
& -c:a
。
答案2
大多数 MP4 视频使用 AAC 音频,大多数播放器设备都可以播放 AAC 音频,通常是 M4A(不同名称的 MP4)容器。重新编码为 MP3,尤其是低比特率输入(大多数互联网视频),可能会导致明显的损失,即使在低端耳机上也是如此。我建议在命令行上使用avconv
/ffmpeg
avconv -i input.mp4 -vn -c:a copy output.m4a
或者
ffmpeg -i input.mp4 -vn -c:a copy output.m4a
要转换目录中的每个 MP4:
for f in *.mp4; do avconv -i "$f" -vn -c:a copy "${f/mp4/m4a}"; done
有些播放器(比如我的廉价手机)可以播放 AAC 音频,但不能播放 M4A 格式的音频,因此你必须使用
avconv -i input.mp4 -vn -c:a copy output.aac
现在,一些老款设备确实不能播放 MP3 以外的任何格式,对于这些设备,你可以使用 Grawity 的解决方案,或者
avconv -i input.mp4 -vn -c:a libmp3lame -q:a 2 output.mp3
这将创建一个可变比特率 (VBR) MP3,除了流媒体等特殊需求外,它应该是首选。-q:a 2
将获得平均(多个文件)比特率约为 190 kbit/s;有关编码 VBR MP3 的更多信息,请参阅这里。
答案3
如果你更喜欢 GUI,超级©(简化的通用播放器编码器和渲染器)。它可以完成这项工作(甚至更多)。
SUPER © 是 FFmpeg、MEncoder、MPlayer、x264、musepack、monkey's audio、true audio、wavpack、ffmpeg2theora 和 theora/vorbis RealProducer 插件的 GUI。
拖放任何音频文件甚至任何视频/音频文件并提炼通过检查音频部分禁用视频框,从而将其转换为:
- 音频
- AC3 的
- amr_nb
- amr_wb
- 猿猴音频 (无损)
- flac FLAC(无损)
- 微信号
- mp2
- mp3
- 进程控制
- ogg FLAC(无损)或 Vorbis 高品质
- tta 真实音频(无损)
- wv WavPack(无损)
- 音频
- 音频
您可以通过检查流复制盒子,它可以提取内部音频而无需转换成其他格式。
SUPER © 是免费软件。
请注意,SUPER 与 OpenCandy 广告软件捆绑在一起。缓解措施:
- 在虚拟机中安装
- 安装第一步后禁用网络。安装程序会验证是否存在 Internet 连接。之后,您可以禁用它并忽略所有警告。我不完全确定这是否能防止全部但是,不要安装广告软件。
- 您可以在安装后删除 OpenCandy:http://www.malwaredictionary.com/2011/06/opencandy/
答案4
gravity 的回答太棒了!补充一下,如果你想从 MP4 中提取音频并将其放入 MP3 中并保留元数据(MP3 ID3 标签),那么你可以这样做:
ffmpeg -i input_file.mp4 -map_metadata 0 -id3v2_version 3 -vn -b:a 128k -c:a libmp3lame output_file.mp3