cygwin编译mplayer

 

很喜欢mplayer这个视频播放器,据说它来源于linux平台,在windows上也有相应版本。用起来资源占用少、支持格式多。而且它的源代码是公开的,自己来编译一个播放器,是不是很有趣呢?

首先准备好cygwin环境,这我就不说了。

1.下载mplayer源码

我用的是http://sourceforge.net/project/showfiles.php?group_id=205275&package_id=248631

2.进入mplayer源码目录

在cygwin下运行./configure,将会检测系统环境的配置,并生成相应的makefile文件。

3.运行make命令

此时可能会出现stream_dvd.c找不到libgen.h的错误。为了不修改makefile我用了一个简单的方法,把stream_dvd.c的#include <libgen.h>注释掉,并在代码中加入下面两个函数的定义:

char* basename(char *path)           
{                                    
char *p;                          
if( path == NULL || *path == '\0' )
   return ".";                   
p = path + strlen(path) - 1;      
while( *p == '/' ) {              
   if( p == path )               
    return path;              
   *p-- = '\0';                  
}                                 
while( p >= path && *p != '/' )   
   p--;                          
return p + 1;                     
}  

char* dirname(char *path)                                              
{                                    
char *p;                          
if( path == NULL || *path == '\0' )
   return ".";                   
p = path + strlen(path) - 1;      
while( *p == '/' ) {              
   if( p == path )               
    return path;              
   *p-- = '\0';                  
}                                 
while( p >= path && *p != '/' )   
   p--;                          
return                            
   p < path ? "." :              
   p == path ? "/" :             
   (*p = '\0', path);            
}

还可能会出现nellymoserenc.c找不到INFINITY定义的错误,我就在该代码中加入以下宏定义

#define INFINITY 1e20

这样应该可以make下去了,不过时间比较长,请耐心等待。。。。

4.make完以后可以看见生成了mplayer.exe文件,这就是mplayer播放器啦,不过只能以命令行的形式调用,没有用户界面。因此双击运行它时,将会出现一个一闪而过的命令行窗口。若出现缺少dll的情况,请拷贝cygwin1.dll,cygjpeg-62.dll,cygungif-4.dll,cygz.dll到系统目录下或mplayer.exe所在的目录。

所有都准备好了,试一试刚刚编译出来的mplayer吧,在命令行下运行mplayer.exe  视频文件名,就可以看到一个视频播放窗口了。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值