I need to convert audio files to mp3 using ffmpeg.
When I write the command as ffmpeg -i audio.ogg -acodec mp3 newfile.mp3
, I get the error:
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
I also ran this command:
ffmpeg -formats | grep mp3
and got this in response:
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
I guess that the mp3 codec isn't installed. Am I on the right track here?
You could use this command:
ffmpeg -i input.wav -vn -ar 44100 -ac 2 -b:a 192k output.mp3
Explanation of the used arguments in this example:
-i
- input file
-vn
- Disable video, to make sure no video (including album cover image) is included if the source would be a video file
-ar
- Set the audio sampling frequency. For output streams it is set by default to the frequency of the corresponding input stream. For input streams this option only makes sense for audio grabbing devices and raw demuxers and is mapped to the corresponding demuxer options.
-ac
- Set the number of audio channels. For output streams it is set by default to the number of input audio channels. For input streams this option only makes sense for audio grabbing devices and raw demuxers and is mapped to the corresponding demuxer options. So used here to make sure it is stereo (2 channels)
-b:a
- Converts the audio bitrate to be exact 192kbit per second
1) wav to mp3
ffmpeg -i audio.wav -acodec libmp3lame audio.mp3
2) ogg to mp3
ffmpeg -i audio.ogg -acodec libmp3lame audio.mp3
3) ac3 to mp3
ffmpeg -i audio.ac3 -acodec libmp3lame audio.mp3
4) aac to mp3
ffmpeg -i audio.aac -acodec libmp3lame audio.mp3
For batch processing with files in folder aiming for 190 VBR and file extension = .mp3 instead of .ac3.mp3 you can use the following code
Change .ac3 to whatever the source audio format is.
for f in *.ac3 ; do ffmpeg -i "$f" -acodec libmp3lame -q:a 2 "${f%.*}.mp3"; done
Never mind,
I am converting my audio files to mp2 by using the command:
ffmpeg -i input.wav -f mp2 output.mp3
This command works perfectly.
I know that this actually converts the files to mp2 format, but then the resulting file sizes are the same..
For batch processing files in folder:
for i in *.wav; do ffmpeg -i "$i" -f mp3 "${i%}.mp3"; done
This script converts all "wav" files in folder to mp3 files and adds mp3 extension
ffmpeg have to be installed. (See other answers)
如上所述这里输入和输出扩展将被检测ffmpeg
所以没有必要对格式的烦恼,只需运行下面的命令:
ffmpeg -i inputFile.ogg outputFile.mp3
I had to purge my ffmpeg and then install another one from a ppa:
sudo apt-get purge ffmpeg
sudo apt-add-repository -y ppa:jon-severinsson/ffmpeg
sudo apt-get update
sudo apt-get install ffmpeg
Then convert:
ffmpeg -i audio.ogg -f mp3 newfile.mp3
https://trac.ffmpeg.org/wiki/Encode/MP3
VBR Encoding:
ffmpeg -vn -ar 44100 -ac 2 -q:a 1 -codec:a libmp3lame output.mp3
Mac OS 的高品质完美运行!
ffmpeg -i input.wma -q:a 0 output.mp3
Try FFmpeg Static Build Link
Documentation: https://www.johnvansickle.com/ffmpeg/
Host the static build on your server in same directory
$ffmpeg = dirname(__FILE__).'/ffmpeg';
$command = $ffmpeg.'ffmpeg -i audio.ogg -acodec libmp3lame audio.mp3';
shell_exec($command);
如果您有一个文件夹和子文件夹充满了要转换的 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"
I will explain how to convert webm to mp3 for macs, I guess for linux it also works.
brew install ffmpeg
(mac) or sudo apt install ffmpeg
(linux)#!/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;
this code will look all files with .webm extension in current directory.
chmod 700 my-converter
, now in the same directory the unix executable file (.sh) will be created../my-converter
and the process begins, you will see the progress in the terminal window.Done.
No one seems to use find
, which let you do everything on one line. Based on this answer and this post
find . -type f -iname "*.webm" -exec bash -c 'FILE="$1"; ffmpeg -i "${FILE}" -vn -ab 128k "${FILE%.webm}.mp3";' _ '{}' \;
For for eg podcasts 128k is enaugh for me. You can adjust that argument beside some others:
-i
- input file -vn
- Disable video, to make sure no video (including album cover image) is included if the source would be a video file -ar
- Set the a udio sampling f r equency. For output streams it is set by default to the frequency of the corresponding input stream. For input streams this option only makes sense for audio grabbing devices and raw demuxers and is mapped to the corresponding demuxer options.-ac
- Set the number of a udio c hannels. For output streams it is set by default to the number of input audio channels. For input streams this option only makes sense for audio grabbing devices and raw demuxers and is mapped to the corresponding demuxer options. So used here to make sure it is stereo (2 channels)-b:a
- Converts the audio bitrate to be exact 192kbit per second Using the previous answers, here is an alias for this by adding the following into .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";' _ '{}' \;
}
Usage : convert-aac
(in shell)
Thanks to https://stackoverflow.com/a/70339561/2391795 and https://stackoverflow.com/a/12952172/2391795 and https://unix.stackexchange.com/a/683488/60329
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.