PDA

View Full Version : ffmpeg 0.4.9-pre1 released


bond
10th July 2004, 15:12
after some months of waiting a new release of ffmpeg has been made today

check out the changelog:
- DV encoder, DV muxer
- Microsoft RLE video decoder
- Microsoft Video-1 decoder
- Apple Animation (RLE) decoder
- Apple Graphics (SMC) decoder
- Apple Video (RPZA) decoder
- Cinepak decoder
- Sega FILM (CPK) file demuxer
- Westwood multimedia support (VQA & AUD files)
- Id Quake II CIN playback support
- 8BPS video decoder
- FLIC playback support
- RealVideo 2.0 (RV20) decoder
- Duck TrueMotion v1 (DUCK) video decoder
- Sierra VMD demuxer and video decoder
- MSZH and ZLIB decoder support
- SVQ1 video encoder
- AMR-WB support
- PPC optimisations
- rate distortion optimal cbp support
- rate distorted optimal ac prediction for mpeg4
- rate distorted optimal lambda->qp support
- AAC encoding with libfaac
- Sunplus JPEG codec (SP5X) support
- use lagrange multipler instead of qp for ratecontrol
- theora/VP3 decoding support
- XA and ADX ADPCM codecs
- export mpeg2 active display area / pan scan
- Add support for configuring with IBM XLC
- floating point AAN DCT
- initial support for zygovideo (not complete)
- rgb ffv1 support
- new audio/video parser API
- av_log() system
- av_read_frame() and av_seek_frame() support
- missing last frame fixes
- seek by mouse in ffplay
- noise reduction of dct coefficients
- h263 OBMC & 4MV support
- h263 alternative inter vlc support
- h263 loop filter
- h263 slice structured mode
- interlaced DCT support for MPEG2 encoding
- stuffing to stay above min_bitrate
- mb type & qp vissualization
- frame stepping for ffplay
- interlaced motion estimation
- alternate scantable support
- SVCD scan offset support
- closed gop support
- SSE2 fdct
- quantizer noise shaping
- G.726 ADPCM audio codec
- MS ADPCM encoding
- multithreaded/SMP motion estimation
- multithreaded/SMP encoding for MPEG1/MPEG2/MPEG4/H263
- multithreaded/SMP decoding for MPEG2
- FLAC decoder
- Metrowerks CodeWarrior suppport
- h263+ custom pcf support
- nicer output for 'ffmpeg -formats'
- matroska demuxer
- SGI image format, encoding and decoding
- h264 loop filter support
- h264 CABAC support
- nicer looking arrows for the motion vector vissualization
- improved VCD support
- audio timestamp drift compensation
- mpeg2 YUV 422/444 support
- polyphase kaiser windowed sinc and blackman nuttall windowed sinc audio resample
- better image scaling
- h261 support
- correctly interleave packets during encoding
- VIS optimized motion compensation
- intra_dc_precission>0 encoding support
- support reuse of motion vectors/mb types/field select values of the source video
- more accurate deblock filter
- padding support
- many optimizations and bugfixes

Sirber
10th July 2004, 15:17
Any win32/linux build/source?

Soulhunter
10th July 2004, 19:44
Originally posted by bond

- mpeg2 YUV 422/444 support

Does this mean 4:4:4 (not sub-sampled) MPEG2 (studio profile) ???


Bye

codyman
10th July 2004, 22:01
Awesome.... only now we need a good gui for ffmpeg like the one on mac I use called ffmpegx (http://homepage.mac.com/major4/). Anyone here a programmer up to the task :) if so i'll cheer you on.

S_O
11th July 2004, 01:09
I found some bugs:
H.263 Decoder seems to be broken, wonīt decode I263 at all, only the first two frames, then it says B frames not supported, but that might also be a missing feature, but also the blocks are broken (there are some black blocks which arenīt there in quicktime) at the bottom.
Tested with this file (remuxed to avi using 3ivx splitter/avi mux): http://homepage.mac.com/kenrohde/ipodsecretvid/ipodsecretvid.mov

There is the next bug: Wonīt read mov files, with all files tested it says no audio audio or video streams availble.

Next thing I tried is: The RealVideo G2 Decoder. I remember that ffdshow decodes old RealVideo G2 files just prefect, but crashes with new ones (RealVideo G2+SVT), also the bitstream format should be identical. Unfortunately it couldnīt read RealMedia files. I tried remuxing to matroska, also no luck, it always says Unsupported video codec.

Latexxx
11th July 2004, 12:32
UPX saved my life!

Ultimate Packer for eXecutables
Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
UPX 1.25w Markus F.X.J. Oberhumer & Laszlo Molnar Jun 29th 2004

File size Ratio Format Name
-------------------- ------ ----------- -----------
2586624 -> 884736 34.20% win32/pe ffmpeg_1.exe

Packed 1 file.


http://www.kolumbus.fi/hahne/ffmpeg.exe -created using default ./configure options on a P3 machine.

Edit: Includes a52

celtic_druid
11th July 2004, 13:39
Did one yesterday with faad. faac. a52, SDL and some other things enabled, but I deleted it as I was going to recompile with pretty much everything enabled and some custom cflags. Haven't got around to doing that though.

Anyone care if say AMR isn't enabled? How about LAME?

dragongodz
11th July 2004, 14:23
hahaha and her i just got on to let people know that i did a quick compile with gpl, a52 and pp enabled if they wanted to try it. :)

http://www.pcpages.com/dragongodz2/

hyper84
11th July 2004, 22:26
I tried to build using --enable-shared, but it seems like that is broken as I get a "The application failed to initialize properly (0xc0000005). CLick OK to terminate the application.

Tsui
12th July 2004, 00:08
I don't know if it's implemented yet, but I need a way to transfer/decode a DV-Avi (Canopus or other Codecs, CDVC or DVSD) to YUV-File without changing the Luma-Range.

Is it implemented and if not, is it possible to write such a function without using external codecs?

CavalloPazzo
12th July 2004, 10:22
Is there an updated documentatio anywhere? I can't use some of new function, as "support reuse of motion vectors/mb types/field select values of the source video" and I don't understand some option...

DoC hEx
12th July 2004, 21:00
This is great news. But the only thing I didn't like about the old version was it always decoded all my Codecs. I would like to be able to choose which codecs it should decode and the ones it shouldn't. As it used to decode my Divx, XviD files, and 3.11Aplha. Which I found was a bit of a pain. Other than that its the the best bit of software since VirtualDubMod.

Latexxx
12th July 2004, 21:44
Originally posted by DoC hEx
This is great news. But the only thing I didn't like about the old version was it always decoded all my Codecs. I would like to be able to choose which codecs it should decode and the ones it shouldn't. As it used to decode my Divx, XviD files, and 3.11Aplha. Which I found was a bit of a pain. Other than that its the the best bit of software since VirtualDubMod.

This isn't ffdshow!

ak
12th July 2004, 22:45
Yeah, it's just based on ffdshow :D

Originally posted by S_O
H.263 Decoder seems to be broken, wonīt decode I263 at all, only the first two frames, then it says B frames not supported, but that might also be a missing feature, but also the blocks are broken (there are some black blocks which arenīt there in quicktime) at the bottom.
Tested with this file (remuxed to avi using 3ivx splitter/avi mux): http://homepage.mac.com/kenrohde/ipodsecretvid/ipodsecretvid.mov

For this particular one, might be because height isn't 16x, with say -croptop 4 black blocks aren't there anymore. 0.4.8 used to behave the same way btw, it appears.

RadicalEd
12th July 2004, 23:21
Originally posted by ak
Yeah, it's just based on ffdshow :D

Other way around.

hellfred
13th July 2004, 11:14
Hi
I am trying to compile the source using recent current cygwin.
The approach is straigth forward:
./configure --prefix=/opt/ffmpeg
make
First error is when the ffmepeg.exe is copied and from ffmpeg_g.exe to be striped afterwards. Found workaround: define EXESUF=.exe in config.mak.
But i did not find any solution for the next one up to now:

cp -p ffmpeg_g.exe ffmpeg.exe
strip ffmpeg.exe
gcc -O3 -g -Wall -I. -I/home/Stefan/ffmpeg-0.4.9-pre1 -I/home/Stefan/ffmpeg-0.4.9-pre1/libavcodec -
I/home/Stefan/ffmpeg-0.4.9-pre1/libavformat -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE
-c -o ffserver.o /home/Stefan/ffmpeg-0.4.9-pre1/ffserver.c
/home/Stefan/ffmpeg-0.4.9-pre1/ffserver.c:362: warning: `get_longterm_datarate' defined but not used

gcc -Wl,--warn-common -g -Wl,-E -o ffserver.exe ffserver.o -L./libavformat -lavformat -L./libavcode
c -lavcodec -lz
gcc -O3 -g -Wall -I. -I/home/Stefan/ffmpeg-0.4.9-pre1 -I/home/Stefan/ffmpeg-0.4.9-pre1/libavcodec -
I/home/Stefan/ffmpeg-0.4.9-pre1/libavformat -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE
-c -o output_example.o /home/Stefan/ffmpeg-0.4.9-pre1/output_example.c
/home/Stefan/ffmpeg-0.4.9-pre1/output_example.c: In function `write_audio_frame':
/home/Stefan/ffmpeg-0.4.9-pre1/output_example.c:143: warning: unused variable `out_size'
gcc -Wl,--warn-common -g -o output_example.exe output_example.o -L./libavformat -lavformat -L./liba
vcodec -lavcodec -lz
make -C vhook all
make[1]: Entering directory `/home/Stefan/fft/vhook'
gcc -fPIC -O3 -g -Wall -I.. -I/home/Stefan/ffmpeg-0.4.9-pre1 -I/home/Stefan/ffmpeg-0.4.9-pre1/libav
format -I/home/Stefan/ffmpeg-0.4.9-pre1/libavcodec -DHAVE_AV_CONFIG_H `freetype-config --cflags` -
c -o null.o /home/Stefan/ffmpeg-0.4.9-pre1/vhook/null.c
cc1: warning: -fPIC ignored for target (all code is position independent)
gcc -g -o null.so -shared null.o
null.o(.text+0x5d): In function `Configure':
/home/Stefan/ffmpeg-0.4.9-pre1/vhook/null.c:40: undefined reference to `_av_mallocz'
null.o(.text+0xa3): In function `Process':
/home/Stefan/ffmpeg-0.4.9-pre1/vhook/null.c:56: undefined reference to `_avpicture_get_size'
null.o(.text+0xab):/home/Stefan/ffmpeg-0.4.9-pre1/vhook/null.c:57: undefined reference to `_av_mallo
c'
null.o(.text+0xca):/home/Stefan/ffmpeg-0.4.9-pre1/vhook/null.c:59: undefined reference to `_avpictur
e_fill'
null.o(.text+0xf0):/home/Stefan/ffmpeg-0.4.9-pre1/vhook/null.c:60: undefined reference to `_img_conv
ert'
null.o(.text+0x11a):/home/Stefan/ffmpeg-0.4.9-pre1/vhook/null.c:71: undefined reference to `_img_con
vert'
null.o(.text+0x125):/home/Stefan/ffmpeg-0.4.9-pre1/vhook/null.c:76: undefined reference to `_av_free
'
null.o(.text+0xc): In function `Release':
/home/Stefan/ffmpeg-0.4.9-pre1/vhook/null.c:33: undefined reference to `_av_free'
collect2: ld returned 1 exit status
make[1]: *** [null.so] Error 1
rm null.o
make[1]: Leaving directory `/home/Stefan/fft/vhook'
make: *** [videohook] Error 2

Stefan@CF ~/fft
$
Is vhook used for capturing video only? Then i would simply disable it during configuration, but reading the files in vhook, i could not find out what it is needed for.
Where are the two functions av_mallocz and avpicture_get_size defineid?

Hellfred

[EDIT]
Found the definition of av_mallocz here:
http://cvs.sourceforge.net/viewcvs.py/ffmpeg/ffmpeg/libavcodec/utils.c?rev=1.79
So the function should be in reach with the right headers included. Did anybody else encouter this error?
The functions deklaration is in avcodec.h.

easyfab
13th July 2004, 20:34
Did you try with :

--enable-gpl

I think you must add this to enable all code.

hellfred
14th July 2004, 00:12
I had to add --enable-gpl only once when i enabled postprocessing. Then the configure script demands to add --enable-gpl. Up to now i have not tryed to add ogg vorbis, flac, faad support.
Meanwhile I have managed to compile ffmpeg and ffserver by doing some tricks:
Working directory is /home/Stefan/fftemp

/hom/Stefan/ffmpeg-0.4.9-pre1/configure --disable-vhook
But up to now i do not know if vhook is only needed for ffplayer or for e.g. processing video clips, too

In config.mak I definded EXESUF=.exe

In vhooks\null.c I have directly included the header avcodec.h, though it should be included indirectly via framehook.h - which is included in null.c, too. But it did not work untill i edited null.c like discribed aboce.

Later on the Makefile/make fails to compile qt-faststart.cpp to qt-faststart.o as it is unable to find qt-faststart.cpp.
I manually compiled qt-faststart.cpp and moved the resulting .o file to my working directory and relaunched compilation by typing make again.

Up to now i did not make any tests to prove that the compile is actually working.

Hellfred

royalstar
17th September 2004, 11:21
I am in a kind of urgent situation, and could not find help anywhere else, so I ll ask the question here, and if anybody knows it would be a GREAT help. I am trying to find a way to re-stream an audio stream. I ll talk about the setup. I have a machine with an audio card, getting the sound input, and the FFMPEG encodes it, and FFServer Streams it. Now I want to set up another FFServer, that will get the stream from Server1 and RE-Stream it. Is this possible ? I found a "temporary" solution, giving the FFMPEG an input file of "http://192.168.254.10:8090/radio.mp3", but this forces a reencode. Is there a way for an FFServer to just RE-Stream a stream from another remote FFServer ? The FFServer sample configurations says it ca, but how ? Any help would be greatly appreciated

Regards
Royalstar

ChristianHJW
24th September 2004, 13:03
I'm not 100% sure, but maybe ICECAST is what you need ....

neo75903
14th November 2004, 22:03
- AAC encoding with libfaac


how is this done? I tried the following, syntax may be a bit wrong still experimenting, feel free to correct me:


D:\test>ffmpeg.exe -i test.mp3 -acodec mp4a test.mp4
ffmpeg version 0.4.9-pre1, build 4718, Copyright (c) 2000-2004 Fabrice Bellard
built on Jul 11 2004 17:11:14, gcc: 3.2.3 (mingw special 20030504-1)
Input #0, mp3, from 'test.mp3':
Duration: 00:04:42.4, bitrate: 128 kb/s
Stream #0.0: Audio: mp3, 44100 Hz, stereo, 128 kb/s
Unknown audio codec 'mp4a'


unknow codec? same for 'aac'

how do you make it work with libfaac.dll? i have a copy of libfaac.dll together with ffmpeg.exe.

gotaserena
14th November 2004, 23:16
aac coding should be incorporated to libavcodec during compilation. It does not matter whether ffmpeg can find libfaac afterwards.

Are you sure your build supports aac? It should have "aac" in the list of codecs (the one you find by running "ffmpeg -formats"). mp4a is just the fourcc of the stream into a .mp4 container, not the codec name.

BTW, if you're having trouble playing the resulting mp4 file in a DShow based app, try running MP4Box -isma on it. And a look here (http://ffmpeg.sourceforge.net/ffmpeg-doc.html) before running ffmpeg always helps.

neo75903
14th November 2004, 23:57
did a ffmpeg.exe -formats, aac is not in the list.
What do they mean with:

- AAC encoding with libfaac

i have read the manual and think my syntax will be something like:

ffmpeg.exe -y -i "source.mp3" -acodec aac -ac 2 -ar 44100 -ab 96 -f mp4 "out.mp4"

This is to transcode from mp3 to mp4.

gotaserena
15th November 2004, 00:11
Originally posted by neo75903
did a ffmpeg.exe -formats, aac is not in the list.

Outta luck then. Grab latest's celtic_druid's and try again. What they mean by "AAC encoding, etc." is that someone took the time of incorporating faac into libavcodec. But ffmpeg does not build with support for non-gpl codecs by default (i.e., no lame, no aac, no ac3 and definitely no dts), they have to be included one by one and confirmed via --enable-gpl during ./configure.

The syntax is right, but for what you want probably faac (+ mpeg123 + sox, if you are using linux; foobar if you are win) would do a better job. FAAc uses mpeg4ip's .mp4 libraries which I find to have less problems with various demuxers.

celtic_druid
15th November 2004, 00:49
With recent builds at least it lists the configure line used. It would need to contain --enable-faac. Think I basically enabled everything except for amr in my last build.

neo75903
15th November 2004, 03:47
erm though faac was an open source project coz it was hosted on sourceforge in the past.

I am trying to make it work with ffmpeg coz i am trying to write a batch file and a cli tool is more convenience to me.
where can i find celtic_druid's builds? there was no www in his signature and a search at the forum gave me some links to old builds.

Thx

celtic_druid
15th November 2004, 04:24
http://www.aziendeassociate.it/cd.asp?dir=/ffmpeg

faac is opensource. Basically just download faac:
cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/faac co faac
run bootstrap, ./configure && make && make install, then when you configure ffmpeg add --enable-faac and --enable-gpl.

gotaserena
15th November 2004, 10:49
The project is opensource. The codec itself is patented. That's why nobody distributes binaries having anything to do with MPEG-4 anymore.

neo75903
15th November 2004, 13:51
@celtic_druid:
Thanks a lot. I have no familiar with compiling from sources.
That will keep me busy for a while :)

Fl0ppy
23rd December 2004, 00:28
Celtic how do you compile with mp3? I can't.
If i do ./configure --enable-memalign-hack --enable mp3lame --enable-gpl

Ffmpeg returns :
"cannot find -lmp3lame"

I downloaded the latest lame 3.96.1 and uncompresse din the same ffmpeg directory, like:
c:\msys\1.0\ffmpeg
\lame =>>Here it's all the source of lame

Can you put a example of you configure?

And other thing im't interesed in compile only mpeg 1/2 mp2 and ac3 how i can configure the ffmpeg?

If i do ./configure no problem but...:(

thaaanks

Bogalvator
23rd December 2004, 01:09
Try configuring Lame with:

./configure --disable-decoder --disable-shared

The "--disable-decoder" option is because apparently Lame's decoder conflicts with ffmpeg's (or perhaps that's specifically Mplayer - I'm not sure), and the "--disable-shared" is simply because you don't need them.

Then build Lame and when done, copy libmp3lame.a AND libmp3lame.la into the mingw\lib directory and lame.h into a mingw\include\lame\ directory, then see what happens.

I'd be interested in the answer to your other question too, but I'm afraid I don't know.

Fl0ppy
23rd December 2004, 01:47
I compiled lame and copied the files libmp3lame.a libmp3lame.la to include\lame

And the configure it's:
--disable-decoder --disabled-shared --enable-memalign-hack --enable-mp3lame but the result it's:
"Cannot find -lmp3lame" :(

Fl0ppy
23rd December 2004, 01:59
And other i tried two differents builds, the 4721 and the 4736, the version 4721 in some snapshots offers better definition and quality than the "new version".

how it's possible? too many changes in the code?

celtic_druid
23rd December 2004, 05:15
--disable-decoder --disabled-shared was for lame, not ffmpeg. You need to make and install lame, then compile ffmpeg.

Can't find -lmp3lame means that it can't find libmp3lame.a

Fl0ppy
23rd December 2004, 18:15
oks, thanks, now i tried to make an .avi file (mpeg4 video and mp3 audio) with Celtic compiled version...but...

If i try to play the player give me an error, if i open with virtualdub the program says "error file index", but if a do: stream copy audio and video and save as avi, the "new" avi play fine.

You know why?:rolleyes:

Kurtnoise
26th January 2005, 10:58
Anyone have noticed ?
News
(Jan 24, 2005) Eagle-eyed observers may have noticed the recent CVS addition of a VC-9 decoding implementation. It is still highly experimental but should eventually serve as a basis for decoding Microsoft VC-1/VC-9/WMV3/WMV9 video data.


changelog :
version <next>
- TechSmith Camtasia (TSCC) video decoder
- IBM Ultimotion (ULTI) video decoder
- Sierra Online audio file demuxer and decoder
- Apple QuickDraw (qdrw) video decoder
- Creative ADPCM audio decoder
- Electronic Arts Multimedia (WVE/UV2/etc.) file demuxer
- Miro VideoXL (VIXL) video decoder
- H.261 video encoder

bond
26th January 2005, 11:28
two things:
1) its vc-1, not vc-9
2) its not m$'s codec, in fact m$ is only one of twelve known patent holders till now as described here (http://forum.doom9.org/showthread.php?s=&threadid=88897)