文档章节

cygwin编译mplayer

来来叔叔
 来来叔叔
发布于 2017/08/04 23:57
字数 474
阅读 5
收藏 0
点赞 0
评论 0
 

很喜欢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
博文 100
码字总数 55732
作品 0
广州
高级程序员
基于 FUSE 的 Bittorrent 文件系统

Bittorrent 已经存在了很长时间,它可以从互联网上共享和下载数据。市场上有大量的 GUI 和 CLI 的 Bittorrent 客户端。有时,你不能坐下来等待你的下载完成。你可能想要立即观看内容。这就是...

16% ⋅ 06/08 ⋅ 0

CentOS 7安装KVM虚拟机OpenSUSE42操作实录

准备工作: 硬件配置情况: Intel NUC i3主机: CPU: Intel® Core™ i3-6100U CPU @ 2.30GHz × 4 内存:4G 硬盘:300G 网卡:一个,单网口,DHCP连接家庭上网的Switch,Swtich WAN口连接外...

xc95144 ⋅ 05/06 ⋅ 0

Linux操作系统下推荐的应用程序列表介绍

媒体播放: 1)divx影片:mplayer2)rm影片:realplayer10 for linux, mplayer3)mp3: xmms,beep media player, mplayer4)ape: xmms+monkey's audio plugin(http://supermmx.org/linux/mac/)5)其......

JavaGG ⋅ 2009/05/08 ⋅ 0

Opensuse中如何安装Mplayer播放器

Mplayer是很强大的开源的播放器,适合linux 平台,Windows平台,甚至支持 mac osx 访问 http://www.mplayerhq.hu/design7/dload.html 可以获得安装文件。 官方推荐自行编译以获得较佳的性能体...

yahalala ⋅ 2012/02/06 ⋅ 1

MPlayer播放器移植到嵌入式系统

开发板:tq2440 arm-linux-gcc交叉编译器:gcc version 4.3.3(Sourcery G++ Lite 2008q3-72) MPlayer版本: MPlayer-1.0rc2.tar.bz2 准备源码包: MPlayer-1.0rc2.tar.bz2 libmad-0.15.1b.ta......

慎思 ⋅ 2012/08/24 ⋅ 0

centos6.6安装mplayer:失败

一、准备工作 需要的安装包及下载地址: 1、mplayer源代码包(MPlayer-1.0rc4.tar.bz2)下载:http://www.mplayerhq.hu/MPlayer/releases/ 2、解码器安装包(all-20110131.tar.bz2)下载:h...

羡慕不来 ⋅ 2014/12/17 ⋅ 0

在Fedora中编译安装Mplayer的详细步骤

1. 下载到必要的软件包 * MPlayer 的源代码,我用的是 MPlayer-1.0pre7.tar.bz2。 * Patch的名字是 mplayer-1.0_pre7-gcc4-fix.patch,顾名思义,mplayer 在 gcc-4.0 的环境中编译,也就是 ...

红薯 ⋅ 2009/05/08 ⋅ 0

MinGW下MPlayer自己make、make install成功,但是无法播放音视频文件

WindowsXP SP3 i5处理器 技嘉主板集成显卡 版本:MPlayer-1.1.tar.gz 自己在MinGW环境下编译完成(make、make install)Mplayer,期间没有报错,顺利编译完成。但是打开多媒体文件时报错如下...

zysoso ⋅ 2013/04/28 ⋅ 0

编译安装MPlayer之后播放音频文件无声!

我自己编译安装的mplayer,在编译的过程中没有提示什么错误!但是播放,mp3文件的时候提示如下的错误 ----------------------------------------------------------------------错误信息---...

王帅 ⋅ 2010/10/07 ⋅ 8

MPlayer 1.3 发布,现已支持 FFmpeg 3.0

发布MPlayer 1.2才三周,该项目开发团队又于今日放出了MPlayer 1.3,并且令人惊奇地带来了对FFmpeg 3.0开源多媒体框架的支持。其实早在2月15号的时候,就有报道透露了这一消息。但更棒的是,...

oschina ⋅ 2016/02/18 ⋅ 1

没有更多内容

加载失败,请刷新页面

加载更多

下一页

火狐浏览器各版本下载及插件httprequest

各版本下载地址:http://ftp.mozilla.org/pub/mozilla.org//firefox/releases/ httprequest插件截至57版本可用

xiaoge2016 ⋅ 21分钟前 ⋅ 0

Java学习路径及练手项目合集

Java学习路径及练手项目合集

颖伙虫 ⋅ 36分钟前 ⋅ 0

Docker系列教程28-实战:使用Docker Compose运行ELK

原文:http://www.itmuch.com/docker/28-docker-compose-in-action-elk/,转载请说明出处。 ElasticSearch【存储】 Logtash【日志聚合器】 Kibana【界面】 答案: version: '2'services: ...

周立_ITMuch ⋅ 今天 ⋅ 0

使用快嘉sdkg极速搭建接口模拟系统

在具体项目研发过程中,一旦前后端双方约定好接口,前端和app同事就会希望后台同事可以尽快提供可供对接的接口方便调试,而对后台同事来说定好接口还仅是个开始、设计流程,实现业务逻辑,编...

fastjrun ⋅ 今天 ⋅ 0

PXE/KickStart 无人值守安装

导言 作为中小公司的运维,经常会遇到一些机械式的重复工作,例如:有时公司同时上线几十甚至上百台服务器,而且需要我们在短时间内完成系统安装。 常规的办法有什么? 光盘安装系统 ===> 一...

kangvcar ⋅ 昨天 ⋅ 0

使用Puppeteer撸一个爬虫

Puppeteer是什么 puppeteer是谷歌chrome团队官方开发的一个无界面(Headless)chrome工具。Chrome Headless将成为web应用自动化测试的行业标杆。所以我们很有必要来了解一下它。所谓的无头浏...

小草先森 ⋅ 昨天 ⋅ 0

Java Done Right

* 表示难度较大或理论性较强。 ** 表示难度更大或理论性更强。 【Java语言本身】 基础语法,面向对象,顺序编程,并发编程,网络编程,泛型,注解,lambda(Java8),module(Java9),var(...

风华神使 ⋅ 昨天 ⋅ 0

Linux系统日志

linux 系统日志 /var/log/messages /etc/logrotate.conf 日志切割配置文件 https://my.oschina.net/u/2000675/blog/908189 logrotate 使用详解 dmesg 命令 /var/log/dmesg 日志 last命令,调......

Linux学习笔记 ⋅ 昨天 ⋅ 0

MVC——统一报文格式的异常处理响应

在我们写controller层的时候,常常会有这样的困惑,如果需要返回一个数据是,可能为了统一回去构造一个类似下列的数据格式: { status:true, msg:"保存成功!", data:[]} 而且在写...

alexzhu592 ⋅ 昨天 ⋅ 0

android -------- 打开本地浏览器或指定浏览器加载,打电话,打开第三方app

开发中常常有打开本地浏览器加载url或者指定浏览器加载, 还有打开第三方app, 如 打开高德地图 百度地图等 在Android程序中我们可以通过发送隐式Intent来启动系统默认的浏览器。 如果手机本身...

切切歆语 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部