9.10, VLC, streaming and AAC codec missing for ffmpeg
Hi guys,
I have problem with VLC not being able to stream via RTP protocol. I want to encode stream to mp3, h264 and AAC audio. While encoding video is just fine, VLC shouts at me that my FFMPEG installation is "crippled" ;). I guess ffmpeg package doesn't have AAC suport compiled in.
My command line is:
Code:
vlc -vvv -I rc v4l2:// :v4l2-adev=/dev/dsp :input-slave=oss:// --sout "#transcode{venc=x264{keyint=60},vcodec=x264,vb=50,scale=1,width=160,height=140,acodec=aac,ab=32,channels=2,samplerate=22050}:rtp{dst=XXX.XXX.XXX.XXX,port=5432,sdp=http://0.0.0.0:5050/vlc.sdp}"
And error message printed out by VLC is:
Code:
[0x22afce8] avcodec encoder debug: libavcodec initialized (interface 0x341400)
[0x22afce8] avcodec encoder error: cannot find encoder MPEG AAC Audio
*** Your FFMPEG installation is crippled. ***
*** Please check with your FFMPEG packager. ***
*** This is NOT a VLC media player issue. ***
[0x22afce8] main encoder error: Streaming / Transcoding failed
[0x22afce8] main encoder error: It seems your FFMPEG (libavcodec) installation lacks the following encoder:
MPEG AAC Audio.
If you don't know how to fix this, ask for support from your distribution.
This is not an error inside VLC media player.
Do not contact the VideoLAN project about this issue.
FFMPEG says it was compiled with options:
Code:
FFmpeg version SVN-r19352-4:0.5+svn20090706-2ubuntu1, Copyright (c) 2000-2009 Fabrice Bellard, et al.
configuration: --extra-version=4:0.5+svn20090706-2ubuntu1 --prefix=/usr --enable-avfilter --enable-avfilter-lavf --enable-vdpau --enable-bzlib --enable-libgsm --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-pthreads --enable-zlib --disable-stripping --disable-vhook --enable-gpl --enable-postproc --enable-swscale --enable-x11grab --enable-libdc1394 --extra-cflags=-I/build/buildd/ffmpeg-0.5+svn20090706/debian/include --enable-shared --disable-static
libavutil 49.15. 0 / 49.15. 0
libavcodec 52.20. 0 / 52.20. 0
libavformat 52.31. 0 / 52.31. 0
libavdevice 52. 1. 0 / 52. 1. 0
libavfilter 0. 4. 0 / 0. 4. 0
libswscale 0. 7. 1 / 0. 7. 1
libpostproc 51. 2. 0 / 51. 2. 0
built on Aug 26 2009 09:45:20, gcc: 4.4.1
At least one output file must be specified
Any ideas?
Re: 9.10, VLC, streaming and AAC codec missing for ffmpeg
Ugh, I have spent whole day trying to do it and now when I came back it was 15 mins enough to do so... need to take break more often.
Here is what I did to enable VLC AAC output (and ffmpeg AAC in general) in plain Ubuntu 9.10 install:
Get building tools if you don't have yet:
Code:
sudo apt-get install build-essential fakeroot dpkg-dev
Get build dependencies for ffmpeg:
Code:
apt-get build-dep ffmpeg
Get ffmpeg's deb sources:
Code:
apt-get source ffmpeg
Get faac codec for AAC:
Code:
apt-get install faac libfaac0 libfaac-dev
Do something (extract?) sources:
Code:
dpkg-source -x ffmpeg_0.5+svn20090706-2ubuntu1.dsc
Compile ffmpeg:
Code:
cd ffmpeg_0.5+svn20090706 && DEB_BUILD_OPTIONS="--enable-faac" fakeroot debian/rules binary
Install ffmpeg and it's libraries that were packaged separately.
Code:
cd .. && dpkg -i *.deb
Proper VLC command for streaming MP4 with AAC is:
Code:
vlc -vvv -I rc v4l2:// :v4l2-adev=/dev/dsp :input-slave=oss:// --sout "#transcode{venc=x264{keyint=60},vcodec=x264,vb=50,scale=1,width=160,height=140,acodec=mp4a,ab=32,channels=2,samplerate=22050}:rtp{dst=XXX.XXX.XXX.XXX,port=5432,sdp=http://0.0.0.0:5050/vlc.sdp}"
Voila!
Re: 9.10, VLC, streaming and AAC codec missing for ffmpeg
I wish I would have seen your first post earlier because I could have saved you some time:
HOWTO: Easily enable MP3, MPEG4, AAC, and other restricted encoding in FFmpeg
Re: 9.10, VLC, streaming and AAC codec missing for ffmpeg
I don't believe the 'extra' versions of ffmpeg (libavcodec- in karmic have acc encoding enabled
In which case you'd need to build a new ffmpeg w/ shared libs for vlc to use.
Re: 9.10, VLC, streaming and AAC codec missing for ffmpeg
Quote:
Originally Posted by
mc4man
I don't believe the 'extra' versions of ffmpeg (libavcodec- in karmic have acc encoding enabled
In which case you'd need to build a new ffmpeg w/ shared libs for vlc to use.
Karmic. Oops. My mind went into Jaunty mode. I seem to do that too often. Anyway, I have yet to do any Karmic testing. Maybe I should get to work on that.
Re: 9.10, VLC, streaming and AAC codec missing for ffmpeg
I'm not really sure what the deal with faac is in karmic,
I have 2 installs, one I'm using where i've replaced the repo ffmpeg with my own packages.
On the testing one everything is straightup, looking at the .diff 1 of the lines for faac is still there
Quote:
+confflags += $(call cond_enable_nf,/usr/include/faac.h,libfaac)
but it's not enabled in the build
(what the difference is between decoding with faad and encoding with faac is beyond me
(overall karmic is excellent and what's not provided can be added one way or the other
from the repo one (greping aac, faac, faad
Quote:
built on Aug 26 2009 09:45:50, gcc: 4.4.1
D aac raw ADTS AAC
D A aac Advanced Audio Coding
D A libfaad libfaad AAC (Advanced Audio Codec)g
nothing for libfaac
Re: 9.10, VLC, streaming and AAC codec missing for ffmpeg
Hi mc4man,
Quote:
Originally Posted by
mc4man
I don't believe the 'extra' versions of ffmpeg (libavcodec- in karmic have aac encoding enabled
In which case you'd need to build a new ffmpeg w/ shared libs for vlc to use.
So no aac encoding from any version of the official FFmpeg variants under Karmic? Looks like FakeOutdoorsman's guides will be very popular under the new Karmic Koala :).
Andrew
Re: 9.10, VLC, streaming and AAC codec missing for ffmpeg
Double checking on the install with the repo "extra" version it doesn't appear so
Ffmpeg will gladly decode .m4a but won't encode to it.
That and seeing also it's still using the non-free amr when the opensource is enabled in the -r of ffmpeg it's using, wierd
( as far as the amr, - maybe it can't enable version 3
Re: 9.10, VLC, streaming and AAC codec missing for ffmpeg
Hi mc4man,
Quote:
Originally Posted by
mc4man
Double checking on the install with the repo "extra" version it doesn't appear so
Looks like the answer is in the changelog:
Code:
ffmpeg-debian (4:0.5+svn20090609-1ubuntu3) karmic; urgency=low
* do not forcefully enable objenjpeg, it is not avaiable in this build
anyway
* don't build against faac in any case, it is deemed non-free
-- Reinhard Tartler <sire[....]re.de> Sat, 25 Jul 2009 09:15:12 +0200
Unless I am misinterpreting this somehow?
Andrew
Re: 9.10, VLC, streaming and AAC codec missing for ffmpeg
mc4man,
With libavcodec-extra-52 (the new name for libavcodec-unstripped-52 I suppose) installed what do you get with:
Code:
ffmpeg -formats | grep aac
If Ubuntu is using a new enough FFmpeg then native AAC encoding is available if it shows:
Code:
DEA aac Advanced Audio Coding
That would be nice, although last I heard it is not as versatile as libfaac and doesn't match it's quality either, however that was months ago. I haven't personally made any quality comparisons yet.