将mp4转换为mp3
我有一个video我需要转换为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
我错过了什么吗?
对于具有恒定比特率编码(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。
我有一个使用mplayer
的shell脚本(因此它可以转换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 -ms 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的每个文件。
这有点粗糙,但做的工作。
soundconverter
是GNOME桌面的领先音频文件转换器。 它读取GStreamer可读取的任何内容(Ogg Vorbis,AAC,MP3,FLAC,WAV,AVI,MPEG,MOV,M4A,AC3,DTS,ALAC,MPC,Short,APE,SID,MOD,XM,S3M等… ),写入WAV,FLAC,MP3,AAC和Ogg Vorbis文件,或使用GNOME音频配置文件。
SoundConverter旨在使用简单,速度非常快。 由于采用multithreading设计,它将使用尽可能多的内核来加速转换。 它还可以从video中提取音频。
如何使用VLC将MP4转换为MP3
-
打开VLC媒体播放器。 单击“媒体”>“转换”进入“打开媒体”窗口。 单击屏幕右侧的“添加”按钮进入Windows资源管理器。 找到要转换的硬盘驱动器上的MP4。 单击屏幕底部的“转换”按钮。
-
选择目标文件的名称。
-
单击“音频编解码器”选项卡,然后从“编解码器”下拉框中选择“MP3”。 按“开始”按钮开始将MP4转换为MP3音频。
-
单击开始
我使用这个小脚本将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
我认为问题在于你的ffmpeg命令的语法。
ffmpeg -i source_filename -vn -ab 192k -acodec libmp3lame -ac 2 output_filename
应该管用。
首先,你必须了解一些事情。
MP3
是一种音频格式。
MP4
是一种video格式。
要将音频从MP4中取出(并将其保存为MP3),请使用声音转换器 。
将Upd_Sanity.mp4转换为Upd_Sanity.mp3
$ sudo apt-get install ffmpeg && sudo apt-get install libavcodec-extra-53 $ ffmpeg -i Upd_Sanity.mp4 -vn -acodec libmp3lame -ac 2 -ab 160k -ar 48000 Upd_Sanity.mp3
或(因为ffmpeg
已弃用)
$ avconv -i Upd_Sanity.mp4 -vn -acodec libmp3lame -ac 2 -ab 160k -ar 48000 Upd_Sanity.mp3
描述
-i input file name -vn disable video recording -acodec force audio codec to libmp3lame -ac set the number of audio channels -ar set the audio sampling frequency
如果你需要经常使用它,
第1步:创建执行转换的bash函数
## utilities.sh convertMP4toMP3(){ echo -n "Enter source mp4 file : " read sourceFile echo -n "Enter destination mp3 file : " read destFile avconv -i $sourceFile -vn -acodec libmp3lame -ac 2 -ab 160k -ar 48000 $destFile }
第2步:源bash文件
$ source utilities.sh
步骤3:开始转换调用上面的函数convertMP4toMP3
$ convertMP4toMP3 Enter source mp4 file : Upd_Sanity.mp4 Enter destination mp3 file : UPd_sanity.mp3
参考
utilities.sh
如果使用FFmpeg并将输出管道输入到lame(通过stdout和stdin),则可以直接使用Lame。 一个例子:
ffmpeg -i video.mp4 -vn -f wav - | \ lame -V 3 - audio.mp3
如果你想探索它们,这允许你使用lame的相当多的命令行选项…
您可以尝试通过vlc或声音转换器转换它到http://soundconverter.org/声音转换器或在您的软件中心找到或使用vlc进行转换打开vlc媒体转换/保存选择您的文件选择输出格式选择名称和目的地和开始蒸汽就是这样
试试Transmageddon可以通过Ubuntu软件中心http://www.linuxrising.org/index.html获得
虽然它是GUI,但在进行MP4到MP3转换时,您可以使用Audacity来控制固定或可变以及输出质量。
打开Audacity,打开目标MP4文件,单击FILE,EXPORT,然后选择输出类型(默认为MP3)并单击SAVE。 它打开MP4的音频通道,将MP3音频导出到任何地方(以及你保存的任何地方),你就不在了(在3Ghz AMD芯片上将400-mb MP4转换为MP3大约需要10分钟,音频采样率为160kb / s,音频文件大约是MP4的一半。