Friday, October 18, 2013

Tutorial: VLC with hardware acceleration on Raspberry Pi

Hello everyone!

It's no secret that the Raspberry Pi has been a huge success ever since it was launched!
It's quite handy for prototyping, teaching programming, as a mini PC and it's also very widely used as media center box for the home TV.

Talking about media I you'll agree with me that many immediately think about VLC.
VLC has been very popular as a media player supporting almost every format as also as library (libvlc) used to develop applications with audio and video capabilities!

Well mixing those two, Raspberry Pi and VLC, might seem the perfect combination to most of you right? This would result in a small little box able to play almost every format and as the raspberry has HD capabilities it seems just perfect as media box for your home TV set!
Well that's what I first thought of too but as it turned out, VLC didn't support hardware acceleration on the Raspberry Pi since the beginning! So the perfect combination wasn't possible!

Luckily enough, after a long time, patches and custom modules were released to the VLC source code just for the Raspberry.
Now the problem was to find how to use that. It wasn't much talked about as most users ended up adopting Raspbmc, a media player with hardware accelerated video decoding on the raspberry.

Still for some people, like me, it was important to get VLC running with hardware acceleration on th Raspberry! For me it was mainly for development purposes (libvlc) !

I searched for a long time on the internet but didn't find any tutorial, binary or whatever version of VLC with hardware acceleration enabled so I decided to share this tutorial for all those who don't really understand how to compile VLC from source with hardware acceleration activated.

So here we go:

NOTE: I have compiled it under Raspbian distribution!

Step 0: environment preparation - build tools installation:

    # apt-get install git libtool build-essential pkg-config autoconf

Step 1: get VLC sources from git:

    # git clone git://git.videolan.org/vlc.git
    # cd vlc
    # ./bootstrap

Step 2: configure enabling the important modules for hardware acceleration on raspberry:

    # install all these libraries needed by VLC and it's modules:

               liba52-0.7.4-dev libdirac-dev libdvdread-dev libkate-dev 
               libass-dev libbluray-dev libcddb2-dev libdca-dev
               libfaad-dev libflac-dev libmad0-dev libmodplug-dev
               libmpcdec-dev libmpeg2-4-dev libogg-dev libopencv-dev
               libpostproc-dev libshout3-dev libspeex-dev libspeexdsp-dev
               libssh2-1-dev liblua5.1-0-dev libopus-dev libschroedinger-dev 
               libsmbclient-dev libtwolame-dev libx264-dev libxcb-composite0-dev 
               libxcb-randr0-dev libxcb-xv0-dev libzvbi-dev
 
      (thanks to user gkreidl on the http://www.raspberrypi.org forums
       for listing all those :))
 
    # ./configure --enable-rpi-omxil --enable-dvbpsi
                  --enable-x264 <other_modules_you_might_need>
     (Info: the modules listed above used to configure
            the installation are the ones absolutely
            needed to enable hardware acceleration.
            You might need to enable or disable some
            others depending on your needs!) 
     (Info: I am not sure anymore If the --enable-dvbpsi
            --enable-x264 are required but it surely
            doesn't hurt :) The most important here
            is --enable-rpi-omxil)
     Update: depending on the modules you enable you most
             likely need to install third party libraries.
             configure will fail and tell you what library
             is missing. You'll have to install it and
             run configure all over again! Bring patience
             as you'll most likely have to repeat this a
             few times
 
Step 3: compile:

    # make clean
    # make
 
Step 4: how to run it with hardware acceleration enabled from command line:

    # ./vlc --vout omxil_vout <other_params_you_might_need>

     (Info: you absolutely have to use the
            param --vout omxil_vout for vlc
            to use the custom video output
            for raspberry!)

Step 6 (optional): !!! AT YOUR OWN RISK !!!
                             If you wish to playback HD content it is strongly recommended
                             to overclock your raspberry. You can download an example of a
                             config.txt file here: http://ul.to/48oyrf1z
                            You can either add the options in the overclock section in this config.txt
                            file to yours or simply replace your /boot/config.txt file with this one.
                            My tests showed the raspberry to run around +/-50°C when playing
                            back HD content.

Well guys that's it. This is the way I successfully compiled VLC with hardware acceleration enabled on Raspberry Pi! Libvlc is also working like a charm :)

Hope this helps a lot of people out as I remember seeing lots of folks asking for this.

Nice coding ;)


UPDATE:
I forgot to mention that you might have to slightly overclock your Raspberry if you want to run fullscreen 1080p completely lag-free.
I'll post my Raspberry configuration file here on monday with the adequate overclocking configurations.

UPDATE 2:
I updated the tutorial with some missing important information! I also got asked if I could upload an already compiled version so I'll try to do that tomorrow!

COMPILED VERSION FOR DOWNLOAD HERE:
I uploaded my compiled version! You can download it here if you do not wish to compile for your specific needs:
    http://intensecode.blogspot.com/2013/10/download-compiled-vlc-with-hardware.html


94 comments:

  1. great work Helder. Just want to confirm, does it support 1080p H.264 playback?

    ReplyDelete
    Replies
    1. Hello, thank you :) it does playback 1080p H.264 although it consumes a bit more CPU than the Omxplayer. I overclocked the Raspberry for it to run lag free HD. I can post my config file for the overclocking here on monday if you wish :)

      Delete
  2. Wow if this works, then it is the answer to all my Raspi prayers as the only thing I haated about Raspi was that incredibly basic OMXPlayer

    ReplyDelete
    Replies
    1. Trust me it worked for me :) If you have any issue you can always ask me for help :) Just want to mention that in order to watch 1080p you may have to slightly overclock your Raspberry. I'll add that information to the main post on monday as I don't have access to my Pi right now.

      Delete
    2. I'll try to post the compiled version tomorrow

      Delete
    3. Please :)

      http://intensecode.blogspot.com/2013/10/download-compiled-vlc-with-hardware.html

      Delete
  3. Oh My god this is much harder than I thought it would be. I have been at it for about 16 hours now and still not finished. It's like every library has another library which needs another library. I wish there was a "./configure --just-install-the-fucking-thing" flag.

    ReplyDelete
    Replies
    1. Yes you got to bring patience :) Welcome to linux compilation hell :)

      Delete
    2. Please :)

      http://intensecode.blogspot.com/2013/10/download-compiled-vlc-with-hardware.html

      Delete
    3. Nothing compared to Windows compilation hell, there is a wikipedia page dedicated to dll hell. :)

      Thanks for the tutorial very helpful!

      Delete
  4. Did you have any trouble installing package x264? I basically lost my mind trying to get the thing installed properly on Raspi as all the instructions are for Ubuntu

    ReplyDelete
  5. try this:
    apt-get install libx264-dev

    ReplyDelete
  6. After a long compilation process (during make), I got an error out of nowhere. Sadly I am on putty so I can't cut and paste either.

    demux/oggseek.c: 1119:1: error: unrecognizable insn:
    (insn 266 265 267 6 (set ( subreg:SI (reg:DI 213 [p_stream_4(D)->i_keyframe_offset])0)...

    I'm starting to think it would be easier if you made a disk image via 'dd', uploaded that here, and just have people install all the other programs they had previously installed =)

    ReplyDelete
    Replies
    1. Well as I mentioned in Update 2 I'll upload a compiled version! I wanted to do it yesterday but didn't have time. I'll try to do it today

      Delete
    2. Please :)

      http://intensecode.blogspot.com/2013/10/download-compiled-vlc-with-hardware.html

      Delete
  7. Finally got it to work, a few comments in case Heldar wants to update this tutorial, or for people struggling to install this:

    1) you absolutely need gcc-4.7 as running it with gcc-4.6 (or I presume any older gcc) causes the 'unrecognizable insn' error I mentioned above. This can easily be done with `sudo apt-get install gcc-4.7`
    2) once you get through the installation, issuing the command `vlc` will not work as it is installed locally to the folder you were working on, so instead try `.vlc`

    Also, Heldar, any advice as to how and where to move these files to? Right now everything is stored in my /home/user/downloads folder as I am used to the usual configure-make-make install routine which stores the files in the correct place. Should I just drag the entire folder over to /usr/bin =P

    ReplyDelete
    Replies
    1. Thanks I'll add your suggestions to the tutorial. Didn't notice your comment before :)

      Delete
  8. I have all the dependencies that gkreidl pointed out, and I am getting the following error when I run `vlc/cvlc --vout omxil_vout` (note, I get the exact same error for both the version I built and the precompiled version I downloaded) and nothing opens, but I can still hear audio:

    main interface error: no suitable interface module
    mainlibvlc error: interface "globalhotkeys,none" initialization failed
    main video output error: video output creation failed
    main decoder error: failed to create video output

    If I run it without the ` --vout omxil_vout` flag, the movie opens and it writes the name of the movie in the bottom of the screen, and the screen dimensions are correct, and I still hear audio, but there is no video, just a black screen.

    Any idea what could be going wrong as I dont know where to begin as is. Thanks

    ReplyDelete
    Replies
    1. main interface error: no suitable interface module
      mainlibvlc error: interface "globalhotkeys,none" initialization failed

      You can ignore those.

      main video output error: video output creation failed
      main decoder error: failed to create video output

      It seems not to be finding the video output module.
      The --vout omxil_vout is mandatory! It's this parameter that tells VLC to use the custom raspberry OMXIL video output instead of the non- accelerated one!

      I have tested it again here and it works! Can you please post the complete command you're using here and the type of file.

      Delete
    2. The exact commands issued are as such (on both my version and yours):

      vlc --vout omxil_vout movie.mkv

      and `file movie.mkv` returns the following

      movie.mkv: Matroska data

      I tried it with another file of type:

      movie.mp4: ISO Media, MPEG v4 system, version 2

      And I still got the same problem

      Also, I get the two following statements, though they are not errors

      [matroska,webm @ 0xb70ba0] Estimating duration from bitrate, this may be inaccurate
      [matroska,webm @ 0xb5f09fa0] Estimating duration from bitrate, this may be inaccurate

      If I run

      vlc -v --vout omxil_vout movie.mkv

      Here is the full verbose output (note I am doing this via putty, so ignore the X11 errors for the moment, I still can not run it locally either):

      VLC media player 2.2.0-git Weatherwax (revision 2.1.0-git-1098-g5e5a9ad)
      [0x13339e8] main libvlc warning: cannot read /home/raspi/downloads/vlc/src/.libs/vlc/plugins/plugins.dat (No such file or directory)
      [0x13b7878] main interface error: no suitable interface module
      [0x13339e8] main libvlc error: interface "globalhotkeys,none" initialization failed
      [0x13b78e0] dbus interface error: Failed to connect to the D-Bus session daemon: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11
      [0x13b78e0] main interface error: no suitable interface module
      [0x13339e8] main libvlc error: interface "dbus,none" initialization failed
      [0x13339e8] main libvlc: Running vlc with the default interface. Use 'cvlc' to use vlc without interface.
      [0x13b78e0] [cli] lua interface: Listening on host "*console".
      VLC media player 2.2.0-git Weatherwax
      Command Line Interface initialized. Type `help' for help.
      > [matroska,webm @ 0xb612caa0] Estimating duration from bitrate, this may be inaccurate
      [matroska,webm @ 0xb6119e40] Estimating duration from bitrate, this may be inaccurate
      [0x13b7098] main video output error: video output creation failed
      [0x13fbc28] main decoder error: failed to create video output
      [0x13fbc28] main decoder warning: can't get output picture
      [0x13fbc28] avcodec decoder warning: disabling direct rendering
      [0x13b2d28] main audio output warning: playback too late (64295): up-sampling
      [0x13b2d28] main audio output warning: timing screwed (drift: 128763 us): stopping resampling
      [0x13b2d28] main audio output warning: playback too late (143249): up-sampling
      [0x13b2d28] main audio output warning: playback way too late (185936): flushing buffers

      Delete
    3. main libvlc warning: cannot read /home/raspi/downloads/vlc/src/.libs/vlc/plugins/plugins.dat (No such file or directory)

      That's your problem right there! Somehow it can't find the modules folder thus it can't find the video output module either!

      Did you extract the entire folder in the rar archive I uploaded?

      Delete
    4. Yes I extracted the whole rar archive via `rar x archive.rar`

      Delete
  9. So that file/folder path (src/.libs/vlc/plugins/plugins.dat) does not exist in either my build or yours, both of them stop at src/.libs/

    ReplyDelete
    Replies
    1. Hi, you do know that a file/folder name that starts with a '.' is a hidden file/folder? So you maybe are browsing the folder with a file explorer and do not see the .libs folder? It is hidden but you still can browse to it by entering the path manually

      Delete
  10. I think I figured it out. During configure I have to tell vlc where to look for things like x264 (you mentioned this with ""). Problem is, I don't know where my x264 directory is. How can I find it?

    ReplyDelete
    Replies
    1. I went through the compilation process using the Helder's zip file. It is tedious but not difficult. The easiest way is to open up 2 shell windows. Running configure in one window. When configure comes back with errors, scroll through the list of error, then type the command "apt-cache search whatever_package_was_missing" then press enter. A list of packages will be displayed. Type "sudo apt-get install whatever_package_was_missing" for all the missing packages. You should be able to get configure to run successful after a few tries. Compilation process takes a few hours though...

      Delete
    2. Hi Dahn Le, there is a list of libraries in the tutorial above which you can install before running configure so you don't have to do trial and error every time :)

      Delete
  11. Hello
    Thanks for that, it perfectly works for me.
    But I don't know how to enable gui interface. I only have the video output without interface.
    Do you know how to do this ?
    Thanks

    ReplyDelete
    Replies
    1. Hi to enable GUI you have to compile it with the GUI module you wish enabled. It is one of the mentionned in the configure step :)

      Delete
    2. Hello
      Yes, sorry for that question, I didn't notice that it was necessary to enable qt module.

      But, now, I would like to know if it's possible to include the video "inside" the GUI because, for now, I only have the video playing in fullscreen, without a frame and hidding the contol GUI. I would like to play in a tiny window for example… is there another module to add in the configure step ?

      Thanks for you answers

      Delete
  12. Hello I got this error although I installed Alsa. Any idea ?
    configure: error: No package 'alsa' found. alsa-lib 1.0.24 or later required.

    ReplyDelete
    Replies
    1. You probably are missing the alsa library. You have to install it first

      Delete
    2. I have the same problem, and when i try to install alsa-lib or alsa-utils it tells me that I have the latest version already installed.
      Any Ideas?

      Delete
    3. you need libasound2-dev for alsa. I also needed lua5.2.

      And an advice for faster compiling on Raspi2 use make -j 4 for multithreaded compile.

      Delete
  13. Could you show us your configure options? I have been at this for 20 days now, and even if I manually copy all the files around it still complains that I have no codecs. I am guessing vlc doesn't know where to look for them. Also I should point out that even your compiled binary doesn't know where to look for these codecs

    ReplyDelete
  14. Hello,
    Like all rapsberry are identical, it would be possible to distribute a binary package?


    ReplyDelete
    Replies
    1. @DV8000 he did upload a compiled version, I'm pretty sure that is what you are looking for. However, it does not work on my raspi, complaining that I have no plugins installed (they are all installed)

      Delete
    2. Yes I did indeed upload a compiled binary:
      http://intensecode.blogspot.com/2013/10/download-compiled-vlc-with-hardware.html

      It does work except for pukster it seems.

      @Pukster:
      Where did you copy the vlc folder to? (exact path)
      How are you executing it? (exact command with params)

      Delete
  15. Hello, during configuration i`m have this error: alsa package not found, but i alrady have all alsa packages (base, tools, utils). Reinstalling packages don`t help. I`m try to compiling it on raspbian.
    Please can you help me with this question.

    ReplyDelete
    Replies
    1. try this and tell me if it helps:

      apt-get install libasound2-dev

      Delete
  16. Hi. Could you temme how you fixed this exception while using vlcj? I tried all the four options listed but this never went.

    Exception in thread "AWT-EventQueue-0" java.lang.RuntimeException: Failed to load the native library.
    The error was "JNA native support (com/sun/jna/linux-arm/libjnidispatch.so) not found in resource path (vlcjExample.jar)".
    The required native libraries are named "libvlc.so" and "libvlccore.so".
    In the text below represents the name of the directory containing "libvlc.so" and "libvlccore.so"...
    There are a number of different ways to specify where to find the native libraries:
    1. Include NativeLibrary.addSearchPath("vlc", ""); at the start of your application code.
    2. Include System.setProperty("jna.library.path", ""); at the start of your application code.
    3. Specify -Djna.library.path= on the command-line when starting your application.
    4. Add to the system search path (and reboot).

    ReplyDelete
    Replies
    1. What modules are you compiling with?

      Delete
    2. Just the vlcj-2.4.1.jar.
      P.S. The program works fine in my linux machine

      Delete
    3. I just tried building it along with jna and the platform jars. Still no sucess

      Delete
  17. I think a better way to do that on raspbian is to do:

    apt-get source vlc
    apt-get build-dep vlc
    cd vlc-
    DEB_BUILD_OPTIONS="--enable-rpi-omxil" fakeroot debian/rules binary
    cd ..
    dpkg -i vlc-.deb

    ReplyDelete
    Replies
    1. Raspbian repository version does not support --enable-rpi-omxil after grepping for something else i stumbled upon this:

      ./config.log:configure:50325: WARNING: unrecognized options: --enable-rpi-omxil

      Delete
  18. Hey,

    it's now possible to stream via raspberrypi to PC or Mobile Devices?

    ReplyDelete
    Replies
    1. You should be able to stream with raspberry but I think you always were. This tutorial solves the video decoding and output problem only, the rest was already working before

      Delete
  19. HI, I have a big question, actually I'am looking for a solution like http://www.piwall.co.uk/

    They uses OMXPlayer for magnify the video on each RPI and the position to "tile" and create the wall. It work's well when you setup correctly like in they config page.

    The thing is, OMXPlayer has some troubles to play RTP or RTSP stream. With that you only can run some movie you have in the SD card or USB stick.

    I know VLC can handle without hassle RTP and RTSP stream and has two interestings functions.

    The first one is the filter "ZOOM" like in the piwall project "Magnify"
    The second one "WALL" in Windows it create some separate windows and you can put them into each screen but you need a lot of graphic card for 9 screens.

    I would like to know if the filter magnify run well in your binaries and if it's possible to do a config file like for OMXPlayer?

    Thank's in advance for your answer

    ReplyDelete
    Replies
    1. Hi I have never used that filter and cannot give you a decent answer. Why not try it out and share your results with us Sorry for the delayed answer. Have been very busy lately

      Delete
  20. Hi Helder,

    I take your package and I've read everything in your two pages about VLC and unfortunatly I can't run VLC

    root@(none):/vlc# ./vlc --vout omxil_vout Skyfall.mp4
    ./vlc: error while loading shared libraries: libvlc.so.5: cannot open shared object file: No such file or directory

    Can you help me? maybe I need to put the vlc folder somewhere or make some links?

    If I look for the ibvlc.so.5 with find cmd the file exist
    root@(none):/# find / -name "libvlc.so.5"
    /vlc/lib/.libs/libvlc.so.5

    I don't understand that.

    ReplyDelete
    Replies
    1. Nice you found it, I have been quite busy lately. Sorry for not answering to you

      Delete
  21. I found a solution, I put my vlc folder on the root and run this cmd

    ln -s /vlc/lib/.libs/libvlc* /usr/lib/
    ln -s /vlc/src/.libs/libvlc* /usr/lib/

    and it seems working with my video. I hope it help Pukster

    ReplyDelete
  22. Hey there. Thanks for this great guide. I am already running vlc and have only a little problem with playing fullscreen. the videofile (PAL widescreen) is sized to fit the screen (1920x1080). But I can still see the background above and below the playing video. I already tried the --fullscreen option and also --intf dummy with no success. Following messages appear on the console:

    > ./vlc --vout omxil_vout -f --intf dummy --no-osd --no-audio --repeat ~/v2.mp4

    VLC media player 2.2.0-git Weatherwax (revision 2.1.0-git-2065-gfe1ac6e)
    [00b26510] core xml reader error: XML reader not found
    [00b4a0a8] core interface error: no suitable interface module
    [00aa39d0] core libvlc error: interface "globalhotkeys,none" initialization failed
    [00b4a0a8] dbus interface error: Failed to connect to the D-Bus session daemon: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11
    [00b4a0a8] core interface error: no suitable interface module
    [00aa39d0] core libvlc error: interface "dbus,none" initialization failed
    [00b4f2d8] dummy interface: using the dummy interface module...
    [00b9b130] core vout display error: Failed to change zoom
    [00b9b130] core vout display error: Failed to set on top

    The last two lines repeat everytime the video loops. Maybe I am missing something somewhere.

    ReplyDelete
    Replies
    1. set --width and --height params according to your screen resolution

      Delete
    2. Example:

      if your screen resolution is 1920*1080 (Full HD) set following params:
      --width=1920 --height=1080

      notice it's double dashes before the params

      Delete
  23. I followed your instruction on this page till step 3: and following error message occurred on 'make' command. I am new to Raspberry Pi. Let me know if you have any clue what is going on. Thank you.

    Error Message:
    CC codec/omxil/libomxil_vout_plugin_la-qcom.lo
    CC video_chroma/libomxil_vout_plugin_la-copy.lo
    CCLD libomxil_vout_plugin.la
    CC codec/libx264_plugin_la-x264.lo
    CCLD libx264_plugin.la
    CC demux/libflacsys_plugin_la-flac.lo
    CC demux/libflacsys_plugin_la-xiph_metadata.lo
    CCLD libflacsys_plugin.la
    CC demux/libogg_plugin_la-ogg.lo
    demux/ogg.c: In function ‘Ogg_DecodePacket’:
    demux/ogg.c:1079:2: warning: #warning Memory leak [-Wcpp]
    demux/ogg.c:1306:9: warning: call to ‘harmful_delay.constprop.2’ declared with attribute warning: use proper event handling instead of short delay [enabled by default]
    CC demux/libogg_plugin_la-oggseek.lo
    demux/oggseek.c: In function ‘Oggseek_GranuleToAbsTimestamp’:
    demux/oggseek.c:815:1: error: unrecognizable insn:
    (insn 332 331 333 6 (set (subreg:SI (reg:DI 225 [ p_stream_5(D)->i_keyframe_offset ]) 0)
    (sign_extend:SI (mem/s:QI (plus:SI (reg/v/f:SI 190 [ p_stream ])
    (const_int 1080 [0x438])) [0 p_stream_5(D)->i_keyframe_offset+0 S1 A64]))) demux/oggseek.c:790 -1
    (nil))
    demux/oggseek.c:815:1: internal compiler error: in extract_insn, at recog.c:2109
    Please submit a full bug report,
    with preprocessed source if appropriate.
    See for instructions.
    Preprocessed source stored into /tmp/ccJfiP8x.out file, please attach this to your bugreport.
    make[4]: *** [demux/libogg_plugin_la-oggseek.lo] Error 1
    make[4]: Leaving directory `/vlc/modules'
    make[3]: *** [all-recursive] Error 1
    make[3]: Leaving directory `/vlc/modules'
    make[2]: *** [all] Error 2
    make[2]: Leaving directory `/vlc/modules'
    make[1]: *** [all-recursive] Error 1
    make[1]: Leaving directory `/vlc'
    make: *** [all] Error 2
    root@raspberrypi:/vlc#

    (i might have accidentally submitted the same post on here, but for some reason it is not publishing on here, my apologies for that.)

    ReplyDelete
  24. Does this also enable hardware acceleration when transcoding with VLC?

    ReplyDelete
    Replies
    1. I have't used it for transcoding so I can't give you a clear answer to that one.
      Maybe you could try out and share with us.

      Delete
  25. I was able to get this working! Very nice! Thank you so much!
    One issue though.

    Implementations in vlcj do not work (I am passing --vout omxil_out). The video lags beyond recognition or freezes on first frame for any file type. vlc is fine when launched as standalone program.

    I know you are busy, but me and my local museum would be extremely grateful for any advice!

    ReplyDelete
  26. This comment has been removed by the author.

    ReplyDelete
  27. I get the error "main libvlc error: No plugins found! Check your VLC installation."
    Help?

    ReplyDelete
  28. I am trying to compile this raspi VLC for Debian wheezy armel but the omxil_vout not work. I get an error that video core cant open image.. only audio works.

    All libs are in place .
    Opens the videos without vout omxil_vout.

    The question is:

    Is possible to compile this vlc in debian wheezy armel raspi?
    I need some help !

    Thanks!

    ReplyDelete
    Replies
    1. I find the solution for armel :

      Copy all the raspi firmware (include , bin , lib, sbin ) to inside usr same folders.

      Then compile and will work.

      I post it just in case someone that not use raspbian .

      Delete
  29. Hi Helder,

    Wonderful tutorial mate. I managed to build the VLC player and it seems working fine. Only problem was that I wanted to display a rtsp stream encoded in H.264 and it fails with following.

    Your input can't be opened.
    VLC is unable to open the MRL 'rtsp://192.168.0.17:554'. Check your log for details.

    I set a log file name path but there is no log created.

    Any ideas?

    Thanks,
    Kay

    ReplyDelete
  30. Can you use it for Hardware accelerated encoding?

    ReplyDelete
  31. Downloaded the compiled rar file. Problems unpacking on RPi (unrar-free threw multiple unpacking errors). So unrar-ed it on my laptop, zipped it there and unzipped on the RPi. Comments: must be unpacked into /home/pi/vlc or the bin/vlc script doesn't work (should it figure out its directory instead of hard-coded?). Had to chmod a+x a couple of executables that didn't have execute permission (can't remember which ones: trying to run vlc will tell you). Ran bin/vlc script but it couldn't find any plugins: need to set that to modules directory, so that from /home/pi/vlc/bin directory the command is

    VLC_PLUGIN_PATH=../modules ./vlc --vout....

    Then works fine - great job!

    ReplyDelete
  32. Downloaded the vcl source from git and followed your build instructions. In addition to the list of packages required, I had to add the following: libdvbpsi-dev, libmad0-dev, libx264-dev, lua5.2-dev, libxcb-shm0-dev, libxcb-composite0-dev, libxcb-xv0-dev, libxcb-randr0-dev, libgcrypt11-dev, gettext.
    Then it got weird: no matter how I tried to run it I kept getting
    undefined symbol: libvlc_set_app_id
    For some reason only some files were copied to vlc/lib/.libs, some remained in vlc/src/.libs. I had to change the relink command in bin/vlc
    From: -Wl,-rpath -Wl,/home/pi/vlc/lib/.libs
    To: -Wl,-rpath -Wl,/home/pi/vlc/lib/.libs -Wl,-rpath -Wl,/home/pi/vlc/src/.libs
    Then it worked fine from my own compile - so now I can add whatever modules I like!

    ReplyDelete
    Replies
    1. Hi Mr. Newmarch, would it be possible for you to share your image of SD card running a working Raspian with VLC hardware acceleration? the reason I'm asking is because at the moment this tutorial is obsolete. Due to changes on Rapspian updates and upgrades, so at the moment no one can get this to compile properly due to missing modules such as libpostproc-dev.

      Thanks in Advance

      Delete
  33. Now that all the kinks have been ironed out, is there an easier set of instructions that don't require as many steps and bypass many of the previous challenges above?

    ReplyDelete
  34. Since this isn't possible to do at the moment, can someone please be kind enough to share a working image of Raspbian with VLC hardware acceleration pre-installed.

    Thanks In Advance

    ReplyDelete
  35. To fix the libpostproc-dev problem, try this:

    Use Nano (or your text editor of choice) to edit your sources.list file:
    sudo nano /etc/apt/sources.list

    And add this line:
    deb http://plugwash.raspbian.org/wsf wheezy-wsf main

    Close the file with Ctrl-X, type y to save, then update and install using:
    sudo apt-get update
    sudo apt-get install libpostproc-dev

    Credit goes to Plugwash at raspberrypi.org
    Source

    ReplyDelete
  36. This was also helpful:
    GCC Fix

    I included Lua5.2
    liblua5.2-dev

    These are the packages I disabled because I didn't have them installed and don't really need them. Might be different for you as I'm on minibian.

    --disable-archive --disable-dvdread --disable-dvdnav --disable-bluray --disable-smbclient --disable-dsm --disable-decklink --disable-gnomevfs --disable-vnc --disable-freerdp --disable-shine --disable-mpg123 --disable-gst-decode --disable-libva --disable-x265 --disable-mfx --disable-aribsub --disable-aribb25 --disable-svgdec --disable-chromaprint --disable-chromecast --disable-goom --disable-projectm --disable-vsxu

    ReplyDelete
  37. HI,

    Your binary works well.
    I'm trying to sue libVLC on RPi with same --vout.
    Do you have idea how to specify it? I've tried through libvlc_new arguments but it doesn't seem to be used.

    Any idea?

    Thank you

    ReplyDelete
  38. /bin/bash: ./make-alias: Permission denied
    Makefile:2322: recipe for target 'cvlc' failed
    make[2]: *** [cvlc] Error 126
    make[2]: Leaving directory '/home/pi/vlc'
    Makefile:1735: recipe for target 'install-recursive' failed
    make[1]: *** [install-recursive] Error 1
    make[1]: Leaving directory '/home/pi/vlc'
    Makefile:2159: recipe for target 'install' failed
    make: *** [install] Error 2
    pi@raspberrypi ~/vlc $ vlc
    VLC media player 2.2.0-git Weatherwax (revision 2.1.0-git-744-ge35f208)
    [0xec3450] main xml reader error: XML reader not found
    [0xec02b8] main interface error: no suitable interface module
    [0xe9c8f8] main libvlc error: interface "globalhotkeys,none" initialization failed
    [0xe9c8f8] main libvlc: Running vlc with the default interface. Use 'cvlc' to use vlc without interface.
    [0xfa2320] [cli] lua interface error: Error loading script /usr/local/lib/vlc/lua/intf/cli.luac: /usr/local/lib/vlc/lua/intf/cli.luac: version mismatch in precompiled chunk


    any idea? i tried purge vlc, manually delete vlc folders from everywhere, make clean again the same result...

    ReplyDelete
  39. it doesnt even create configuration folder on home folder to config it. seems like it doesnt know folder locations

    ReplyDelete
  40. Seems V2.2 of VLC now supports Raspberry Pi HW acceleration. But the problem I'm having is not being able to download that version. Anyone compiled a binary yet of V2.2?

    ReplyDelete
  41. Actually, it just need two hours to compile. In addition, you need to install lastest version of libdvbpsi or it cannot compile.

    http://www.videolan.org/developers/libdvbpsi.html

    ReplyDelete
  42. This was very informative. I learnt the basics of Raspberry Pi at http://au.rs-online.com/web/generalDisplay.html?id=infozone&file=expert-reviews/expert-reviews-raspberry

    ReplyDelete
  43. This comment has been removed by the author.

    ReplyDelete
  44. This comment has been removed by the author.

    ReplyDelete
  45. Hello.
    I have this errors:

    pi:~vlc $ ./vlc --vout omxil_vout

    VLC media player 2.2.0-git Weatherwax (revision 2.1.0-git-744-ge35f208)
    [0x3d67f8] main xml reader error: XML reader not found
    [0x3d6f58] main interface error: no suitable interface module
    [0x3c39f0] main libvlc error: interface "globalhotkeys,none" initialization failed
    [0x3c39f0] main libvlc: Running vlc with the default interface. Use 'cvlc' to use vlc without interface.
    [0x436b08] [cli] lua interface: Listening on host "*console".

    what should I do?
    Thanks

    ReplyDelete
  46. How can I get VLC sources for git? Should I just write it in the commando terminal? I get the message:

    unable to connect to git.videolan.org: Name or service not known.

    Please help

    ReplyDelete
  47. When installing the libraries, is it enough to just write 'hashtag' # and the librarienames you have listed. etc. # liba52-0.7.4-dev

    Or is it the whole sentence?

    ReplyDelete
  48. I got an error while running the command
    ./vlc --vout omxil_vout

    ./vlc: error while loading shared libraries: libvlccore.so.5: cannot open shared object file: No such file or directory

    ReplyDelete
  49. Installed all the libraries and and sources.
    But can someone please explain to me what is going on with the
    ./configure command? I get an error every time I run any code assocatied with it.
    Thanks

    ReplyDelete
    Replies
    1. I get a unknown file or directory error when I run the config command

      Delete