The latest FFmpeg for Windows compilation by Komeil as of March 15, 2009 based on SVN-r17988 is ready for download at Komeil’s FFmpeg archive.
Download Link
- Download FFmpeg r17988 Komeil as a 3.04 MB (3,188,279 bytes) CAB file which will extract to a 9.54 MB (10,009,619 bytes) EXE file
Komeil’s Statically-Built External Libraries
This compilation is done using GCC 4.3.0 20080305 / MinGW 20080502 for Win32. The GCC-built archives of statically-linkable external libraries used in this compilation are available for download at Komeil’s FFmpeg libraries archive. Also you can find direct download links to each static library in “Build Version” column of “External Libraries” table below. Once downloaded successfully, you need to extract them right into your “MinGW” folder, since the CAB archives include LIB (containing .a library files) and INCLUDE (containing .h header files) directories fittingly. Please note FFmpeg is a stand-alone portable executable, and these libraries are provided for experimentalists interested in compiling FFmpeg by themselves.
About FFmpeg
FFmpeg is a complete, cross-platform solution to record, convert and stream audio and video. It includes libavcodec, the leading audio/video codec library.
Compilation Technical Information
configuration: –enable-memalign-hack –extra-cflags=-fno-common –enable-static –disable-shared –disable-debug –enable-gpl –enable-nonfree –enable-avfilter –enable-avfilter-lavf –enable-avisynth –enable-postproc –enable-pthreads –enable-libamr-nb –enable-libamr-wb –enable-libgsm –enable-libfaac –enable-libfaad –enable-libmp3lame –enable-libschroedinger –enable-libspeex –enable-libtheora –enable-libvorbis –enable-libx264 –enable-libxvid
FFmpeg Internal Libraries
These are the libraries FFmpeg is basically packed with:
Name | Version |
libavutil | 50.0.0 |
libavcodec | 52.21.0 |
libavformat | 52.31.1 |
libavdevice | 52.1.0 |
libavfilter | 0.4.0 |
libswscale | 0.7.1 |
libpostproc | 51.2.0 |
External Libraries
Under “Build Version” column you can find direct download links to each static library used is this FFmpeg compilation:
Name | Library | Build Version | Notes |
AMR NB | libamr-nb | amrnb 7.0.0.2 | 3GPP AMR narrowband |
AMR WB | libamr-wb | amrwb 7.0.0.3 | 3GPP AMR wideband |
BZip2 | bzlib | bzip2 1.0.5 | BZ2 |
FAAC | libfaac | faac 1.26 | MPEG-4 and MPEG-2 AAC encoder |
FAAD | libfaad | faad 2.6.1 | MPEG-4 and MPEG-2 AAC decoder |
GPAC | libgpac | Required by libx264 | |
GSM | libgsm | gsm 1.0.12 | GSM |
LAME | libmp3lame | lame 3.98.2 | MPEG-1 Layer 3 (MP3) |
OGG | libogg | ogg 1.1.3 | Required by libvorbis |
OIL | liboil | oil 0.3.15 | Required by libschroedinger |
POSIX Threads | pthreads | pthreads 2.8.0 | Required by libx264 |
Schrödinger | libschroedinger | schroedinger 1.0.5 | BBC Dirac Schroedinger |
Speex | libspeex | speex 1.2rc1 | Xiph SPX |
Theora | libtheora | theora svn-r15330 | Xiph OGV |
Vorbis | libvorbis | vorbis 1.2.0 | Xiph OGG/OGA/OGX |
x264 | libx264 | x264 git-r1099 | H.264/AVC |
Xvid | libxvid | xvidcore 1.2.1 | MPEG-4 Part 2 ASP (DivX) |
ZLib | zlib | zlib 1.2.3 | Deflate – Required by FFmpeg & libgpac |
MinGW
This is the list of all the Minimalist GNU for Windows and other GNU toolchain used to compile and build FFmpeg SVN-r17988-Komeil and its external libraries:
Name | Version | Notes |
bash | 3.1 | |
binutils | 2.19.1 | |
coreutils | 5.97 | |
gcc | 4.3.0 | |
glib | 2.18.3 | Required by libschroedinger |
make | 3.81 | |
mingwrt | 3.15.2 | |
msys | 1.0.11 | |
msysdtk | 1.0.1 | Required by libfaac, libfaad, libtheora & libvorbis |
msysgit | 1.6.2 | Required by libx264 |
nasm | 2.06rc1 | Required by libmp3lame & libx264 |
pkg-config | 0.23 | Required by libschroedinger & libvorbis |
w32api | 3.13 | |
wget | 1.5.3.1 | Required by libamr-nb & libamr-wb |
unzip | 5.52 | Required by libamr-nb & libamr-wb |
Supported File Formats
This is the list of all media formats FFmpeg SVN-r17988-Komeil can decode from and/or encode to:
Name | Description | Decode | Encode |
3g2 | 3GP2 format | X | |
3gp | 3GP format | X | |
4xm | 4X Technologies format | X | |
IFF | IFF format | X | |
ISS | Funcom ISS format | X | |
MTV | MTV format | X | |
RoQ | raw id RoQ format | X | X |
aac | raw ADTS AAC | X | |
ac3 | raw AC-3 | X | X |
adts | ADTS AAC | X | |
aiff | Audio IFF | X | X |
alaw | PCM A-law format | X | X |
amr | 3GPP AMR file format | X | X |
apc | CRYO APC format | X | |
ape | Monkey’s Audio | X | |
asf | ASF format | X | X |
asf_stream | ASF format | X | |
ass | SSA/SS format | X | X |
au | SUN AU format | X | X |
avi | AVI format | X | X |
avm2 | Flash 9 (AVM2) format | X | |
avs | AVISynt | X | |
bethsoftvid | Bethesda Softworks VID format | X | |
bfi | Brute Force & Ignorance | X | |
c93 | Interplay C93 | X | |
cavsvideo | raw Chinese AVS video | X | |
crc | CRC testing format | X | |
daud | D-Cinema audio format | X | X |
dirac | raw Dirac | X | X |
dnxhd | raw DNxHD (SMPTE VC-3) | X | X |
dsicin | Delphine Software International CIN format | X | |
dts | raw DTS | X | X |
dv | DV video format | X | X |
dvd | MPEG-2 PS format (DVD VOB) | X | |
dxa | DXA | X | |
ea | Electronic Ars Multimedia Format | X | |
ea_cdata | Electronic Arts cdata | X | |
eac3 | raw E-AC-3 | X | X |
f32be | PCM 32 bit floating-point big-endian format | X | X |
f32le | PCM 32 bit floating-point little-endian format | X | X |
f64be | PCM 64 bit floating-point big-endian format | X | X |
f64le | PCM 64 bit floating-point little-endian format | X | X |
ffm | FFM (FFserver live feed) format | X | X |
film_cpk | Sega FILM/CPK format | X | |
flac | raw FLAC | X | X |
flic | FLI/FLC/FLX animation format | X | |
flv | FLV format | X | X |
framecrc | framecrc testing format | X | |
gif | GIF Animation | X | |
gsm | raw GSM | X | |
gx | GXF format | X | X |
h261 | raw H.261 | X | X |
h263 | raw H.263 | X | X |
h264 | raw H.264 video format | X | X |
idcin | id Cinematic format | X | |
image2 | image2 sequence | X | X |
image2pipe | piped image2 sequence | X | X |
ingenient | raw Ingenient MJPEG | X | |
ipmovie | Interplay MVE format | X | |
ipod | iPod H.264 MP4 format | X | |
lmlm4 | lmlm4 raw format | X | |
m4v | raw MPEG-4 video format | X | X |
matroska | Matroska file format | X | X |
mjpeg | raw MJPEG video | X | X |
mlp | raw MLP | X | |
mm | American Laser Games MM format | X | |
mmf | Yamaha SMAF | X | X |
mov | MOV format | X | |
mov,mp4,m4a,3gp,3g2,mj2 | QuickTime/MPEG-4/Motion JPEG 2000 format | X | |
mp2 | MPEG udio layer 2 | X | |
mp3 | MPEG audio layer 3 | X | X |
mp4 | MP4 format | X | |
mpc | Musepack | X | |
mpc8 | Musepack SV8 | X | |
mpeg | MPEG-1 System forma | X | X |
mpeg1video | raw MPEG-1 video | X | |
mpeg2video | raw MPEG-2 video | X | |
mpegts | MPEG-2 transport stream format | X | X |
mpetsraw | MPEG-2 raw transport stream format | X | |
mpegvideo | raw MPEG video | X | |
mpjpeg | MIME multipart JPEG format | X | |
msnwctcp | MSN TCP Webcam stream | X | |
mulaw | PCM mu-law format | X | X |
mvi | Motion Pixels VI format | X | |
mxf | Material eXchange Format | X | X |
mxf_d10 | Material eXchange Format, D-10 Mapping | X | |
nc | NC camera feed format | X | |
nsv | Nullsoft Streaming Video | X | |
null | raw null video format | X | |
nut | NUT format | X | X |
nuv | NuppelVideo format | X | |
ogg | Ogg | X | X |
oma | Sony OpenMG audio | X | |
psp | PSP MP4 format | X | |
psxstr | Sony Playstation STR format | X | |
pva | TechnoTrend PVA file and stream format | X | |
r3d | REDCODE R3D format | X | |
rawvideo | raw video format | X | X |
rcv | VC-1 test bitstream | X | |
redir | Redirector format | X | |
rl2 | RL2 format | X | |
rm | RealMedia format | X | X |
rpl | RPL/ARMovie format | X | |
rt | RTP output format | X | |
rtsp | RTSP input format | X | |
s16be | PCM signed 16 bit big-endian format | X | X |
s16le | PCM signed 16 bit little-endian format | X | X |
s24be | CM signed 24 bit big-endian format | X | X |
s24le | PCM signed 24 bit little-endian format | X | X |
s32be | PCM signed 32 bit big-endian format | X | X |
s32le | PCM signed 32 bit little-endian format | X | X |
s8 | PCM signed 8 bit format | X | X |
sdp | SDP | X | |
shn | raw Shorten | X | |
siff | Beam Software SIFF | X | |
smk | Smacker video | X | |
sol | Sierra SOL format | X | |
svcd | MPEG-2 PS format (VOB) | X | |
swf | Flash format | X | X |
thp | THP | X | |
tiertexseq | Tiertex Limited SEQ format | X | |
tta | True Audio | X | |
txd | Renderware TeXture Dictioary | X | |
u16be | PCM unsigned 16 bit big-endian format | X | X |
u16le | PCM unsigned 16 bit little-endian format | X | X |
u24be | PCM unsigned 24 bit big-endian format | X | X |
u24le | PCM unsigned 24 bit little-endian format | X | X |
u32be | PCM unsigned 32 bit big-endian format | X | X |
u32le | PCM unsigned 32 bit little-endian format | X | X |
u8 | PCM unsigned 8 bit format | X | X |
vc1 | raw VC-1 | X | |
vc1test | VC-1 test bitstream format | X | |
vcd | MPEG-1 System format (VCD) | X | |
vfwcap | VFW video capture | X | |
vmd | Sierra VMD format | X | |
vob | MPEG-2 PS format (VOB) | X | |
voc | Creative Voice file format | X | X |
vqf | Nippon Telegraph and elephone Corporation (NTT) TwinVQ | X | |
wav | WAV format | X | X |
wc3movie | Wing Commander III movie format | X | |
wsaud | Westwood Studios audio format | X | |
wsvqa | Westwood Studios VQA format | X | |
wv | WavPack | X | |
xa | Maxis XA File Format | X | |
yuv4mpegpipe | YUV4MPEG pipe format | X | X |
great,
I have been breaking my head to get amr to work on ffmpeg for windows.
finally it works on windows ..thanks to komeil
I used the command as below
ffmpeg -i tawwab.mp3 -acodec libamr_nb -ar 8000 -ab 12.2k tawwab.amr
and it went fine and created a amr audio file.
and then tried this command below
ffmpeg -i test.flv -vcodec h263 -r 15 -b 32k -s 176×144 -acodec libamr_nb -ar 8000 -ac 1 -ab 12.2k tawwab.3gp
worked as well…
thanks to komeil…amr and 3gp worked.
To improve your first command (MP3 to AMR conversion) and make it flawless, add “-f amr” to force output format to AMR, and add “-ac 1” to specify monaural (mono-channel) audio. Yours fails if the input MP3 is stereo!
To improve the second command (FLV to 3GP), add “-f 3gp” to force format to 3GP, and increase “-b 32k” up to 339k for a better mobile playback quality.
To know more about 3GP conversion, read my new article.
Dear Komeil,
>> To improve your first command (MP3 to AMR conversion) and make it flawless, add “-f amr” to force output format to AMR …
did not play any sound on 4 different mm players including mplayer.
But played well when replacing -f amr to -f 3gp
Hi Komeil,
Because I am newbie on compiling ffmpeg, can you please post ffmpeg source tree with external libraries?
Hi Kabil,
This is the best wiki about building FFmpeg with external libraries: http://ffmpeg.arrozcru.org/wiki/index.php?title=Using_External_Libraries
I’m going to modify this post to include the libraries. Check back in an hour.
Many thanks Komeil
Can FFmpeg convert a QCELP (Qualcomm .QCP PureVoice) audio file from a cell phone to standard WAV format? I’ve tried:
ffmpeg -i warp.qcp warp.wav
and it just fails with “warp.qcp: Unknown format”
You can download sample QCP files from: http://www.mplayerhq.hu/MPlayer/samples/A-codecs/suite/QCP/
I have tried several precompiled versions of FFmpeg found on the web and I have also successfully downloaded the latest source code and compiled it myself. When I do “ffmpeg -formats”, in the list under codecs is “D A qcelp QCELP / PureVoice”.
I can’t find any explicit examples of using FFmpeg to convert QCELP. Really the only other stuff I can find talks about how, back in 2006, QCELP support was “patched” in using the “Reference Implementation (RI)”, but then with the release of FFmpeg 0.5, it is now officially supported and has it’s own implementation (I have looked at those source code files). Also I have found some talk that QCELP is used as the audio format for some QuickTime mp4 movies. It appears that people have successfully transcoded these mp4 files to other formats. It would seem weird that the FFmpeg QCELP decoder is supported in that sense but not able to convert an audio file directly.
Anyone out there, Komeil…:-), that could help I’d appreciate it.
Thanks,
Kevin
One delicate thing once you use “ffmpeg -formats” is the results contain two tables, with the first being entitled “file formats” and the second “codecs“. QCELP (the codec) is listed under “codecs”, but QCP (the file format) is NOT listed under “file formats”. So the conclusion is just like what you’ve stated, it can only decode (the “D A” in “D A qcelp QCELP / PureVoice” means decode audio stream) once it’s used as the “audio stream” of an MP4, but the QCP as an audio file format is not supported.
There’s never been a QCP “demuxer” module (libavformat/qcp.c) in FFmpeg implementations before SVN-r18890 of May 21, 2009. This “qcp.c” file was added to the FFmpeg “libavformat” by “Kenan Gillet”.
Looking into the source of this newly added “qcp.c” file, you can find a C++ comment:
// “QLCMfmt ” + chunk-size + major-version + minor-version
Pay attention to the “QLCMfmt”. Now, if you open one of the QCP files you’ve referenced in NOTEPAD.EXE, after the “RIFF”, the “QLCMfmt” is evident. That’s where “qcp.c” grinds the QCP header.
And look for “- QCP demuxer” here in the FFmpeg Changelog, it’s just recently added.
So maybe if you make a version newer than SVN-r18890, it might be able to decode QCP files. To ensure your compilation is able to demux/decode QCELP streams containing within QCP files, use “ffmpeg -formats”, and check to see if QCP is listed under “file formats”.
Awesome, Komeil. Thanks. That did it. I got SVN-r20900 and that was able to read and decode a .QCP file.
Hi Komeil,
I’ve managed to compile ffmpeg with some instructions from the given links and with more extra research. I also attached this ffmpeg to FOBS JMF player. If someone needs detailed instructions just visit http://cid-2525acf96f6962bf.spaces.live.com/blog/cns!2525ACF96F6962BF!141.entry
Hi Komeil,
many thanks for your help and i wrote some instructions in turkish language. it may help people. http://cid-c07817cd4d2dd44b.spaces.live.com/blog/cns!C07817CD4D2DD44B!122.entry
thanks again,
burak
Hi Komeil,
Can you help me?
I need to know how convert the format of video using FFMPEG (Windows). I did the download from your site and I don’t know how can I use the codecs.
I downloaded the AMR_NB codec, for example, for convert the video to 3GP format, but where I need to put these files?
I’m using the command “ffmpeg -y -i entrada.avi -s qcif -vcodec h263 -acodec amr_nb -ac 1 -ar 8000 -r 15 -ab 32 saida.3gp”, and getting the message “unknown encoder amr_nb”.
Can you explain how to use the codecs?
Hi Inanda,
You don’t have to download any codecs, FFmpeg is a stand-alone executable. All you need is an AMR-enabled FFmpeg compilation, one like mine.
First, “-acodec amr_nb” is worng, it should be “-acodec libamr_nb”.
Then, For AMR-NB, only an 8000 sample rate and one of the following bitrates are valid:
4.75k, 5.15k, 5.9k, 6.7k, 7.4k, 7.95k, 10.2k or 12.2k
To make an early-Nokia-compatible 3GP, use AMR-NB 8000/12.2k: “-ac 1 -ar 8000 -ab 12.2k”
Read more here.
And FYI, for the AMR-WB (Adaptive Multi-Rate Wide-Band), only a 16000 sample rate and one of the following bitrates are valid:
6.6k, 8.85k, 12.65k, 14.25k, 15.85k, 18.25k, 19.85k, 23.05k, or 23.85k
I want to convert 3gp to flv with audio enable. please tell me the correct command
To convert 3GP to FLV with audio:
ffmpeg -i input.3gp -f flv -vcodec flv -r 15 -b 300k -aspect 176:144 -s 176×144 -acodec libmp3lame -ar 11025 -ab 64k -ac 1 -y output.flv
thank you very much for this.
Finally something slim to convert xvid/mp3 .avi to h264/aac .mp4 in one go. only other option was to use Adobe Media Encoder (horrible)
parece interesante
thanks for your usefull work !
Thanks Komail, great work!
Hi
This is fine..
But i just need to work with dshow.
Would you provide solution for enabling dshow format in ffmpeg?
Thanks in advance…
Regards,
Sreerag