Thursday, August 6, 2009

VLC on Solaris 10

Yes, it works! All the little things I had to do to get it compiled I've filed on VLC Trac (tickets 3027 through 3040). As of the time of this post, five issues have already been fixed in SVN. There might still be some other runtime issues that I haven't found, but for the most part it seems to be working.

I've uploaded SVR4 packages (installs in /usr/local) for VLC on both x86 and SPARC. Note that it does have dependencies! For any audio support, you will minimally need SDL. ncurses is needed for the ncurses interface, QT4 is needed for the standard GUI, libmad is needed for MPEG decoding (including MP3), ffmpeg is needed for a lot of video formats, etc. I am currently not supplying these dependencies, but if I get enough requests to, that can change. The package specifies the maximum set of packages that are dependencies (that is, if some are missing, VLC may still work but not all of the plugins will). For those not very familiar with the various community-based package sources for Solaris, SMC packages are at sunfreeware.com and CSW packages are from either opencsw.org or blastwave.org. STJ packages are ones that I compiled at TJHSST (VLC included), and are not presently accessible outside of TJ.

Enough talk already! Click here for the downloads. I would appreciate it if someone was willing to mirror these packages since this site has limited bandwidth. Feel free to let me know what you think of the packages! They should work on OpenSolaris as well.

UPDATE 8/11/2009 10:00 PM:
I've added a binary SVR4 package for QT4 (GCC) since it isn't as easily found and is also a very lengthy compile. I've added a README at the site as well for some additional information, including tips and pointers to get your dependencies. For OpenSolaris users, you should be able to get a working VLC with no source code compilation needed!

46 comments:

  1. Where do I find all the dependencies?

    ReplyDelete
  2. Most should be available at the websites listed above (namely sunfreeware.com, blastwave.org and opencsw.org). If not, you can compile them from source as well.

    ReplyDelete
  3. hi,
    your download link is broken. :(

    ReplyDelete
  4. Wow, talk about coincidence! The server just went down about an hour ago due to an issue and hopefully it will be back within a day or two. Sorry for the inconvenience; keep checking the link!

    ReplyDelete
  5. The server, and the link, are both back online! Download away :)

    ReplyDelete
  6. Hello,

    Thanks for your awesome work. I'm trying to use VLC on opensolaris to stream videos/music over the network.

    From what I can tell it requires:
    /usr/lib/stream_out/libstream_out_rtp_plugin.so - which seems to be missing.

    Also, it requires the live555 library.

    I'm wondering if you would be able to help me get a working copy of the rtp plugin as well as live555 lib for opensolaris.

    Thank you

    ReplyDelete
  7. Hi,

    Unfortunately I don't have time right now (the college semester is starting tomorrow) to recompile a new version with the RTP plugin, but I will put it on my list for the next time I build a package (probably for the next minor version). In the meantime, if you are up for the task, you can compile VLC yourself as well, just make sure that live555 is installed before you compile so that the plugin will be built. My understanding from what you've said is that if live555 is installed on the system at compile time, then VLC will build the RTP plugin.

    Hope this helps!

    ReplyDelete
  8. Thanks for the reply - I've been considering compiling VLC and I think I will give it a go.

    If you have any tips or hints on anything that needs to change from the standard build process I would greatly appreciate them!

    Good luck with your semester.

    Thank you,

    ReplyDelete
  9. You should be able to find everything you need from the list of VLC Trac tickets above, but if you run into something else, feel free to let me know and I can check my notes to see if there was something else that isn't up there.

    ReplyDelete
  10. I'm sorry if this is answered in VLC Trac (it's down ATM).
    Did you use SUNWgcc (3.4.3) or GNUgcc (4.3.2)

    Or does it matter?

    Thank you

    ReplyDelete
  11. I used 3.4.3 (if that's what shipped with Solaris 10). But if you have the newer version already, that should work too.

    ReplyDelete
  12. Hi WIlliam,

    Unfortunately trac has been down for the past month and I have not been able to reference your tickets.

    I have tried compiling using SUNWgcc but I get this error message:

    (05:11:29 PM) shewless: ld: fatal: file ./libvlccore.sym: unknown file type
    (05:11:29 PM) shewless: ld: fatal: file processing errors. No output written to .libs/libvlccore.so.2.1.0
    (05:11:29 PM) shewless: collect2: ld returned 1 exit status

    It appears to have something to do with the SUN ld instead of GNU ld.

    Can you offer any help or suggestions?

    Thank you

    ReplyDelete
  13. That's strange, I don't remember seeing that error. If you're compiling VLC 1.0.2, the only issues that should be remaining are:
    (ticket 3036) change vlc-config.in.in to run with /bin/bash (http://forum.videolan.org/viewtopic.php?f=13&t=50930)
    (ticket 3037) delete configure lines 32879-32880 to disable spatializer plugin (per http://forum.videolan.org/viewtopic.php?f=13&t=59864&p=200220 and since we have trouble compiling it)
    (ticket 3039) can't have mmx
    (ticket 3033) lazy use of NULL pointers...use workaround (see http://developers.sun.com/solaris/articles/portingUNIXapps.html)

    You'll also need to make sure you don't compile galaktos, which is deprecated anyways.

    I hope VLC Trac is back up soon...I didn't know it had been down for a month, I'd only noticed for about a week.

    Hope this helps!

    ReplyDelete
  14. thanks! i'll try those things.
    do you still have your configure line? I'm wondering if you used the default linker and all that stuff

    ReplyDelete
  15. I think I used the default linker. ./configure --enable-release --enable-shout --enable-faad --enable-twolame --enable-flac --enable-aa --enable-goom --with-mad=/opt/csw --disable-a52 --disable-fribidi --disable-remoteosd --disable-mmx --enable-ncurses LDFLAGS="-L/usr/local/lib -R/usr/local/lib -L/opt/csw/lib -R/opt/csw/lib" CPPFLAGS="-I/opt/csw/include -I/usr/X11/include -I/usr/local/include/ncurses -D_XPG4_2"

    ReplyDelete
  16. Thanks - I'm trying with your configure line (I wasn't doing and of the CPPFLAGS, LDFLAGS, etc)
    Where do I add "setenv LD_PRELOAD/usr/lib/0@0.so.1"?

    ReplyDelete
  17. Take a look at /usr/local/bin/vlc in my package; it is actually a shell script that calls the real binary but with the appropriate wrapping.

    ReplyDelete
  18. Hi i'm just changed from windows to opensolaris because its the only system that dosen't show any graphic errors on my laptop. i don't know anything about i jet. so here's my questian: who can i install your vlcplayer. do i have to do it with the terminal or are there any graphic ways to do it?
    thanks

    ReplyDelete
  19. Hi Jonas, thanks for your interest, unfortunately I don't have any graphical ways to install, you'll need to use the terminal for the time being.

    ReplyDelete
  20. Hi!
    I was trying to find indtuctions how to install your vlc-1.0.1-sol10-i386.pkg file. I just don't know how to do it. Maybe u can help me.
    Thanks a lot.

    ReplyDelete
  21. Jonas, you can run pkgadd -d vlc-1.0.1-sol10-i386.pkg, then follow the prompts.

    ReplyDelete
  22. Download link is broken :/

    ReplyDelete
  23. Sorry...went through a power outage yesterday and still having an issue with the zpool that all of mirror.tjhsst.edu resides on. Hope to have things back up within the next few days.

    ReplyDelete
  24. Hello! I have OpenSolaris 2009.06 and vlc 1.0.1 from your package. It's nice to see package ready-to-install, it works but there are some problems:

    1. The only interface module I could launch is ncurces (nvlc). When I try to run vlc, i have the following error messages in the terminal window:
    :~$ /usr/local/bin/vlc
    VLC media player 1.0.1 Goldeneye
    [80854ac] main interface error: no interface module matched "globalhotkeys,none"
    [80854ac] main interface error: no suitable interface module
    [806289c] main libvlc error: interface "globalhotkeys,none" initialization failed
    [806289c] main libvlc: Running vlc with the default interface. Use 'cvlc' to use vlc without interface.

    The same with qvlc:
    $ /usr/local/bin/qvlc
    VLC media player 1.0.1 Goldeneye
    [8085b34] main interface error: no interface module matched "globalhotkeys,none"
    [8085b34] main interface error: no suitable interface module
    [806289c] main libvlc error: interface "globalhotkeys,none" initialization failed
    [8085c2c] main interface error: no interface module matched "qt4"
    [8085c2c] main interface error: no suitable interface module
    [806289c] main libvlc error: interface "default" initialization failed
    *** LibVLC Exception not handled: Interface initialization failed
    Set a breakpoint in 'libvlc_exception_not_handled' to debug.

    though I have QTDIR, QMAKESPEC and $QTDIR/bin at my PATH (qt is installed also from William Yang package).

    2. When I try to play DVD, I have no sound, and now sound at all (using other programs) after this try.

    What do you think about these problems?

    Thank you in advance

    ReplyDelete
  25. Hi,
    For QT4 with VLC you don't need to set QTDIR and QMAKESPEC; try unsetting them.
    Do you have sound in any programs after you reboot?
    Try looking at the output of "ldd /usr/local/lib/vlc/gui/libqt4_plugin.so" to see if any libraries are reported missing.

    Merry Christmas!

    ReplyDelete
  26. Hi, I've found one missing dependence at the output of "ldd /usr/local/lib/vlc/gui/libqt4_plugin.so", libiconv.so.2 (I have this library in /opt/gnu/lib). I made a symbolic link in /usr/lib for libiconv.so.2.4.0 and now there are no missing libraries. But qt gui doesn't work:

    $/usr/local/bin/qvlc
    VLC media player 1.0.1 Goldeneye
    [8088e54] main interface error: no interface module matched "globalhotkeys,none"
    [8088e54] main interface error: no suitable interface module
    [806289c] main libvlc error: interface "globalhotkeys,none" initialization failed
    Segmentation Fault (core dumped)

    ~$ gdb /usr/local/bin/qvlc core
    GNU gdb 6.3.50_2004-11-23-cvs
    Copyright 2004 Free Software Foundation, Inc.
    GDB is free software, covered by the GNU General Public License, and you are
    welcome to change it and/or distribute copies of it under certain conditions.
    Type "show copying" to see the conditions.
    There is absolutely no warranty for GDB. Type "show warranty" for details.
    This GDB was configured as "i386-pc-solaris2.11"..."/usr/local/bin/qvlc": not in executable format: File format not recognized

    Core was generated by `/usr/local/bin/vlc.real -I qt4'.
    Program terminated with signal 11, Segmentation fault.
    #0 0xcf51eed4 in ?? ()
    (gdb)

    The backtrace (bt) shows the same "#0 0xcf51eed4 in ?? ()"

    And about sound playing DVD - I still have no sound. I have sound after reboot, sometimes I don't need reboot for using other programs (Totem or anything else), but playing DVD with vlc is silent :) If you can help, please, give an advice.

    Happy New Year!

    ReplyDelete
  27. Hmm...I don't think you need the libiconv library. Are you using LD_LIBRARY_PATH? If you are, unset that since it messes things up. If you want to overwrite the default library search paths, you should use the crle command instead.

    ReplyDelete
  28. Is there a twolame pkg somewhere? I looked on blastwave and sunfreeware and only see a lame pkg.

    ReplyDelete
  29. Blastwave's website seems to indicate that they have a twolame package, although OpenCSW doesn't seem to have one.

    ReplyDelete
  30. I'm a great fan of VLC and using it to listen to internet radio, thanks, you made my day!

    ReplyDelete
  31. Your wrap works gracefully for mkv formats! But I found one issue, It doesn't open the subtitles files.
    Let me tell you about my system configuration:
    Video Card is Nvidia 260 gtx - memory ddr 3
    Processor Core 2 duo 7400
    Opensolaris 2006.9 - With pack from bastwave and others...
    I install the qt from the link you give to us.
    I install the vlc from the link you give to us.

    I am mounting a disk with FUSE (NTFS where the mkv file is located and the str subtitle file is located).
    The movie works fine, but the subtitles doesn't show up.
    Then I copy the movie to a slice zfs file. The sound and the subtitles don't work any more. I will reboot and try again.
    But any way! You are great! Thanks for your work. Probably I will move to freeBSD, I think things work better there.

    ReplyDelete
  32. Hi Thiago,
    Do the subtitles work with VLC on another system? If it does, it sounds like VLC may not be finding the right font; try manually choosing a font under Preferences -> Subtitles & OSD.

    ReplyDelete
  33. Hi;
    I has installed vlc & mplayer, but I can't open them.

    ReplyDelete
  34. @bang1902: What do you mean you can't open them? Did you follow the install instructions in the README? Also, I don't provide mplayer, so I probably can't help you with that one.

    ReplyDelete
  35. Hi,
    Thanks, I have installed vlc player on solaris. And I need to play video from RTSP streaming engine. However, I met the following errors when I did it.
    --------------------------
    Your input can't be opened:
    VLC is unable to open the MRL 'rtsp://192.168.60.219/mpeg4unicast'. Check the log for details.
    --------------------------
    Actually, I could play it successfully on Windows.
    What do I need to install more? Please help me to install RTSP module.

    ReplyDelete
  36. Unfortunately I do not have the Live555 plugin, which is needed for RTSP. If/when I update the VLC package to a newer version, I will make sure to include the module for it (you will still need the live555 library on your system though). Someone else requested this awhile back, but I have not had a chance to update this package.

    ReplyDelete
  37. If you install the VLC package from William Yang, and also add all the codecs from here:
    http://ips.homeunix.com/?q=node/18#comment-133
    Then you have a fully functioning VLC player!

    Enjoy the hard work of these two guys! :o)

    ReplyDelete
  38. CORRECTION: no, you should use another repository which contains updated versions of all the codecs above:
    http://ips.homeunix.com:11003/

    Just do:

    "pkg set-authority -O http://ips.homeunix.com:11003 ips.homeunix.com" to add repository.

    "pkg refresh --full" to update catalog.

    And then startup the Package Installer and tick every box and install every codec. And install the VLC binary package that William Yang has put here, and you have a fully functioning VLC player.

    ReplyDelete
  39. Why does this VLC package lag when playing 1080p movies? MPlayer does not lag when playing 1080p movies. I am using Solaris 11 Express and Nvidia driver, with GTX 560 Ti.

    Could you maybe update your VLC package to a newer version?

    ReplyDelete
  40. Unfortunately I don't have time to spend on my Solaris projects anymore. The post will be updated and a comment will be posted if I do get a chance to update my VLC package. I don't know if lagging 1080p would be fixed by an updated VLC package, updated codecs, or both, though. You might try updating your codecs to see if that helps.

    ReplyDelete
  41. Thank you for VLC files. I finally got it to work properly with Solaris 11 and an AMD video card by using the SDL output instead of the default. Totem with Solaris 11 and a radeon driver runs the videos at twice normal speed. This is similar to a Linux bug between radeon cards with HDMI output and kernel 3.4 and above.
    Your VLC on Solaris is a great help for multimedia content.
    Ralph Ellis

    ReplyDelete
  42. I installed it inside non-global zone and it couldn't play anything..
    Do you know why?

    ReplyDelete
  43. Sorry, I don't know. I don't think there is anything about a non-global zone inherently that wouldn't work, but I don't think there's a way in general to get sound from a non-global zone.

    ReplyDelete
  44. Hello,

    I cannot call the file link to download.
    Could you help?

    Regards

    ReplyDelete
  45. Hello,

    I cannot call the file link to download.
    Could you help?

    Regards

    ReplyDelete