我有一个需要转换为 mp3 的视频(从命令行 - 而不是 GUI):video.mp4
我试过:
ffmpeg -i -b 192 video.mp4 video.mp3
没有成功。我收到以下错误:
WARNING: library configuration mismatch
Seems stream 0 codec frame rate differs from container frame rate: 59.83 (29917/500) -> 59.75 (239/4)
WARNING: The bitrate parameter is set too low. It takes bits/s as argument, not kbits/s
Encoder (codec id 86017) not found for output stream #0.0
所以我尝试了:
lame -h -b 192 video.mp4 video.mp3
我得到:
Warning: unsupported audio format
我是否遗漏了什么?
答案1
对于具有恒定比特率编码(CBR)的 FFmpeg:
ffmpeg -i video.mp4 -vn \
-acodec libmp3lame -ac 2 -ab 160k -ar 48000 \
audio.mp3
或者如果您想使用可变比特率编码(VBR):
ffmpeg -i video.mp4 -vn \
-acodec libmp3lame -ac 2 -qscale:a 4 -ar 48000 \
audio.mp3
VBR 示例的目标比特率为 165 Kbit/s,比特率范围为 140...185。
答案2
是 GNOME 桌面的领先音频文件转换器。它可以读取 GStreamer 可以读取的任何内容(Ogg Vorbis、AAC、MP3、FLAC、WAV、AVI、MPEG、MOV、M4A、AC3、DTS、ALAC、MPC、Shorten、APE、SID、MOD、XM、S3M 等...),并写入 WAV、FLAC、MP3、AAC 和 Ogg Vorbis 文件,或者使用 GNOME 音频配置文件。
SoundConverter 旨在简单易用,速度极快。得益于其多线程设计,它将使用尽可能多的内核来加快转换速度。它还可以从视频中提取音频。
如何使用 VLC 将 MP4 转换为 MP3
打开 VLC 媒体播放器。点击“媒体”>“转换”进入“打开媒体”窗口。点击屏幕右侧的“添加”按钮进入 Windows 资源管理器。在硬盘上找到要转换的 MP4。点击屏幕底部的“转换”按钮。
选择目标文件的名称。
单击“音频编解码器”选项卡并从“编解码器”下拉框中选择“MP3”。按“开始”按钮开始将 MP4 转换为 MP3 音频。
单击“开始”
答案3
我有一个 shell 脚本,它使用mplayer
(因此它可以转换任何mplayer
可以播放的内容) 来提取音频,然后使用 对其进行编码lame
。代码如下:
#! /bin/bash
# any2mp3.sh
# Converts to mp3 anything mplayer can play
# Needs mplayer amd lame installed
[ $1 ] || { echo "Usage: $0 file1.wma file2.wma"; exit 1; }
for i in "$@"
do
[ -f "$i" ] || { echo "File $i not found!"; exit 1; }
done
[ -f audiodump.wav ] && {
echo "file audiodump.wav already exists"
exit 1
}
for i in "$@"
do
ext=`echo $i | sed 's/[^.]*\.\([a-zA-Z0-9]\+\)/\1/g'`
j=`basename "$i" ".$ext"`
j="$j.mp3"
echo
echo -n "Extracting audiodump.wav from $i... "
mplayer -vo null -vc null -af resample=44100 -ao pcm:waveheader:fast \
"$i" >/dev/null 2>/dev/null || {
echo "Problem extracting file $i"
exit 1
}
echo "done!"
echo -n "Encoding to mp3... "
lame -m s audiodump.wav -o "$j" >/dev/null 2>/dev/null
echo "done!"
echo "File written: $j"
done
# delete temporary dump file
rm -f audiodump.wav
首先你需要apt-get install mplayer lame
。之后,将代码放入名为“any2mp3.sh”的文件中,授予执行权限,并将其放入你的 $PATH 中,然后你就可以执行以下操作:
$ any2mp3.sh file.mp4 another-file.wma yet-another.file.ogg
它会将传递的每个文件转换为具有相同名称的 mp3。
虽然有点粗糙,但是还是能完成工作。
答案4
我使用这个小脚本将 m4a 转换为 mp3。
#!/bin/bash
for i in *.m4a; do
avconv -i "$i" -vn -acodec libmp3lame -ac 2 -ab 160k -ar 48000 "`basename "$i" .m4a`.mp3"
done