北京理工大学 20981 陈罡
昨晚忙一些别的开发一直到4点多,呼呼,好累。值得高兴的是偶终于收到了DX“美丽人生”给我发的
Mplayer支持a1200和e6的代码了,欣喜若狂。马上拿出来在cygwin下面编译,可以看出来,DX应该
是在linux环境下面编译的,而我在cygwin下面编译似乎要调整一下参数才可以。
./configure --cc=arm-linux-gcc --as=arm-linux-gas --host-cc=gcc --disable-rtc --disable-tv --enable-fbdev --target=arm-armv5te-linux --disable-x11 --disable-sdl
我把下面两个选项去掉了:
--prefix=/mmc/mmca1/mplayer
--language=zh_CN
这个language总是导致cygwin死在那里,一点反映都没有,至于生成路径--prefix,还是让
它在当前路径下面生成mplayer吧。
然后又是漫长的编译过程,这里有一个地方需要动动手:
在libfaad2目录下面的ps_dec.c的编译,不知为何,用configure生成Makefile的-O4选项编译的时候
,会出现错误无法编译,换成下面的-O2,手工编译一下,就可以生成.o文件了。
arm-linux-gcc -c -I. -I../libvo -I../../libvo -O2 -pipe -ffast-math -fomit-frame-pointer -D_GNU_SOURCE -o ps_dec.o ps_dec.c
接下来真的没有什么问题,可以编译出来mplayer了,出来的结果是5.06M左右,我用24118版本的mplayer
编译出来是6.4M左右。不管那么多了,应该是可以在a1200和e6上跑的版本了。
赶快弄一个avi出来到手机上试试吧,但愿能够顺利,一看吓一跳,原来mencoder竟然也给编译出来了,
可惜是arm-linux版的。
在cygwin下面无法使用如此编译出来的mencoder,于是又找到了一个专门为win32环境下编译mplayer
和mencoder的网站,他们做得非常棒。
网址是,感兴趣的朋友可以去那里看看。
从那里下载到了mencoder,然后利用下面的命令行pass-2的方式生成mpeg4 avi视频:
(1)删除以前的log
rm -f -r *.log
(2)第一遍pass-1生成,
mencoder a.mpg -ovc lavc -nosound -lavcopts vcodec=mpeg4:vpass=1 -vf scale=176:144 -o a.avi
(3)第二遍pass-2生成,(注意最好运行两遍,这样视频会比较清晰——网上的提示)
mencoder a.mpg -ovc lavc -nosound -lavcopts vcodec=mpeg4:vpass=2 -vf scale=176:144 -o a.avi
这样就生成好了a.avi,不知道用这个mencoder生成的avi在小明上面能否使用。
这里还恳请DX“美丽人生”帮我看看,这么用mencoder对不对,还是必须要用mplayer对应的
mencoder生成avi才可以播放。
在这里使用了-vf scale=176:144缩放了一下,主要是为了测试方便,
-nosound主要是为了测试视频,声音好说肯定没问题。
在a1200的telnet下面播放的结果,真机抓图如下:
虽然结果还是失败了,但是毕竟没有像mplayer 24118版本那样直接oops告诉我初始化
screen driver失败。有很多可以进一步探讨的地方,比如mencoder与编译出来的mplayer不匹配,
或者就是cygwin下面编译的不行,需要到linux下面重新编译一下再试试。
毕竟这个mplayer可以播放了,尽管都是一些雪花屏幕。呵呵,这里顺便提一下,24118那个版本,
我用debug模式也就是加入-g选项编译,竟然有27.4M,太夸张了吧。不过想想能够用gdb来remote
debug一下,没准能够找到真正的问题所在,这也值了。
尽管困难重重,坚持再坚持,保持良好的心态,每次偶都会有一些新的认识和发现。
DX们走过的路,总归是DX已经探索过的,即使站在巨人们的肩膀上侥幸编译、移植成功了,
知识和经验也只是是属于DX们的, 偶所知道的也只是patch、configure、make三板斧而已。
只有自己走过的路,才是真正属于自己,其中的酸甜苦辣,总结出来的解决问题的方法、进行的
实验都远远超过了mplayer成功与否本身。偶就是这么倔的一个人。
阅读(4403) | 评论(11) | 转发(0) |