我下载了一些MP4编码的视频,希望将其中的音频流提取到MP3文件中,以便在数字播放器上轻松收听。
VLC最有可能做到这一点,但是在其论坛上遵循的说明却给出了“起泡的”声音文件。
以下是文件规范:
- 音频mp4a 44100 Hz
- 视讯AVC1
我下载了一些MP4编码的视频,希望将其中的音频流提取到MP3文件中,以便在数字播放器上轻松收听。
VLC最有可能做到这一点,但是在其论坛上遵循的说明却给出了“起泡的”声音文件。
以下是文件规范:
Answers:
使用ffmpeg:
ffmpeg -i input_file.mp4 -vn -b:a 128k -c:a libmp3lame output_file.mp3
(不要忘记调整音频比特率,-b:a
否则,即使是低质量的音源,也可能会得到很大的文件。)
实际上,许多数字播放器也支持AAC音频,因此您可以尝试提取原始AAC音频流,而不必进一步降低质量:
ffmpeg -i input_file.mp4 -vn -c:复制output_file.m4a
对于较旧的ffmpeg版本,您需要使用-ab
&-acodec
选项而不是-b:a
&-c:a
。
-abr
不是有效的选项:-b:a
或-ab
可以代替使用。(我知道这是一个旧答案,但是用户仍在引用它。)
大多数MP4视频使用AAC音频,并且大多数播放器设备通常可以在M4A(不同名称的MP4)容器中播放AAC音频。重新编码为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的更多信息,请参见此处。
avconv
两年一次的Ubuntu升级后,它在没有通知的情况下消失了。
如果您更喜欢GUI,请抓住SUPER©(简化的通用播放器编码器和渲染器)。它将完成这项工作(还有更多)。
SUPER©是FFmpeg,MEncoder,MPlayer,x264,musepack,猴子的音频,真实音频,wavpack,ffmpeg2theora和theora / vorbis RealProducer插件的GUI。
拖放任何音频文件甚至任何视频/音频文件,并通过选中“ 禁用视频”框来提取音频部分,从而将其转换为:
您可以通过选中“ 流复制”框来加快音频提取速度,该框会提取内部音频而无需转换为其他格式。
SUPER©是免费软件。
请注意,SUPER与OpenCandy广告软件捆绑在一起。缓解措施:
grawity的答案很棒!只是添加到其中,如果您想从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
如果您执行大量音频编辑,那么您已经有(并且喜欢!)Audacity的合理机会。
它将打开mp4文件,并允许您“另存为”许多文件类型,包括mp3。它还为您可能想要更改的任何参数提供了一个简单的对话框,包括诸如采样率和MP3标签之类的参数。
如果您没有Audacity,则它可能不是最直接的途径,但是它比简单的转换器程序具有更多的用途。它是功能齐全的音频编辑器,开源和跨平台。