文档章节

CentOS 6.2 下编译使用Libvlc

lichao19881026
 lichao19881026
发布于 2014/05/16 15:10
字数 473
阅读 421
收藏 0

总的来说把VLC内嵌入自己的应用有4种途径:
•直接调用VLC进程
•VLC的plugin for Mozilla
•VLC的ActiveX插件
•调用libvlc

最近需要VLC动态库做开发,故需要编译vlc,并修改VLC 将自己的API借口添加到Lib动态库中。

下面来编译VLC2.0.1,从官网下载最新VLC。(新版本的VLC需要gcc和glibc的支持,所以使用centOS 6.2或者ubunt10.0版本)

如果想要加载全部功能,需要安装如下库

yum install a52dec a52dec-devel caca-utils dirac dirac-devel expat expat-devel faac faac-devel faad2 faad2-devel ffmpeg \
  ffmpeg-libs flac flac-devel fribidi-devel gettext gnutls gnutls-devel gnutls-utils lame lame-devel live555 live555-devel \
  libass libass-devel libcaca libcaca-devel libcddb libcddb-devel libcdio libcdio-devel libdap libdap-devel libdca-devel \
  libdvbpsi libdvbpsi-devel libdvdnav libdvdnav-devel libdvdread libebml libebml-devel freetype freetype-devel fribidi \
  libgcrypt libgcrypt-devel libgpg-error libgpg-error-devel libjpeg-turbo libmad libmad-devel libmatroska libmatroska-devel \
  libmodplug libmodplug-devel libmpcdec-devel libmpeg2-devel libogg-devel liboil-devel libpng libpng-devel libshout \
  libshout-devel libtheora-devel libtiff libupnp libupnp-devel libvorbis-devel libX11 libX11-devel libxcb libxcb-devel \
  libxml2 libxml2-devel mpeg2dec portaudio-devel qt4 qt4-devel schroedinger-devel SDL-devel SDL_image SDL_image-devel speex \
  speex-devel taglib-devel twolame twolame-devel vcdimager vcdimager-devel vcdimager-libs x264 x264-devel yasm zlib \
  lua xcb-util-devel libsamplerate-devel


那这里有好多是我不想要的,所以在configure时将不需要的屏蔽掉了

./configure --disable-nls --disable-dbus --disable-lua --disable-mad --disable-avcodec --disable-swscale --disable-postproc --disable-a52 --disable-xcb --disable-alsa --disable-libgcrypt

生成makefile后,make;make install;

可能make 是缺少gcc++ yum之,安装后,记得重新configure。

增加自定义API接口: 

需求:增加VLC视频存储功能

1)在libvlc_media_play.h文件中声明为LIBVLC_API类型的接口函数

2)并将接口在lib/libvlc.sym 文件中添加,否则make编译时会在连接进动态库时变为静态,不可被外部调用。

include\vlc\libvlc_media_player.h文件,

搜索 libvlc_video_take_snapshot(实现截图功能的)这个函数,找到libvlc_video_take_snapshot后,在其后面添加名

int libvlc_video_toggle_record( libvlc_media_player_t *p_mi,  
                                const char *psz_filepath, const char *psz_filename )  
{  
    input_thread_t *p_input = libvlc_get_input_thread( p_mi );  
    if(p_input == NULL)  
        return -1;    
    var_SetString( p_input, "input-record-path", psz_filepath );      
    var_SetString( p_input, "sout-record-dst-prefix", psz_filename );  
    var_ToggleBool( p_input, "record");  
    vlc_object_release(p_input);  
    return 0;  
}

3)编译自己程序时指定连接动态库-lvlc

安装成功!


© 著作权归作者所有

共有 人打赏支持
lichao19881026
粉丝 9
博文 86
码字总数 189026
作品 0
海淀
私信 提问
编写Shell/Bat脚本,编译VLC和FFmpeg

编译生成ffmpeg和项目包含的静、动态库 参考 http://trac.ffmpeg.org/wiki/CompilationGuide/MSVC http://trac.ffmpeg.org/wiki/CompilationGuide/MacOSX http://trac.ffmpeg.org/wiki/Comp......

天台道人
2016/09/12
3
0
编写shell和bat脚本,一键编译ffmpeg和vlc

编译生成ffmpeg和项目包含的静、动态库 参考 http://trac.ffmpeg.org/wiki/CompilationGuide/MSVC http://trac.ffmpeg.org/wiki/CompilationGuide/MacOSX http://trac.ffmpeg.org/wiki/Comp......

天台道人
2016/09/11
13
8
CentOS 编译安装Nginx1.0.12+MySQL5.5.21+PHP5.3.10

说明: 操作系统:CentOS 6.2 32位 系统安装教程:CentOS 6.2安装(超级详细图解教程) 准备篇: 一、配置好IP、DNS 、网关,确保使用远程连接工具能够连接服务器 二、配置防火墙,开启80端口、...

蛋总
2012/12/20
0
0
同一机器上安装Centos,Ubuntu,Windows7三个系统

原本自己的机器上已经装好了Ubuntu11.10,Windows7双系统。最近突然想装CentOS玩一玩。在官网下载好CentOS-6.2-i386-bin-DVD1.iso,CentOS-6.2-i386-bin-DVD2.iso。话说做这个启动盘也费了好多...

bigfish__
2012/03/15
0
2
Centos 6.2下怎么编译evolution-tray

我想在centos 6.2 下编译evolution-tray这个插件,可是总是少libgconf-bridge这个库,网上找了很长时间没找到,请问有编译过的朋友说下吗?或者提供下源码的下载地址也可以....

小黑aac
2012/02/01
754
0

没有更多内容

加载失败,请刷新页面

加载更多

kubernetes 二进制包安装

环境 角色 主机名 内网 IP 集群 IP 操作系统 服务 执行目录 部署机 k8s-master master120 10.0.4.120 - CentOS kube-apiserver kube-scheduler kube-controller-manager /opt/kubernetes/ et......

Colben
28分钟前
5
0
瑞达利欧的《原则》读后感作文2400字

瑞达利欧的《原则》读后感作文2400字: 拿到同事送的书读了几十页后,我意识到自己犯了一个错误:之前以为像《原则》这个书名,配上最成功的对冲基金经理、受用终身的教诲、傅盛引用并盛赞,...

原创小博客
46分钟前
1
0
java内存占用异常问题常见排查流程(含堆外内存异常)

先初步介绍一下内存组成: java进程占用内存 约等于 Java永久代 + Java堆(新生代和老年代) + 线程栈+ Java NIO,其它部分占用内存较小, 详细可以参考这篇文章 https://my.oschina.net/h...

小海bug
52分钟前
2
0
成为架构师需要学习哪些技能?阿里P9架构师为你解答

不想当将军的兵不是好兵,就程序猿不想当架构师就不是好的程序员! Java架构师主要需要做哪些工作呢? 1、负责设计和搭建软件系统架构(平台、数据库、接口和应用架构等),解决开发中各种系...

别打我会飞
56分钟前
6
0
使用xtrabackup备份数据库

使用xtrabackup备份数据库 提供一个参考文档:http://xtra.aminglinux.com mysqldump对于导出几个G的数据库或几个表,还是不错的,速度并不慢。一旦数据量达到几十上百G,无论是对原库的压力...

wzb88
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部