Linux下的視頻轉換:mencoder
制作適合在智能手機和PDA上觀看的mpeg4視頻。
Linux上有一個很強大的視頻音頻轉換軟件,就是Mplayer自帶的mencoder (MPlayer's Movie Encoder)。mencoder就象是一台全手動的照相機,可調整的選項非常多,不過這兒只是把最常見的情況說一下。
轉換avi文件,並把字幕內嵌到視頻中。首先假設一下下列的條件:
文件名:video.avi
字幕文件名:video.srt
目標文件:new.avi
目標文件格式:mpeg4
目標文件視頻碼率:200
目標文件音頻碼率:64
目標文件分辨率: 320:240
制作內嵌字幕所需的字體:simsun.ttf
(上面各項都可以根據實際情況進行調整)
轉換命令如下:
mencoder-oac mp3lame -lameopts vbr=3:br=64 -ovc lavc
-lavcoptsvcodec=mpeg4:mbd=1:vbitrate=200 -sub video.srt -o new.avi
-fontsimsun.ttf video.avi -subcp cp936 -subfont-text-scale 4
-vfscale=320:240
各選項的含義:
-oac 編碼文件的音頻部分。這兒是用lame將音頻encode成mp3,即mp3lame。其他可用的選項可以調用mencoder的man page查看。
-lameopts 顧名思義,即lame選項,這兒只需定義一下碼率就可以了。
vbr 設定音頻碼率的方法,格式為vbr=
0 cbr average bitrate
1 mt
2 rh constant bitrate Also forces CBR mode encoding on subsequent ABR presets modes.
3 abr
4 mtrh
在這兒用的是3,abr。
br 就是設定我們所需要的碼率值,格式為br=,只能在vbr為0和3的情況下才能使用該選項。
-ovc 編碼文件的視頻部分。主要有以下幾個選項
-ovc copy
不進行編碼,只是復制視頻流
-ovc divx4
編碼成DivX4/DivX5
-ovc raw
編碼成任意不壓縮的格式(用‘-vf format’設定具體的格式)
-ovc lavc
使用libavcodec進行編碼
-lavcopts 就是libavcodec的選項。
vcodec=使用指定的視頻編碼,下面列一下幾個主要的值
h264
H.264
h263
H.263
h263p
H.263+
mpeg4
MPEG-4 (DivX 4/5)
msmpeg4
DivX 3
msmpeg4v2
MS MPEG4v2
wmv1
Windows Media Video, version 1 (又稱 WMV7)
wmv2
Windows Media Video, version 2 (又稱 WMV8)
rv10
舊的RealVideo格式
mpeg1video
MPEG-1 video
mpeg2video
MPEG-2 video
mbd 決定視頻宏塊的算法,這兒只需要mbd=1即可。其余的可以查看man page。
vbitrate 設定視頻的碼率(默認為800)。
-sub 設定字幕文件
-o 目標視頻文件
-font 制作內嵌字幕所需字體的路徑
-subcp 字幕的編碼,簡體中文就是cp936
-subfont-text-scale 字幕字體的大小
-vf scale 視頻的分辨率
如果不需要將字幕內嵌入視頻文件,只需要去掉-sub、-font、-subcp、-subfont-text-scale這幾個選項。將rmvb轉換成mpeg4也是如此。
Linux下的視頻轉換:ffmpeg
格式:ffmpeg [[輸入文件選項]- i 輸入文件名] {[輸入文件選項] 輸出文件名}