使用ffmpeg将音频文件转换为mp3

我需要使用ffmpeg将音频文件转换为mp3。

当我将命令写入ffmpeg -i audio.ogg -acodec mp3 newfile.mp3时,我得到了错误:

FFmpeg version 0.5.2, Copyright (c) 2000-2009 Fabrice Bellard, et al.
configuration:
libavutil     49.15. 0 / 49.15. 0
libavcodec    52.20. 1 / 52.20. 1
libavformat   52.31. 0 / 52.31. 0
libavdevice   52. 1. 0 / 52. 1. 0
built on Jun 24 2010 14:56:20, gcc: 4.4.1
Input #0, mp3, from 'ZHRE.mp3':
Duration: 00:04:12.52, start: 0.000000, bitrate: 208 kb/s
Stream #0.0: Audio: mp3, 44100 Hz, stereo, s16, 256 kb/s
Output #0, mp3, to 'audio.mp3':
Stream #0.0: Audio: 0x0000, 44100 Hz, stereo, s16, 64 kb/s
Stream mapping:
Stream #0.0 -> #0.0
Unsupported codec for output stream #0.0

我还运行了这个命令:

 ffmpeg -formats | grep mp3

得到的回应是:

FFmpeg version 0.5.2, Copyright (c) 2000-2009 Fabrice Bellard, et al.
configuration:
libavutil     49.15. 0 / 49.15. 0
libavcodec    52.20. 1 / 52.20. 1
libavformat   52.31. 0 / 52.31. 0
libavdevice   52. 1. 0 / 52. 1. 0
built on Jun 24 2010 14:56:20, gcc: 4.4.1
DE mp3             MPEG audio layer 3
D A    mp3             MP3 (MPEG audio layer 3)
D A    mp3adu          ADU (Application Data Unit) MP3 (MPEG audio layer 3)
D A    mp3on4          MP3onMP4
text2movsub remove_extra noise mov2textsub mp3decomp mp3comp mjpegadump imxdump h264_mp4toannexb dump_extra

我猜是mp3编解码器没有安装。我的思路对吗?

361291 次浏览

没关系,

我正在使用命令将我的音频文件转换为mp2:

ffmpeg -i input.wav -f mp2 output.mp3

这个命令非常有效。

我知道这实际上将文件转换为mp2格式,但结果文件大小是相同的..

你可以使用这个命令:

ffmpeg -i input.wav -vn -ar 44100 -ac 2 -b:a 192k output.mp3

本例中使用的参数说明:

  • -i -输入文件

  • -vn -禁用视频,以确保如果源文件是视频文件,则不包含视频(包括专辑封面图像)

  • -ar -设置音频采样频率。对于输出流,默认设置为相应输入流的频率。对于输入流,这个选项只对音频抓取设备和原始demuxer有意义,并映射到相应的demuxer选项。

  • -ac -设置音频通道的数量。对于输出流,它默认设置为输入音频通道的数量。对于输入流,这个选项只对音频抓取设备和原始demuxer有意义,并映射到相应的demuxer选项。用在这里确保它是立体声(2声道)

  • -b:a转换音频比特率为精确的192kbit / s

我必须清除我的ffmpeg,然后从一个ppa安装另一个:

sudo apt-get purge ffmpeg
sudo apt-add-repository -y ppa:jon-severinsson/ffmpeg
sudo apt-get update
sudo apt-get install ffmpeg

然后转换:

 ffmpeg -i audio.ogg -f mp3 newfile.mp3

1) wav转mp3

ffmpeg -i audio.wav -acodec libmp3lame audio.mp3

2) ogg到mp3

ffmpeg -i audio.ogg -acodec libmp3lame audio.mp3

3) ac3到mp3

ffmpeg -i audio.ac3 -acodec libmp3lame audio.mp3

4) aac转mp3

ffmpeg -i audio.aac -acodec libmp3lame audio.mp3

批处理文件夹中的文件:

for i in *.wav; do ffmpeg -i "$i" -f mp3 "${i%}.mp3"; done

这个脚本将文件夹中的所有“wav”文件转换为mp3文件,并添加mp3扩展名

ffmpeg必须安装。(见其他答案)

对于目标为190 VBR且文件扩展名为.mp3而不是.ac3.mp3的文件夹中的文件进行批处理,您可以使用以下代码

将.ac3更改为源音频格式。

ffmpeg mp3设置

for f in *.ac3 ; do ffmpeg -i "$f" -acodec libmp3lame -q:a 2 "${f%.*}.mp3"; done

尝试FFmpeg静态构建链接

文档:https://www.johnvansickle.com/ffmpeg/

将静态构建驻留在服务器上的同一目录中

$ffmpeg = dirname(__FILE__).'/ffmpeg';


$command = $ffmpeg.'ffmpeg -i audio.ogg -acodec libmp3lame audio.mp3';


shell_exec($command);

https://trac.ffmpeg.org/wiki/Encode/MP3

的VBR编码:

ffmpeg -vn -ar 44100 -ac 2 -q:a 1 -codec:a libmp3lame output.mp3

如果你有一个文件夹和子文件夹里都是你想转换的wav,把下面的命令放在一个文件中,保存在你想转换的文件夹根目录下的。bat文件中,然后运行bat文件

for /R %%g in (*.wav) do start /b /wait "" "C:\ffmpeg-4.0.1-win64-static\bin\ffmpeg" -threads 16 -i "%%g" -acodec libmp3lame "%%~dpng.mp3" && del "%%g"

高质量的Mac OS工作完美!

ffmpeg -i input.wma -q:a 0 output.mp3

如上所述,在这里输入和输出扩展将由ffmpeg检测,因此无需担心格式,只需运行此命令:

ffmpeg -i inputFile.ogg outputFile.mp3

我将解释如何转换webm到mp3的mac,我猜linux它也工作。

  1. 安装ffmpeg - brew install ffmpeg (mac)或sudo apt install ffmpeg (linux)
  2. 创建shell脚本-打开文本编辑器,把以下代码放在里面:
#!/bin/bash


echo webm to mp3 converter! Work begins!
for FILE in *.webm; do
echo -e "Processing file '$FILE'";
ffmpeg -i "${FILE}" -vn -ab 128k -ar 44100 -y "${FILE%.webm}.mp3";
done;

这段代码将查看当前目录中所有扩展名为.webm的文件。

  1. 保存没有扩展名的文件(例如"my-converter")
  2. 通过终端导航到创建的文件
  3. 通过输入命令:chmod 700 my-converter使文件成为executabe,现在在同一目录下将创建unix可执行文件(.sh)。
  4. 通过输入:./my-converter从终端执行文件,进程开始,你会在终端窗口中看到进程。

完成了。

似乎没有人使用find,它让你在一行上做所有事情。基于这个答案这篇文章

find . -type f -iname "*.webm" -exec bash -c 'FILE="$1"; ffmpeg -i "${FILE}" -vn -ab 128k "${FILE%.webm}.mp3";' _ '{}' \;

对于播客来说,128k对我来说已经足够了。你可以把这个参数调整到其他参数旁边:

  • -i -输入文件
  • -vn -禁用视频,以确保如果源文件是视频文件,则不包含视频(包括专辑封面图像)
  • -ar -设置一个udio采样frequency。对于输出流,默认设置为相应输入流的频率。对于输入流,这个选项只对音频抓取设备和原始demuxer有意义,并映射到相应的demuxer选项。
  • -ac -设置一个udio channels的数量。对于输出流,它默认设置为输入音频通道的数量。对于输入流,这个选项只对音频抓取设备和原始demuxer有意义,并映射到相应的demuxer选项。用在这里确保它是立体声(2声道)
  • -b:a转换音频比特率为精确的192kbit / s

使用之前的答案,这里是一个别名,通过将以下添加到.bashrc/.zshrc:

alias convert-aac="cd ~/Downloads && aac-to-mp3"


# Convert all .aac files into .mp3 files in the current folder, don't convert if a mp3 file already exists
aac-to-mp3(){
find . -type f -iname "*.aac" -exec \
bash -c 'file="$1"; ffmpeg -n -i "$file" -acodec libmp3lame "${file%.aac}.mp3";' _ '{}' \;
}
< p > 使用: convert-aac (in shell)

感谢https://stackoverflow.com/a/70339561/2391795https://stackoverflow.com/a/12952172/2391795https://unix.stackexchange.com/a/683488/60329