轉載:M6視頻格式轉換命令
原文: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