原文:http://pinker.vicp.net/?p=110

它的详细功能不在此赘述,可以去魅族官方网站上去查看。

这里我更关注他的视频播放功能,从网上查询到的资料来看,Meizu M6系列可以播放的视频只有XVID编码的avi格式视频,而且视频的具体参数还有更一步的限制:

  • 编码格式:Xvid,非此格式不能播放
  • 视频帧率:18-20fps,建议18fps,再大的帧率M6也不支持
  • 视频码率:≤512kbps
  • 视频尺寸:320 x 240
  • 音频格式: MP3 56-256Kbps,stereo


为了能让视频在M6上播放,Meizu官方发布了一些开源的视频转换器,Video Converter, SmartVD等等,但是如同其他国内产商一样,这些周边软件无一支持Linux。

这里给出一套Linux下转换M6视频的解决方法:

利用Mplayer(Linux下最常用的视频播放软件)自带的mencoder来进行转换,而且转换的格式高度可定制。

mencoder的视频转换功能从理论上来说与Mplayer的播放功能等价,因为他们使用的是同一套编码、解码库,因此只要mplayer能够播放的视频,mencoder都能将其转换成M6所需要的Xvid格式。这里给出一套转换最常用的命令:

mencoder src_video.avi -oac mp3lame -lameopts cbr:mode=0:br=256 -ofps 18 -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:cbp:trell:vbitrate=300 -vf scale=320:240,rotate=1 -ffourcc XVID -o output_video.avi

mencoder需要在命令行下面运行,各参数介绍如下:

  • src_video.avi 源视频文件
  • -o output_video.avi 表示将输出视频文件命名为output_video.avi,文件名无限制
  • -oac mp3lame 因为播放器要求的音频格式是MP3因此该参数指定output audio codec是mp3lame
  • -lameopts cbr:mode=0:br=256 mp3编码器的参数,cbr表示固定比特率,br表示bitrate(比特率)采用256。
  • -ofps 18表示输出视频的fps为18,这当然导致很多的frame被丢掉。
  • -ovc lavc 表示视频输出(output video codec)采用lavc编码器,lavc是可以编码成mpeg格式的一种编码器
  • -lavcopts vcodec=mpeg4:mbd=2:cbp:trell:vbitrate=300 这个比较复杂,自己去看mplayer的manuscript吧
  • -vf scale=320:240,rotate=1表示将视频尺寸变换至320×240,并且顺时针旋转90度,这样播放时M6的解码器计算量小一些,不会卡。
  • -ffourcc XVID 这个太重要了,他告诉mencoder转换出来的视频要求是Xvid格式的,否则M6播放不了,效果就是一打开视频就立马退出了。

利用这个转换出来的视频基本上M6就可以播放了,前面说过,mplayer能播放的mencoder就可以转,因此你的mplayer支持rmvb 的话,你就也可以无限制地转换rmvb了,因此转换之前先用mplayer播放一下,如果正常则可以转换,否则就要去下载或者编译mplayer需要的 codecs。

另外再加上几条常用的参数:

  • -ac audio codec如果mplayer的设置里打开某个文件音频有错误的话,你就需要手动指定音频解码器,比如”-ac mad”
  • -vc 同上面一样,这里手动指定视频解码器,如”-vc rv3040″指定用rmvb的视频解码器,具体该指定哪一种mplayer播放时命令行下有提示
  • -vf scale=320:176,rotate=1,expand=:240 expand=:240在处理那些宽屏的电影时非常有效,这个参数将长度设成320,电影的高度设成176,然后在拉伸图像的高度的情况下将高度补充到 240,这样就不至于使图像的人物变的瘦长。

M6毕竟更多的靓点在于它的mp3功能,因此视频播放的效果绝对不会像你想象的那么流畅,因此建议播放一些节奏比较慢的情节片,或者动画片,毕竟18fps的帧率,也就能看看这些了。

转自 http://pinker.vicp.net/?p=110