Instructions for compiling VLC with VC-1 (WMV9) support under Ubuntu Breezy
Install dependencies available from the Ubuntu repositories (main and universe)
$ sudo apt-get install libwxgtk2.6-dev libdvbpsi3-dev libmpeg2-4-dev libmad0-dev libasound2-dev libesd0-dev x11proto-video-dev libdvdnav-dev liba52-0.7.4-dev libflac-dev libfreetype6-dev libid3tag0-dev libogg-dev libpng12-dev libspeex-dev libtheora-dev libvorbis-dev libxml2-dev zlib1g-dev gcc g++ automake1.9 autoconf libtool subversion cvs libx11-dev
Install libdvdcss (DVD support)
$ mkdir ~/videolan ; cd ~/videolan
$ wget http://downloads.videolan.org/pub/videolan/vlc/0.8.2/contrib/libdvdcss-1.2.8.tar.bz2
$ tar -jxvf libdvdcss-1.2.8.tar.bz2 ; cd libdvdcss-1.2.8
$ ./configure --prefix=/usr ; make ; sudo make install
Compile faad2 (AAC support)
$ cd ~/videolan ; wget http://downloads.videolan.org/pub/videolan/vlc/0.8.2/contrib/faad2-20040923.tar.bz2
$ tar -jxvf faad2-20040923.tar.bz2 ; cd faad2-20040923
$ ./configure --prefix=/usr ; cd libfaad ; make
Compile ffmpeg (support for H264 and many other codecs)
$ cd ~/videolan ; cvs -z9 -d:pserver:anonymous@mplayerhq.hu:/cvsroot/ffmpeg co ffmpeg
$ cd ffmpeg ; ./configure --enable-pp --enable-gpl ; make
Compile libvc1 (WMV9 support)
$ cd ~/videolan ; wget http://nanocrew.net/sw/libvc1-1.0.tar.gz ; tar -zxvf libvc1-1.0.tar.gz
$ wget http://USERNAME:PWD@www.smpte-vc1.org/TrialPublication/Decoder/VC1_reference_decoder_release6.zip
$ unzip VC1_reference_decoder_release6.zip
$ cp VC1_reference_decoder_release6/decoder/*.[ch] libvc1-1.0/src/.
$ cp VC1_reference_decoder_release6/shared/*.[ch] libvc1-1.0/src/.
$ cd libvc1-1.0 ; ./bootstrap ; ./configure --prefix=/usr ; make
Install VLC
$ cd ~/videolan ; svn co svn://svn.videolan.org/vlc/trunk vlc-trunk
$ cd vlc-trunk ; wget -O – http://nanocrew.net/sw/vlc-libvc1.diff | patch -p0
$ ./bootstrap ; ./configure --with-ffmpeg-tree=../ffmpeg --enable-faad --with-faad-tree=../faad2-20040923 --enable-esd --enable-flac --enable-theora --enable-libvc1 --with-libvc1-tree=../libvc1-1.0 --disable-hal
$ make ; sudo make install
Ugh. And people wonder why Linux just never hits the mainstream desktop. :-p
I really like VLC, but I use OS X. Will the sources for WMV9 be platform-independent, or is this something that is specific to x86-linux (or something else that prohibits VLC on OS X from using it) ?
Thanks so much for making it available to newbies like me (a Happy Ubuntu and Linux user since 4 months).
Pierre
Anson – libvc1 builds here on my Macintosh (powerpc-apple-darwin-8.20), so I assume the rest builds, and works… however, I’ve not tried yet
nice stuff! looking forward for the next VLC version with this feature built-in 🙂
…one correction
apt-get install libwxgtk2.6-dev
does not work on my Ubuntu package 1.0.6
i downloaded package wxGTK-2.6.1 from http://www.wxwidgets.org/
and compiled it. the following is from the readme and worked for me
mkdir build_gtk
cd build_gtk
../configure –with-gtk=2
make
su
make install
ldconfig
can sb compile VLC with WMV9 codec for windows? or is it not possible?
I managed to build VLC with libvc1 support under OS X. All the files I’ve thrown at it don’t seem to decode past the first couple frames though. If I seek through the file, I get a couple frames of animation and then it freezes again. The error dialog fills up with a lot of
“libvc1: failed to decode frame” errors and an occasional “main: decoder is leaking pictures, resetting the heap” error. It seems that the video only updates every time one of the “resetting the heap” errors comes up. My first assumption is that something isn’t getting byteswapped and is getting fed into the codec wrong. Where should I look first?
perfect.
finally i will be able to watch those wmv9 avi files on mac osx.
one little question only:
i wasn’t able to compile vlc on osx.
is it somehow possible to only compile libvc1 and put it into a vlc-nightly-build?
great work btw 🙂
And after some “fun” with getting automake/autoconfig/libtool to talk to each other on my OS-of-choice, its also working on BeOS 5.04/x86. Now, to rebuild VLC, with my currently utterly shagged build enviroment…
will someone make a ubuntu breezy package? This would be very helpful for many users
Ugh. And people wonder why Linux just never hits the mainstream desktop. :-p
Well, did anyone want that it does, I mean like hitting the mainstream desktop? I think most of the Linux users reject the idea of Linux for the vast masses of people, since it would just fill the forums with questions like how could I install this or compile that. 😉
No, I think that Linux is best for developers or power users than DAUs, though I am sure that compiling this VLC Version in Windows is just as hard as compiling it in Linux – Of course you could use a Linux desktop like a Windows desktop(RPMs etc.), but is there any advantage but the price for the average user?
Is it possible at this point to play wmv9 *without* needing proprietary software such as the reference decoder?
since the standard was published recently, i’m afraid that no open source lib exists. (else we would already have included the change in VLC)
FYI, the VLC configure script doesn’t check for libpostproc headers, so compilation fails later on.
One more thing: ffmpeg.c includes libpostproc/postprocess.h but libpostproc-dev from the Marillat (nerim.net) APT repository puts the headers in /usr/include/postproc, so Debian users should:
cd /usr/include
sudo ln -s postproc libpostproc
Using the libavcodec-dev package under Debian also makes the build process complain about missing libavcodec_pic, libavformat_pic, and libavutil_pic. I guess Debian/Marillat users still need the ffmpeg tree.
I followed every step but VLC is not working well here, Breezy too. If I open a file from the GUI it fails because some strage characters appear in the beginning of the path (they look fine in GUI), when opening from CLI it works. Sorry for requesting support here but I can’t find an answer elsewhere. Thanks.
the ffmpeg team are working on ‘ffwmv3’ open source codec created from reading the wmv9/vc1 spec…
its slow to code of course, the reference decoder will speed things up a bit.
i dont have a bootstrap or configure file in my reference decoder zip file. does anyone have the zip with these?
I’m having the same problem as Allan in all the OSes I’ve tried (OS X, Gentoo on PPC and x86)–it gets through the first frame, then I get libvc1 decoder error: failed to decode frame. Sometimes I can get it to render another frame if I pause and play again. It seems to be related to resolution–the 640×480 files I’ve tried don’t work, but 320×240 is great. For a test file, the large wmv of systm #2 caused problems for me.
To get the above to work (Ubuntu Breezy, up to date as of 2005/09/15) I had to configure VLC with “–disable-nls” (for some reason even with gettext installed it wasn’t working otherwise), also install xvlibs using apt-get. Apart from that, woohoo!
How about a win32 build? 🙂
I had problems with decoding frame because of low bandwidth.
I’ve modified vlc/modules/access/mms/mmstu.c, MMSOpen, adding before loop ‘ for( i = 1; i
btr_diff_best_audio = 32767;
btr_diff_best_video = 32767;
btr_diff = 0;
i_prev_audio = -1;
i_prev_video = -1;
/* select stream with the best match to preferred bitrates */
#define _ABS(a) (a)>0?(a):(-(a))
for( i = 1; i asfh.stream[i].i_cat == ASF_STREAM_AUDIO )
{
btr_diff = _ABS ((p_sys->asfh.stream[i].i_bitrate / 1024) – p_access->btr_pref.btr_pref_audio);
if (btr_diff asfh.stream[i].i_selected = 1;
if (i_prev_audio!=-1)
p_sys->asfh.stream[i_prev_audio].i_selected = 0;
i_prev_audio = i;
}
else
p_sys->asfh.stream[i].i_selected = 0;
}
else if( p_sys->asfh.stream[i].i_cat == ASF_STREAM_VIDEO )
{
btr_diff = _ABS ((p_sys->asfh.stream[i].i_bitrate / 1024) – p_access->btr_pref.btr_pref_video);
if (btr_diff asfh.stream[i].i_selected = 1;
if (i_prev_video!=-1)
p_sys->asfh.stream[i_prev_video].i_selected = 0;
i_prev_video = i;
}
else
p_sys->asfh.stream[i].i_selected = 0;
}
}
btr_pref is structure added to access_t, containis int btr_pref_video and int btr_pref_audio.
Now I have problem with:
[00000460] access_mms access: connection successful
[00000460] access_mms access error: reinitialization needed –> unsupported
My test mms – mms://stream.onet.pl/media.wsx?/info/200509/8e252eb4aa.wmv&MSWMExt=.asf
has two streams, the first one is logo of TV, second is actual content
Legend mate! Thanks for taking the time to help out those who are new to Linux! Much appreciated
The VC1 reference decoder is gone from the site…does this mean that something good is happening soon, or do they just not want us to have it?
Your computer doesn’t seem to have much problem with Linux.
😉
The link for VC1_reference_decoder_release6.zip is a 404
Can someone upload the file somewhere so that i can get it.
If you dont have webspace use http://www.megaupload.com thanks
The VC1 decoder is still not on the site. Does anyone know where else it is available?
Cheers!
Nobody kept a package of the VC1 decoder?
Come on! 🙂
http://people.uleth.ca/~dave.brady/vlc-with-vc1.deb
a package for ubuntu breezy i386 with vc1 enables
yeah the vc1 decoder is not on the site anymore. does anybody know why?
thank you muaddib7 for posting a link to a deb package for ubuntu breezy i386.
I own a powerpc with ubuntu breezy though… has anyone still got it?
thank you muaddib7 for the ubuntu package, but i also need the v1 decoder…
Does anyone have the source code of vc-1? I’m not using Ubuntu (I’m using Fedora Core 3), so I am looking for a different package of VC-1.
I get the following error when trying to do the final make; sudo make install
/usr/bin/ld: cannot find -lXext
collect2: ld returned 1 exit status
Also, the .deb pkg for Ubuntu doesn’t put the vc1 stuff where we are compiling, so the
./bootstrap ; ./configure –with-ffmpeg-tree=../ffmpeg –enable-faad –with-faad-tree=../faad2-20040923 –enable-esd –enable-flac –enable-theora –enable-libvc1 –with-libvc1-tree=../libvc1-1.0 –disable-hal
line doesn;t work either. I tried installing through Synaptic, but VLC won’t work 😐
muaddib7: could you also post a deb-src of this package? I’d like to recompile it myself.
Hi,
I need the source of the VC decoder (VC1_reference_decoder_release6.zip). On the above mentioned
site I can not found it anymore.
Where can I get this?
Could anyone help me on this?
Thanks.
Thank you muaddib7 but I also need vc1 decoder (vc1dec.c ….) which is in the VC1_reference_decoder_release6.zip file. After that I should be able to decode WMV3 files…
Could you send it please?
Thank you !
Hmm, some one got VC1_reference_decoder_release6.zip ? its annoying, I can`t find it anywhere..:S
Same here. Would be great if someone uploaded it somewhere.
For anyone else finding this a dead end here’s why:
To get the VC1 reference decoder, you have to be a member of the STMPE group. See where it says “USERNAME:PWD” up there? You have to actually have a username and password! Just click the link, go through the tedious process of joining SMTPE, paying the fees, joining the AHG, blah blah blah, and repeatedly ask yourself why you’re bothering.
Oh, BTW: you have to agree not to share test materials (i.e. “vc1_reference_decoder_release6.zip”). It is not open source.
Ubuntu Breezy -lXext issue
>> /usr/bin/ld: cannot find -lXext
>> collect2: ld returned 1 exit status
apt-get install libxext-dev
retry make and it should work.
-Enjoy
for dudes intrested to VC1_reference_decoder_release6, may be useful reading this page : http://multimedia.cx/eggs/?p=129
Wow… never expected to see the deb I compiled posted here. Just want to give a warning on that though. It isn’t 100% working (playlist is broken), and it’s a very rough hack job. But if the deb has been useful to you, that’s what matters. 🙂
Anyways, a link to the VC1 Reference Decoder, due to popular request. Enjoy. I’ll see if I can compile a newer version of VLC that hopefully lacks the bugs that are present in the deb I made previously that muaddib7 posted.
Sorry folks. Just realized why nobody else ever posted a link to the VC1 Reference Decoder. It IS on the site, and you can get it for free. You just need to jump through some hoops first. As I just realized that it was illegal to redistribute it, even though it’s offered for free… I have removed it from my web space.
Three words can best describe what I get back from the VC1 reference decoder URL:
Four. Oh. Four.
The file is gone.
There is an easier way to get all build dependencies for a package (the dev packages listed above): use apt-get build-dep.
It is a 404, but after searching in the comments above i found this site:
http://www.multimedia.cx/VC1_reference_decoder_release6.zip
Thanks
Multimedia Mike
The link for VC1_reference_decoder_release6.zip is a 404
Can someone upload the file somewhere so that i can get it.
link
http://www.multimedia.cx/VC1_reference_decoder_release6.zip
isn not opening up
One question is that any vc1 bitstream existed?
or where can i find the test or conformance ones….
It works perfect, except for the speed:(
It is very sloooow on my 3000+64 with breezy amd64. I tried it with one videofile and the picture runs slower than the sound. I followed every single step, except i used checkinstall rather then make install. Is it proposed to be unusable? Or does it work only with small files?
Does anyone know how to do this for OS X, but with mplayer/mencoder instead, probably using the hooking with ffmpeg on this sitehttp://multimedia.cx/eggs/?p=129 (the hooking i sadly cannot get to work).
I am currently trying to compile VLC with vc1 support, so I’ll get this somehow, but being able to use this with mencoder would be useful, converting the WMV’s to Xvid and whatnot.
To add on this I am currently getting this problem compiling VLC:
configure.ac:1: error: possibly undefined macro: dnl
If this token and others are legitimate, please use m4_pattern_allow.
See the Autoconf documentation.
configure.ac:274: error: possibly undefined macro: AC_DEFINE
configure.ac:278: error: possibly undefined macro: AC_CHECK_LIB
configure.ac:292: error: possibly undefined macro: AC_MSG_ERROR
configure.ac:386: error: possibly undefined macro: AC_CHECK_HEADERS
configure.ac:774: error: possibly undefined macro: AC_MSG_WARN
configure: error: cannot find install-sh or install.sh in autotools ./autotools
make: *** No targets specified and no makefile found. Stop.
il faut ajouter x11proto-xext-dev a la liste des apt-get
What about encoding to wmv3 under linux (for example by VLC) ??
Maybe somebody can do this?
what about transcoding in WMV9, maybe somebody can do this??
I did all this – managed to find the required bits – get to the ./configure and that fails for breezy ubuntu – so i suspect synaptics – go there and lo and behold – VLC is already there to select for a reinstall! Which I have done and it works …. so if you are on breezy Badger 5.10 you may wish to bear this in mind….
I built this free thing (VC1) in my free time for the sake of free blah blah blah. So now just pay for it.
Thank you Mr. Gates
MainframeGuy
The version found in the Breezy via synaptic,has it got support for wmv9?That the point with building this package.
I have amd64 version of ubuntu breezy and I installed packages with apt everything works fine expect mozilla-vlc-plugin doesn’t work. When I start to play some video from internet “no picture” reads and nothing is shown. If I download that video clip it’s playing fine. Like http://www.apple.com/trailers/ are not playing with mozilla-plugin…
Bogger…
Followed this great howto, but at the end… I am not able to play wmv9 files. The file opens up, but I do not get any picture… The sound works perfect, but the picture is just a big black box… Any ideas?
Anybody got a copy of the VC1 reference decoder code? The link does not help. Any other link to it?
http://www.multimedia.cx/VC1_reference_decoder_release6.zip
is now openning and file is available
I could compile it with osx – but wmv9 support still did not work.
could somebody release a binary of vlc with vc1 on osx-intel?
thanks a lot.
eric
Kubuntu Dapper Drake Test Release 7 x86_64
Everything works great! Playback is fine. The only thing outside of the guide that I had to do was initiate the following commands with sudo
$ cp VC1_reference_decoder_release6/decoder/*.[ch] libvc1-1.0/src/.
$ cp VC1_reference_decoder_release6/shared/*.[ch] libvc1-1.0/src/.
Once I did that, everything went smooth. When I intiate vlc from the command line, it does not playback WMV9 but when I initiate wxvlc everything works like a champ. I don’t know the difference but that’s ok for now.
/Sleep
XVideo
Successfully built on ubuntu dapper. wmv works. woo hoo! However all playback was pixelated. Eventually figured out that the XVideo output module works better with my video card – laptop built-in Intel 82852/855GM. Fixed thus:
install the libxv-dev libxvmc-dev packages
reconfigure vlc with –enable-xvideo
rebuild, reinstall
Not sure if all of those steps were required, but it worked. Now vlc defaults to XVideo output, no more pixelation, wmv still works. Sorry I didn’t take notes – besides the above I had to tweak a few things here and there.
One other note: this build installed to /usr/local/bin/vlc so it didn’t overwrite the previous version (0.8.4) installed from the repository to /usr/bin/vlc . Both versions seem to run fine, but this could easily be confusing – check help > about – your freshly-built version will say “compiled by [your name]@[your hostname]”