原文: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