ubuntu平台,VLC/LibVLC交叉编译,生成win32版本,以及LibVLC增加录像接口

来源:互联网 发布:木工软件 编辑:程序博客网 时间:2024/06/15 03:14

这几天要用LibVLC播放视频,还需要增加一个在播放过程中录制的功能,于是把VLC完整编译了一遍,也添加了录像的接口。

原先是想在windows平台用mingw+msys交叉编译的,不过vlc官网一再强调尽量用ubuntu系统编译,不推荐windows平台,

事实证明也确实是。。。用windows平台交叉编译出来的库,不知道为啥只能播放文件,不能播放直播流,linux的完全正常没问题。

总结一下编译步骤,坑还是比较多的。


首先是安装64位的ubuntu系统。我是在vmware里面安装的,尽量选择最新的高版本,我用的是16.04,不要使用14以下的版本,编译有问题。

这个就是常规的方式,没啥可说的。我用的是网卡桥接模式。接下来重点看VLC相关的内容。


先安装所需要的依赖库和工具(要编译生成32位的LibVLC)
# apt-get install gcc-mingw-w64-i686 g++-mingw-w64-i686 mingw-w64-tools
如果要编译生成64位的VLC则下载:
# apt-get install gcc-mingw-w64-x86-64 g++-mingw-w64-x86-64 mingw-w64-tools

然后依次安装所需要的库(VLC官网写的是qt5也安装,但是如果安装了qt5编译的时候会报错,qt库冲突,所以我只安装了qt4)
# apt-get install lua5.2 libtool automake autoconf autopoint make gettext pkg-config
# apt-get install qt4-dev-tools git subversion cmake cvs 
# apt-get install wine64-development-tools libwine-development zip p7zip nsis bzip2
# apt-get install yasm ragel ant default-jdk protobuf-compiler dos2unix

接着下载vlc(我下载的2.2.7版本)
git clone git://git.videolan.org/vlc/vlc-2.2.git vlc

编译
cd vlc
mkdir -p contrib/win32
cd contrib/win32
../bootstrap --host=i686-w64-mingw32
make prebuilt
执行这个make prebuilt指令以后会下载一个预编译的大文件。

x64的linux需要删除部分文件
rm -f ../i686-w64-mingw32/bin/moc ../i686-w64-mingw32/bin/uic ../i686-w64-mingw32/bin/rcc

然后回到VLC根目录
./bootstrap
mkdir win32
cd win32
export PKG_CONFIG_LIBDIR=$HOME/vlc/contrib/i686-w64-mingw32/lib/pkgconfig

export CFLAGS="-O2"
export CXXFLAGS="-O2"
使用默认编译选项进行配置(如果要额外的选项则单独加参数)
../configure --host=i686-w64-mingw32   
make

最后,编译打包生成windows相关的文件
make package-win-common
这步会把编译好的所有文件放到“vlc/win32/vlc-2.2.7”文件夹中

进入这个文件夹中,去掉dll中的调试信息
find . -name "*.dll" -type f | xargs -i strip --strip-all {}

以上编译生成了vlc的所有文件。
=======================我是分割线==================================


接着增加录制函数, libvlc_media_player_recorder_start和libvlc_media_player_recorder_stop。这个比较简单,不详细写了。


编译生成的LibVLC上传到CSDN,需要的同学自己下载使用吧。

下载地址:http://download.csdn.net/detail/avsuper/9919212

=================================END=====================================

原创粉丝点击