As already told I would strongly recommand to install vlc in some folder such as /usr/VLC and to copy the full folder on the same place on the embedded computer. In this way there will no problems with the plugins (this may also resolve the segfault problem you have in some cases). You chose "--prefix=/usr/VLC" and later you call /usr/VLC/bin/vlc and here the plugin-paths etc. will be compiled in vlc. Sometimes when you recompile vlc with different ./configure options you should also erase the old installation folder because old copies of no longer used plugins may also cause problems (such as segfault). The "make install" will only install the new plugins but not erase the old plugins which where compiled previously and if they are absent in the new compilation.
The library libvlc.a will not be used by vlc during the runtime, because it is the static version. You may use it to compile and link
other programs that call libvlc-functions but as far as vlc is concerned the libvlc-funtions are either already contained in vlc or vlc depends on the dynamic version (libvlc.so which is typically a symbolic link to libvlc.so.x.x.x where x.x.x is some version number).
You streaming command line containing:
Code: Select all
#transcode{vcodec=mp4v,acodec=mpga,vb=3000,ab=256...
clearly needs ffmpeg and maybe x264 (x264 the modern streaming mp4-codec used for HD-TV etc.) to encode the mp4v codec (if this is a valid name for the video-codec in vlc ?). Furthermore, I suspect that encoding to mp4 will be very heavy for the CPU and I am not sure if your embedded computer can handle this concerning the CPU-charge. You should first test on a bigger computer. Maybe you should better encode to mpeg2 (which also requires ffmpeg).
But the difference is I had installed ffmpeg before on the computer while compiling vlc code. but there are no ffmpeg libs on board and hence that is the reason of the errors may be.
Of course if you need ffmpeg in vlc, you need either the dynamic libraries or to compile the vlc-ffmpeg-plugin statically (using "--with-ffmpeg-tree=..." during compilation). For this you will have to install and compile ffmpeg on you own.
The dynamic ffmpeg-libraries of ffmpeg are:
libavformat.so.<blabla-version-number>
libavcodec.so.<...>
and maybe:
libpostproc.so.<...>
you have to copy them from your developpement computer (proably to be found in /usr/lib/...) to /usr/lib/ of the embedded computer and afterwards run the command: "ldconfig" to actualize the library cache-database.
You should control with "ldd libffmpeg_plugin.so" which libraries the ffmpeg-plugin requires (libffmpeg_plugin.so is in the subfolder "codec" of the plugin folder, which is probably /usr/lib/vlc in your case or /usr/VLC/lib/vlc if you use the installation folder I suggested.
In principal you have to do the same with every plugin and to add the missing dynamic libraries in the embedded computer (typically of the form: lib<blabla>.so.<blabla-number>).
ffmpeg is a very universal library which is able to decode and encode a lot of codecs, such as mpeg2, mpeg4, mpega and ffmpeg may also be compiled in a way that it supports ogg, thora, etc. (However, you may also add ogg, thora support explicitely in vlc and not in ffmpeg). For mpeg2 decoding only there is also libmpeg2.so.<...> which vlc uses by default (if it is present in the system). If somehow you need to encode mpeg2 (and with V4L that seems necessary to me ??) you will need ffmpeg. However, the dynamic libraries of ffmpeg are not so big.
You can disable ffmpeg with "--disable-ffmpeg" during compilation but than many things with transcoding will not work (especially your above streaming command line).
Finally, when you want to do streaming you need to include the live555-library which is not included by default and which you forget in you above configure-option list. Details for installation here:
viewtopic.php?f=13&t=34103&p=105767&hil ... 55#p105767