自从有了具有播放多媒体的手机后,比较关心这个问题:linux下如何转视频格式为3GP。win下貌似有太多工具了,不过要找个免费的,还真不容易。
像3GP这类格式天生就是手机上的了,小,非常小,当然还有nokia的支持。不过效果麻,当然是不怎么好了。
回到正题,linux下,大概mencoder是可以的,现在mplayer甚至支持real了,那把rmvb转成3GP也未尝不可。不过我今天看到的方法是用ffmpeg,当然首先要确定你编译的ffmpeg打开了x264和aac的支持,因为前者是3GP的视频解码,后者是3GP的音频解码,缺一不可。然后用下面这条命令转格式:
ffmpeg -i .avi -ar 8000 -ac 1 -acodec aac -vcodec h263 -s 176x144 -r 12 -b 30 -ab 12 .3gp
解释下各参数。-i参数就是指定原始文件而已;-ar参数是指定音频声道,手机就不讲就了,1个声道足以,千万别误会以为只有一个耳塞可以有声音哦;-acodec参数是指定输出文件中音频的格式,推荐aac;-vcodec同理,即指定输出文件的视频格式,3GP的话就是h263了;-s参数是输出视频的屏幕大小,我的手机其实是160x128的,可能不是很规范,反正你只能选择他提供的三个其中之一,看来还是176x144比较接近了,他支持的大小为:128x96, 176x144, 352x288, 704x576, 1408x1152;-r参数,应该是祯的概念了;-b参数即是视频bit率;-ab参数是音频bit率。
我用上面的命令转了一个700M火箭对爵士的NBA视频,格式是avi的,转后大小为34.7M,压缩的够狠,放到手机上看了下,效果糟糕,好像很多马赛克拼起来的一样。然后增加参数的值,即:
ffmpeg -i .avi -ar 8000 -ac 1
-acodec aac -vcodec h263 -s 176x144 -r 20
-b 60 -ab 32 .3gp
如此后,体积增加至47M,效果好了点,至少分得清哪个是T-mac了。