因为某些原因需要再次来下,就从我的Fedora开始。东西都当你下载好了。x264编来主要是为了编码用。解码器libavcodec基本都支持了
准备工作:
yum install yasm //安装yasm已使x264能使用--enable-asm选项,优化x86和arm的编译 yum install gcc //安装一下基本编译的包,这样打yum会自动帮你把那些什么libstdc ...等等一大堆都装上 yum install freetype //mplayer的ASS/SSA支持需要freetype ./autogen.sh -sysconfdir=/etc --prefix=/usr --mandir=/usr/share/man //安装fontconfig,我从源码安装,需要注意的是如果有报错说找不到什么东西的话,清自觉安装相应的-devel包
开始编译:
//编译x264 ./configure --enable-shared --enable-asm --enable-mp4-output --enable-lavf-input --enable-pthread //参数其实可以不必这些,不过主要是为了表达准确这样写的。 //--enable-shared 就编出了.so文件。 //编译faac和faad,都只要直接make就好了 //同样按照顺序编译libogg libvorbis libtheora xvid
注:对于自己编译,你在编译mplayer的时候可能还需要把各个编码器的include下面的c和h文件拷贝到相应的目录,否则会报错
接下来就可以进行mplayer的编译了:
./configure --enable-faac --enable-faad --enable-fontconfig --diasble-inet6 --enable-xvid --enable-x264 --enable-theora //说明:一般只要用这样的方法编译就足够用了。如果你确实有必要的话,可以加上--enable-live和--enable-qtx //前者是支持流媒体,后者是支持quicktime媒体。要enable live必须要去下载解码器包一个叫live555的东西 make //机器破的话应该会编上很久很久的,编好以后 make install
后续:
//如果你要自己编译smplayer的话参考这个 yum install qt-devel //这样也会自动把一大堆的devel包装好。 yum install gcc-c++ //安装g++ make PREFIX=/opt/media/smplayer QMAKE=qmake-qt4 //smplayer只依赖于QT4,这里QMAKE指定用来编译的qmake是qt4的而不是qt3的以免出错 make PREFIX=/opt/media/smplayer install //安装
======================================================================
更新补充:
关于附加的编码器:
通常,mplayer都能够播放各种格式的编码,我们不需要自己去附加什么Codec,但是为了实现一些格式的编码要求,我们就需要附加一些编码器了。不过,由于网上的文章乱七八糟的,很容易误导我们,这里发现了一篇比较不错的初学者文档,有一定程度的说明。甚是美妙。
关于./configure的参数
很多人很喜欢去添加enable参数。然而,对于mplayer的编译来说,一旦你enable了一个功能,configure的时候会被认为系统支持这个功能的编译。这就相当于强制开启了某功能的编译,但是,一旦你开启的这个功能的代码没有的话,就会很悲剧的报错 了。同时,如果你一定要这样编译的话,至少应该安装对应的devel包。
关于偶尔的编译错误:
也许你从来都没碰到过,我这里遇到了一次这样的问题,mplayer在编译过程中在某一个部分上进入死循环了。结果发现是,引用的某个文件的修改时间是在未来的。于是就出了这个问题了。
另外一个较常见的问题是编译过程中出现undefined reference to ,这个显然就是因为引用文件不对导致的了。但是实际要修起来非常恶心。比较精妙的修复办法是修改Makefile文件,但是我是不懂的,于是有比较窘的办法,就是把缺的文件烤过去。。。。