格式轉(zhuǎn)換 (將file.avi 轉(zhuǎn)換成output.flv)
從策劃到設(shè)計(jì)制作,每一步都追求做到細(xì)膩,制作可持續(xù)發(fā)展的企業(yè)網(wǎng)站。為客戶提供網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站設(shè)計(jì)、網(wǎng)站策劃、網(wǎng)頁(yè)設(shè)計(jì)、主機(jī)域名、網(wǎng)站空間、網(wǎng)絡(luò)營(yíng)銷、VI設(shè)計(jì)、 網(wǎng)站改版、漏洞修補(bǔ)等服務(wù)。為客戶提供更好的一站式互聯(lián)網(wǎng)解決方案,以客戶的口碑塑造優(yōu)易品牌,攜手廣大客戶,共同發(fā)展進(jìn)步。
C代碼
#ffmpeg -i file.avi output.flv
-i 表示輸入文件
:現(xiàn)在有個(gè)視頻video.avi,有個(gè)音頻 audio.mp3,將其合并成output.avi
兩個(gè)命令(file.avi 是中間文件,用完可刪)
C代碼
#ffmpeg -i video.avi -vcodec copy -an video2.avi
#ffmpeg -i video2.avi -i audio.mp3 -vcodec copy -acodec copy output.avi
-i 表示輸入文件
-vcodec copy 表示 force video codec (‘copy’ to copy stream) 這個(gè)不知怎么譯 ,估計(jì)是直接copy
-acodec copy 這個(gè)說(shuō)的應(yīng)該是音頻了 跟上面一樣
-an:表示 disable audio 估計(jì)是audio no 之類的縮寫,表示去掉video.avi 原有的音頻
Linux下的視頻轉(zhuǎn)換:mencoder 制作適合在智能手機(jī)和PDA上觀看的mpeg4視頻。 Linux上有一個(gè)很強(qiáng)大的視頻音頻轉(zhuǎn)換軟件,就是Mplayer自帶的mencoder (MPlayer's Movie Encoder)。mencoder就象是一臺(tái)全手動(dòng)的照相機(jī),可調(diào)整的選項(xiàng)非常多,不過(guò)這兒只是把最常見(jiàn)的情況說(shuō)一下。 轉(zhuǎn)換avi文件,并把字幕內(nèi)嵌到視頻中。首先假設(shè)一下下列的條件: 文件名:video.avi 字幕文件名:video.srt 目標(biāo)文件:new.avi 目標(biāo)文件格式:mpeg4 目標(biāo)文件視頻碼率:200 目標(biāo)文件音頻碼率:64 目標(biāo)文件分辨率: 320:240 制作內(nèi)嵌字幕所需的字體:simsun.ttf (上面各項(xiàng)都可以根據(jù)實(shí)際情況進(jìn)行調(diào)整) 轉(zhuǎn)換命令如下: 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 各選項(xiàng)的含義: -oac 編碼文件的音頻部分。這兒是用lame將音頻encode成mp3,即mp3lame。其他可用的選項(xiàng)可以調(diào)用mencoder的man page查看。 -lameopts 顧名思義,即lame選項(xiàng),這兒只需定義一下碼率就可以了。 vbr 設(shè)定音頻碼率的方法,格式為vbr=0-4 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 就是設(shè)定我們所需要的碼率值,格式為br=0-1024,只能在vbr為0和3的情況下才能使用該選項(xiàng)。 -ovc 編碼文件的視頻部分。主要有以下幾個(gè)選項(xiàng) -ovc copy 不進(jìn)行編碼,只是復(fù)制視頻流 -ovc divx4 編碼成DivX4/DivX5 -ovc raw 編碼成任意不壓縮的格式(用‘-vf format’設(shè)定具體的格式) -ovc lavc 使用libavcodec進(jìn)行編碼 -lavcopts 就是libavcodec的選項(xiàng)。 vcodec=使用指定的視頻編碼,下面列一下幾個(gè)主要的值 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 設(shè)定視頻的碼率(默認(rèn)為800)。 -sub 設(shè)定字幕文件 -o 目標(biāo)視頻文件 -font 制作內(nèi)嵌字幕所需字體的路徑 -subcp 字幕的編碼,簡(jiǎn)體中文就是cp936 -subfont-text-scale 字幕字體的大小 -vf scale 視頻的分辨率 如果不需要將字幕內(nèi)嵌入視頻文件,只需要去掉-sub、-font、-subcp、-subfont-text-scale這幾個(gè)選項(xiàng)。將rmvb轉(zhuǎn)換成mpeg4也是如此。 ◆Linux下的視頻轉(zhuǎn)換:ffmpeg 格式:ffmpeg [[輸入文件選項(xiàng)]- i 輸入文件名] {[輸入文件選項(xiàng)] 輸出文件名} 主要選項(xiàng): -L 顯示ffmpeg的版權(quán)說(shuō)明 -h 顯示幫助 -version 顯示版本 -formats 顯示支持的文件格式,編碼和協(xié)議 -f 格式名 強(qiáng)制使用格式 -img 文件格式名 強(qiáng)制使用片格式 -i 文件名 待轉(zhuǎn)換文件名字 -y 覆蓋同名輸出文件 -t 時(shí)間 設(shè)置影片時(shí)間長(zhǎng)度 -fs 最大尺寸 設(shè)置文件的最大尺寸 -ss 時(shí)間點(diǎn) 設(shè)置開(kāi)始轉(zhuǎn)換的時(shí)間點(diǎn) -title 文字 設(shè)置標(biāo)題 -author 文字 設(shè)置作者 -copyright 文字 設(shè)置版權(quán)聲明 -comment 文字 設(shè)置備注 視頻選項(xiàng): -b 比特率 設(shè)置文件比特率 (單位是kbit/s) -r 速度 楨速度 (Hz value) -s 大小 設(shè)置大小,寬乘高 -newvideo 在現(xiàn)在的視頻流后面加入信的視頻流 Audio options: -aframes 數(shù)字 設(shè)置轉(zhuǎn)換多少楨(frame)的音頻 -ab bitrate 設(shè)置音樂(lè)的比特率(單位:kbit/s) -aq 質(zhì)量 這只音頻質(zhì)量 (指定編碼) -ar 采樣率 設(shè)置音頻采樣率 (單位:Hz) -ac 聲道數(shù)字 設(shè)置聲道數(shù) -an 取消音頻 -acodec 編碼 強(qiáng)制音頻 編碼 ('copy' to copy stream) -vol volume 改變音量 (256為普通) -newaudio 追加音樂(lè)
基本選項(xiàng): -formats 輸出所有可用格式 -f fmt 指定格式(音頻或視頻格式) -i filename 指定輸入文件名,在linux下當(dāng)然也能指定:0.0(屏幕錄制)或攝像頭 -y 覆蓋已有文件 -t duration 記錄時(shí)長(zhǎng)為t -fs limit_size 設(shè)置文件大小上限 -ss time_off 從指定的時(shí)間(s)開(kāi)始, [-]hh:mm:ss[.xxx]的格式也支持 -itsoffset time_off 設(shè)置時(shí)間偏移(s),該選項(xiàng)影響所有后面的輸入文件。該偏移被加到輸入文件的時(shí)戳,定義一個(gè)正偏移意味著相應(yīng)的流被延遲了 offset秒。 [-]hh:mm:ss[.xxx]的格式也支持 -title string 標(biāo)題 -timestamp time 時(shí)間戳 -author string 作者 -copyright string 版權(quán)信息 -comment string 評(píng)論 -album string album名 -v verbose 與log相關(guān)的 -target type 設(shè)置目標(biāo)文件類型("vcd", "svcd", "dvd", "dv", "dv50", "pal-vcd", "ntsc-svcd", ...) -dframes number 設(shè)置要記錄的幀數(shù) 視頻選項(xiàng): -b 指定比特率(bits/s),似乎ffmpeg是自動(dòng)VBR的,指定了就大概是平均比特率 -vb 指定視頻比特率(bits/s) -vframes number 設(shè)置轉(zhuǎn)換多少楨(frame)的視頻 -r rate 楨速率(fps) -s size 分辨率 -aspect aspect 設(shè)置視頻長(zhǎng)寬比(4:3, 16:9 or 1.3333, 1.7777) -croptop size 設(shè)置頂部切除尺寸(in pixels) -cropbottom size 設(shè)置底部切除尺寸(in pixels) -cropleft size 設(shè)置左切除尺寸 (in pixels) -cropright size 設(shè)置右切除尺寸 (in pixels) -padtop size 設(shè)置頂部補(bǔ)齊尺寸(in pixels) -padbottom size 底補(bǔ)齊(in pixels) -padleft size 左補(bǔ)齊(in pixels) -padright size 右補(bǔ)齊(in pixels) -padcolor color 補(bǔ)齊帶顏色(000000-FFFFFF) -vn 取消視頻 -vcodec codec 強(qiáng)制使用codec編解碼方式('copy' to copy stream) -sameq 使用同樣視頻質(zhì)量作為源(VBR) -pass n 選擇處理遍數(shù)(1或者2)。兩遍編碼非常有用。第一遍生成統(tǒng)計(jì)信息,第二遍生成精確的請(qǐng)求的碼率 -passlogfile file 選擇兩遍的紀(jì)錄文件名為file -newvideo 在現(xiàn)在的視頻流后面加入新的視頻流 高級(jí)視頻選項(xiàng) -pix_fmt format set pixel format, 'list' as argument shows all the pixel formats supported -intra 僅適用幀內(nèi)編碼 -qscale q 以數(shù)值質(zhì)量為基礎(chǔ)的VBR,取值0.01-255,約小質(zhì)量越好 -loop_input 設(shè)置輸入流的循環(huán)數(shù)(目前只對(duì)圖像有效) -loop_output 設(shè)置輸出視頻的循環(huán)數(shù),比如輸出gif時(shí)設(shè)為0表示無(wú)限循環(huán) -g int 設(shè)置圖像組大小 -cutoff int 設(shè)置截止頻率 -qmin int 設(shè)定最小質(zhì)量 -qmax int 設(shè)定最大質(zhì)量 -qdiff int 量化標(biāo)度間最大偏差 (VBR) -bf int 使用frames B 幀,支持mpeg1,mpeg2,mpeg4 音頻選項(xiàng): -ab 設(shè)置比特率(單位:bit/s,也許老版是kb/s) -aframes number 設(shè)置轉(zhuǎn)換多少楨(frame)的音頻 -aq quality 設(shè)置音頻質(zhì)量 (指定編碼) -ar rate 設(shè)置音頻采樣率 (單位:Hz) -ac channels 設(shè)置聲道數(shù) -an 取消音頻 -acodec codec 指定音頻編碼('copy' to copy stream) -vol volume 設(shè)置錄制音量大小(默認(rèn)為256) -newaudio 在現(xiàn)在的音頻流后面加入新的音頻流 字幕選項(xiàng): -sn 取消字幕 -scodec codec 設(shè)置字幕編碼('copy' to copy stream) -newsubtitle 在當(dāng)前字幕后新增 -slang code 設(shè)置字幕所用的ISO 639編碼(3個(gè)字母) Audio/Video 抓取選項(xiàng): -vc channel 設(shè)置視頻捕獲通道(只對(duì)DV1394) -tvstd standard 設(shè)置電視標(biāo)準(zhǔn) NTSC PAL(SECAM)