mencoder/mplayer/ffmpeg 命令的使用大全

mencoder/mplayer/ffmpeg 命令的使用大全

mencoder/mplayer/ffmpeg 命令的使用大全

 

資料來源:http://waynerqiu.com/7/216.html

 

Mencoder flv 
mencoder -ffourcc FLV1 -lavfopts i_certify_that_my_video_stream_does_not_use_b_frames -of lavf -oac mp3lame -lameopts aq=9:cbr:br=64:vol=2 -ovc lavc -lavcopts vcodec=flv:vbitrate=200:acodec=mp3:abitrate=56 -vf scale=320:270,expand=320:270:::1,crop=320:270:0:0 -ofps 18 -srate 22050 input.xxx -o output.flv

Mencoder avi 
mencoder.exe -oac mp3lame -lameopts aq=7:cbr:br=64 -srate 32000 -vf scale=220:176 -ovc lavc -ffourcc DX50 -lavcopts vcodec=mpeg4:vbitrate=320 “input.xxx” -o “output.avi”
 

 

mencoder -oac mp3lame -lameopts aq=7:cbr:br=64 -srate 32000 -vf scale=220:176 -ovc lavc -ffourcc DX50 -lavcopts vcodec=mpeg4:vbitrate=320 “input.xxx” -o “output.avi”


mencoder -oac mp3lame -lameopts aq=7:cbr:br=64 -srate 22050  -vf scale=320:-3 -ovc xvid -xvidencopts bitrate=600     “wmv.wmv” -o “wmv.avi”  
 

 

mencoder -oac lavc -lavcopts acodec=mp2:abitrate=64 -srate 22050  -vf scale=320:-3 -ofps 15 -ovc xvid -xvidencopts bitrate=400  rmvb.rmvb -o rmvb.avi

mencoder 1.rmvb -oac mp3lame -lameopts preset=64 -ovc xvid -xvidencopts bitrate=600 -of avi -o rmvb.avi

 


Mencoder wmv  
FLV
mencoder ../v/wmv.wmv -o ../v/wmv-3.flv -of lavf -oac mp3lame -lameopts abr:br=56 -srate 22050 -ovc lavc -lavcopts vcodec=flv:vbitrate=500:mbd=2:mv0:trell:v4mv:cbp:last_pred=3

RMVBFLVCODE
mencoder -vf scale=320:240 -ffourcc FLV1 -of lavf -lavfopts i_certify_that_my_video_stream_does_not_use_b_frames -ovc lavc -lavcopts vcodec=flv:vbitrate=200 -srate 22050 -oac lavc -lavcopts acodec=mp3:abitrate=56 ok/1.rmvb -o ok/rmvb.flv

利用ffmpeg的這兩個參數,可以控制讓ffmpeg來將一個大video劈分成許多小段的獨立播放的文件。
-ss time_off        set the start time offset
-t duration         set the recording time

Mencoder截段參數:
-ss 0
 
-endpos 120

 

 

 

 


FFmpeg
3gp:
ffmpeg -y -i **.** -ac 1 -acodec amr_nb -ar 8000 -ab 24 -s 128×96 [-vcodec mpeg4] -b 40k -r 8 **.3gp

FFmpeg flv:
ffmpeg -i inputfile.xxx -ab 56 -ar 22050 -qmin 2 -qmax 16 -b 320k -r 15 -s 320×240 outputfile.flv

FFmpeg截圖參數 
對視頻檔截圖: 
ffmpeg -i xxx.xxx -y -f image2 -ss 8 -t 0.001 -s 350×240 xxx.jpg
 

對已有flv截圖: 
ffmpeg -i xxx.flv -y -f image2 -ss 8 -t 0.001 -s 350×240 xxx.jpg
 

把視頻的前30幀轉換成一個Gif  
ffmpeg -i xxx.xxx -vframes 30 -y -f gif xxx.gif
 

截取從10秒開始持續10秒的片段

FFmpeg 加浮水印參數:
ffmpeg -i inputfile.xxx -tagpict “:220:210” -ab 56 -ar 22050 -qmin 2 -qmax 16 -b 320k -r 15 -s 320×240 outputfile.flv

浮水印參數說明:
-tagpict “:220:210”
 
(在ffmpeg所在目錄中尋找0002.mjpgmask.mjpg兩個用作浮水印處理的圖片檔,然後在指定的座標,比如此處的:220:210,把浮水印在轉碼過程中添加到視頻檔的每一楨上)

AviSynth加浮水印:
首先ffmpeg/Mencoder編譯時需要–enable-avisynth
轉換參數:ffmpeg -y -i 1.avs -b 320k rmvb-avs.flv
1.avs
編寫格式:
video = DirectShowSource(“rmvb.rmvb”,15).BilinearResize(320,240)
logo = ImageSource(“logo2.jpg”)
logomask = ImageSource(“mask2.jpg”)
overlay(video,logo,mask=logomask)

mencoder flv 同時加字幕浮水印 

試了一下,可以加進去,但有些參數還設置不好.比如中文的字幕只顯示成“_____”,檔的各項設置
cd mencoder
mencoder ../file/test.mov -o ../flv/zbzbzb.flv -of lavf -oac mp3lame -lameopts abr:br=56
 
-ovc lavc -lavcopts vcodec=flv:vbitrate=500:mbd=2:mv0:v4mv:last_pred=3 -subpos 5 -subfont
-text-scale 10 -unicode -font c:/arial.ttf -sub ../file/test.srt -lavfopts
 
i_certify_that_my_video_stream_does_not_use_b_frames -srate 22050
 
pause

上面是在一個批次檔案中執行的,所以寫成這樣子

subpos 是說明字幕的位置:垂直方向上越大越靠下,水準方向的參數我沒找到,最小0,最大100
subfont-text-scale
設置字體的大小
-unicode
文字編碼方式,其他的沒試過
-font
字體檔
-sub
你的字幕文件

例子:ffmpeg -y -i “1.avi” -title “Test” -vcodec xvid -s 368×208 -r 29.97 -b 1500 -acodec aac -ac 2 -ar 24000 -ab 128 -vol 200 -f psp -muxvb 768 “1.***” 

解釋:以上命令可以在Dos命令行中輸入,也可以創建到批次檔案中運行。不過,前提是:要在ffmpeg所在的目錄中執行(轉換君所在目錄下麵的cores子目錄)。 
參數: 
-y
(覆蓋輸出檔,即如果1.***檔已經存在的話,不經提示就覆蓋掉了) 
-i “1.avi”
(輸入檔是和ffmpeg在同一目錄下的1.avi檔,可以自己加路徑,改名字) 
-title “Test”
(在PSP中顯示的影片的標題) 
-vcodec xvid
(使用XVID編碼壓縮視頻,不能改的) 
-s 368×208
(輸出的解析度為368×208,注意片源一定要是16:9的不然會變形) 
-r 29.97
(幀數,一般就用這個吧) 
-b 1500
(視頻資料流程量,用-b xxxx的指令則使用固定碼率,數位隨便改,1500以上沒效果;還可以用動態碼率如:-qscale 4-qscale 64的品質比6高) 
-acodec aac
(音頻編碼用AAC 
-ac 2
(聲道數12 
-ar 24000
(聲音的採樣頻率,好像PSP只能支援24000Hz 
-ab 128
(音頻資料流程量,一般選擇326496128 
-vol 200
200%的音量,自己改) 
-f psp
(輸出psp專用格式) 
-muxvb 768
(好像是給PSP機器識別的碼率,一般選擇384512768,我改成1500PSP就說文件損壞了) 
“1.***”
(輸出檔案名,也可以加路徑改檔案名) 

 

 

 

得用mplayer 生成一系列的圖片

mplayer  -vo jpeg girl_song.flv 
mplayer  -vo png girl_song.flv
 
mplayer  -vo gif girl_song.flv
 

可以加一個-ss 參數表示從第幾秒開始截圖 

mplayer   -ss 55 -vo gif girl_song.flv 

mplayer   -ss 00:01:23 -vo gif girl_song.flv   從第一分23秒截

q 鍵退出

可以輸入 mplayer -vo help   查看幫助

 

 

example: movie.wmv 轉成movie.avi

mencoder movie.wmv -o movie.avi -ovc lavc -oac lavc

 

 

Here’s an explanation each option being passed: 
•movie.wmv  
原始檔 
•-o <filename>    
輸出檔output  
•-ovc <video codec> OVC
輸出後的視頻格式ovc :output video .. 
•-oac <audio codec>  
輸出後的音頻格式

或許你會說記不住 lavc 等音頻格式,視頻格式,你根本不用去記

當你的選項中缺少-oac 時它會提示

[c-sharp] view plaincopy
01.jixiuf@jf /tmp/d $ mencoder  a.mpg  -o b.avi  
02.MEncoder SVN-r29796-4.4.3 (C) 2000-2009 MPlayer Team  
03.成功:格式:0  數據:0x0 – 0xca9800  
04.
檢測到 MPEG-PS 檔格式。  
05.VIDEO:  MPEG1  320×240  (aspect 1)  23.976 fps    0.0 kbps ( 0.0 kbyte/s)  
06.[V]
檔格式:2  fourcc:0x10000001  大小:320×240  幀速:23.976  幀時間:=0.0417  
07.
沒有選擇音頻編碼器(-oac)。請選擇一個編碼器(參見 -oac help)或者使用 -nosound  
08.
正在退出..  

這個時候你只需輸入

mencoder -oac help 就會給出如下提示

[c-sharp] view plaincopy
01.jixiuf@jf /tmp/d $ mencoder  -oac help  
02.MEncoder SVN-r29796-4.4.3 (C) 2000-2009 MPlayer Team  
03.Available codecs:
 
04.   copy     – frame copy, without re-encoding (useful for AC3)  
05.   pcm      – uncompressed PCM audio  
06.   mp3lame  – cbr/abr/vbr MP3 using libmp3lame  
07.   lavc     – FFmpeg audio encoder (MP2, AC3, …)  
08.   twolame  – Twolame MP2 audio encoder  
09.   faac     – FAAC AAC audio encoder  
10.copy 表示直接把源視頻中的音頻部分不經解碼直接copy 到新檔   
11.mp3lame  :
表示mp3 編碼音頻  

任務1  延遲視頻部分(對avi檔有效) 
mencoder -delay 0.7 -oac copy -ovc copy input.avi -o output.avi
解釋:讓視頻軌比當前的音頻軌落後0.7秒鐘

任務2   延遲音頻部分(對avi檔有效) 
mencoder -oac copy -ovc copy -audio-delay -0.7 input.avi -o output.avi
解釋:讓音頻軌比當前的視頻軌落後0.7秒鐘

任務3  切割視頻軌 
mencoder -ss 00:00:10 -endpos 60 -ovc copy -oac copy input.avi -o output.avi
解釋:切割視頻部分,從010秒開始,到110秒,時間長度為60秒。將結果存儲為output.avi 

任務4   連接兩段視頻(必須比特率相同)
mencoder -oac copy -ovc copy -idx -o output.avi input1.avi input2.avi

 


任務5:將一系列靜止圖像和一個mp3檔轉換為AVI視頻檔 

mencoder “mf://snap*.bmp” -mf fps=25 -oac mp3lame -lameopts abr:br=128:mode=3 -audiofile test.mp3 -ovc lavc -lavcopts vcodec=msmpeg4v2:vpass=1:vbitrate=2560000:mbd=2:keyint=132:vqblur=1.0:cmp=2:subcmp=2:dia=2:mv0:last_pred=3 -o leadnull

mencoder “mf://snap*.bmp” -mf fps=25 -oac mp3lame -lameopts abr:br=128:mode=3 -audiofile test.mp3 -ovc lavc -lavcopts vcodec=msmpeg4v2:vpass=2:vbitrate=2560000:mbd=2:keyint=132:vqblur=1.0:cmp=2:subcmp=2:dia=2:mv0:last_pred=3 -o lead.avi


解釋mono=3 代表單聲道音頻輸出, mono=0 代表身歷聲音頻輸出。上面使用的視頻編碼是微軟的msmpeg4,因此這個AVI檔可以直接在Windows media player中播放,不需要另外安裝插件。上面兩條命令,表示兩遍壓縮。為提高速度,也可以只實用第一條做單次壓縮。輸出視頻的fps25

任務6   切割 mp3音頻檔 

mplayer -ss 00:01:59 -endpos 102.5 input.mp3 -ao pcm
sox audiodump.wav result1.wav fade t 3
sox result1.wav result2.wav fade t 0 102.5 3.5
lame result2.wav -o fighting.mp3 -b 160

解釋:這個過程由四條命令組成。上面的例子中,
第一步:切割部分為 159秒開始,到341.5秒結束,長度102.5秒。用戶需自己計算切割部分,設定上述參數。 

第二步:用sox對音頻開頭3秒鐘做一個淡入效果(聲音逐漸增強)
第三步:用sox對音頻結束3.5秒鐘做一個淡出效果(聲音逐漸衰減)
第四步:將lame處理好的音頻重新編碼成160kbpsmp3

其中,第二、第三步是可以省略的。 

任務7:將wma 檔轉換為mp3 
mplayer input.wma -ao pcm
lame audiodump.wav -o output.mp3 -b 160

 

解釋:一共兩條命令。第一條將wma轉化為wav檔,第二條再將wav轉換為mp3檔,比特率為160kbps. 

任務8:將一系列圖像檔轉換為flv視頻檔 

mencoder  “mf://snap*.bmp” -mf fps=25 -audiofile test.mp3 -o output.flv   -af resample=22050:0:0 -sws 9 -vf scale=448:-3,expand=448:336 -of lavf -ovc lavc -lavcopts vcodec=flv:vbitrate=260:mbd=2:mv0:trell:v4mv:cbp:last_pred=3:predia=2:dia=2:vb_strategy=1:precmp=2:cmp=2:subcmp=2:preme=2:vpass=1

 

mencoder  “mf://snap*.bmp” -mf fps=25 -o output.flv -audiofile test.mp3  -af resample=22050:0:0 -sws 9 -vf scale=448:-3,expand=448:336 -of lavf -ovc lavc -lavcopts vcodec=flv:vbitrate=260:mbd=2:mv0:trell:v4mv:cbp:last_pred=3:predia=2:dia=2:vb_strategy=1:precmp=2:cmp=2:subcmp=2:preme=2:qns=2:vpass=2

解釋:兩遍壓縮,將一系列snap001.bmp, snap002.bmp, …圖像和一個mp3“test.mp3”轉換成fps=25的錄影。音頻採樣率設定為22050,視頻畫面大小為448×336, 視頻的比特率為260kbps 

如果你希望更改視頻中的keyframe, 你可以在第一條命令執行後,手動編輯一個divx2pass.log文件。文件中“Type:1”表示關鍵幀keyframe (或者叫i frame), “Type:2”表示p-frame,就是只記錄相鄰幀變化部分的幀。 

任務9   將一系列圖像檔轉換為ogg視頻檔 
ffmpeg2theora -f image2 snap%05d.bmp -V 320 -o output.ogg
解釋ogg錄影還是有點用的,wikipedia, wikimeida都在用。上面的視頻比特率為320kbps

 


15條常用的視頻音頻編輯腳本命令(mencoder/ffmpeg)
mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=dvd:tsaf -vf scale=720:480,harddup -srate 48000 -af lavcresample=48000 -lavcopts vcodec=mpeg2video:vpass=1:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=5000:keyint=18:vstrict=0:acodec=ac3:abitrate=192:aspect=16/9 -ofps 30000/1001 -o ntscdvd.mpg “mf://snap*.bmp” -mf fps=25 -audiofile test.mp3

mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=dvd:tsaf -vf scale=720:480,harddup -srate 48000 -af lavcresample=48000 -lavcopts vcodec=mpeg2video:vpass=2:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=5000:keyint=18:vstrict=0:acodec=ac3:abitrate=192:aspect=16/9 -ofps 30000/1001 -o ntscdvd.mpg “mf://snap*.bmp” -mf fps=25 -audiofile test.mp3

解釋:兩遍壓縮,輸入圖像幀率為25fps, 輸出幀率為29.97fps,視頻編碼mpeg2, 音頻編碼192kbps ac3.  

 

任務11   將一系列圖像檔轉換為與PAL DVD相容的mpeg2格式視頻檔 

mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=dvd:tsaf -vf scale=720:576,harddup -srate 48000 -af lavcresample=48000 -lavcopts vcodec=mpeg2video:vpass=1:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=5000:keyint=15:vstrict=0:acodec=ac3:abitrate=192:aspect=16/9 -ofps 25 -o paldvd.mpg “mf://snap*.bmp” -mf fps=25 -audiofile test.mp3

mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=dvd:tsaf -vf scale=720:576,harddup -srate 48000 -af lavcresample=48000 -lavcopts vcodec=mpeg2video:vpass=2:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=5000:keyint=15:vstrict=0:acodec=ac3:abitrate=192:aspect=16/9 -ofps 25 -o paldvd.mpg “mf://snap*.bmp” -mf fps=25 -audiofile test.mp3

解釋:兩遍壓縮,輸入為snap001.jpg, snap002.jpg… test.mp3,圖像系列的fps25輸出視頻檔的fps25. 視頻編碼為mpeg2, 音頻編碼為192kbps ac3. 

任務12   將視頻檔轉換為一系列圖像 

ffmpeg命令如下
ffmpeg -i test.avi snap%05d.bmp
也可以用mplayer完成同樣功能
mplayer video.avi -vo png -ss 00:00:10 -endpos 5.0 -vf crop=480:360:80:60
解釋:這裏mplayer的例子中,還提供了額外的切割選擇功能。切割的部分從010秒開始,到015秒結束,長達5秒。同時畫面也被切割,切割的位置從座標(80,60)開始,寬度480圖元,高度360圖元。這裏坐標系以螢幕左上角為(0,0). 

任務13   midi檔轉換為mp3 
timidity input.mid -Ow
lame -b 160 -h -k input.wav output.mp3

 

解釋:第一條命令使用timiditymidi轉換為wav檔,第二條命令用lamewav轉換為160kbps mp3檔。 

timidity配置和安裝還是比較麻煩的。還需要額外安裝高品質的sf2聲音字體檔,配置sf2檔也異常容易出錯。總體效果還可以接受。但無法使用目前流行的vst,因此可能會被慢慢淘汰掉。 

任務14   將一系列圖像轉換為swf格式的flash檔(需要perl) 

flv2swf  input.flv  output.swf
解釋:有時候可能用swf來保存視頻比flv更方便。如果圖像數量不多的話,可以採用swftools來進行轉換 

如果圖像數量很多的話,首先我們用任務8 中的命令將圖像轉換為一個flv檔。然後我們可以用adobe的各種軟體很輕鬆的將flv錄影加入一個flash專案裏,最後輸出為swf. 如果你熟悉perl的話,也可以用一perl腳本將flv檔轉換成swf. CPAN(Perl公共模組庫)有一個FLV::info的模組,安裝後就可以使用flv2swf命令了。

任務15   mp3檔轉換為wma 

mplayer input.mp3 -ao pcm
ffmpeg -i audiodump.wav -acodec wmav2 -ab 128000 test.wma1
解釋:偶爾也需要這個功能的。第一步,將mp3檔轉換為wav檔,第二步用ffmpegwav檔轉換為wma. 

如果你只需要將單幅圖像如某個封面,和一個mp3合併成一個視頻檔,請參看下文:
mencoder “mf://cover.jpg” -mf fps=1/275 -vfscale=-3:240,expand=320:240,harddup -oac mp3lame -lameoptsabr:br=128:mode=3 -audiofile input.mp3 -ovc lavc -lavcoptsvcodec=msmpeg4v2:vpass=1:vbitrate=2560000:mbd=2:keyint=132:vqblur=1.0:cmp=2:subcmp=2:dia=2:mv0:last_pred=3-ofps 30  -o demo.avi

 

wav aac命令可參考

ffmpeg -i soundtrack.wav -acodec aac -ab 128kb  output.m4a

—————

 

 

 

 

 

 

 資料來源:http://welkinchen.pixnet.net/blog/post/45543514-%E4%BD%BF%E7%94%A8-ffmpeg-%E8%BD%89%E6%AA%94%E5%BD%B1%E7%89%87%E6%A0%BC%E5%BC%8F


 

使用 FFmpeg 轉檔影片格式

使用 FFmpeg 將 MKV、MP4 等容器更換為 FLV 容器。

 

1. ffmpeg -i 原始影片檔 -f flv 輸出.flv
2. ffmpeg -i 原始影片檔 -vcodec copy -acodec copy -y 輸出.flv

 

-i input.mkv:使用 -i 指定欲處理之檔案的名稱。
output.flv:指定將要最終生成的檔案的名稱,檔案類型根據副檔名判斷。這裡副檔名是 flv 就會生成 flv 檔案。
-acodec copy:音訊不轉檔,直接複製給將要最終生成的檔案。
-vcodec copy:視訊不轉檔,直接複製給將要最終生成的檔案。
使用copy 選項將不會有任何 encode 步驟,所以不算是轉檔,只是換個容器而已。

 

ffmpeg -i <input_file> -timecode_frame_start <start_timecode> -vcodec mpeg2video -an output.m2v
Note:
Start timecode is set as number of frames.
For instance, if you want to start at 18:12:36:15, you will have to set -timecode_frame_start to 1638915 (for 25 fps content).

 

Sub-clip Creation
ffmpeg -i <input_file> -ss -t -vcodec copy -acodec copy <output_file>

 

ffmpeg -i foo.mov -vcodec copy -acodec copy -ss 00:00:08 -t 00:00:05 foo_1.mov
-ss 開始攝取時間: 00:00:08,-t 總共攝取時間: 00:00:05,也就是 8+5=13,開頭8秒,結尾至13秒,只攝取5秒影片長度之意

 

——————————————————————————–
ffmpeg

 

ffmpeg [[infile options][`-i’ infile]]… {[outfile options] outfile}…
ffmpeg -i source.avi -f flv Out.flv

 

ffmpeg -i source.avi -vcodec flv -acodec copy -y Out.flv

 

ffmpeg支援的格式非常多,只要輸入 ffmpeg -formats 就可以看到支援的codec。
codec前會有一些說明文字,例如:
`D’ Decoding available
`E’ Encoding available
`V/A/S’ Video/audio/subtitle codec
`S’ Codec supports slices
`D’ Codec supports direct rendering
`T’ Codec can handle input truncated at random locations instead of only at frame boundaries
ffmpeg參數:

 

Main options:
-i : 輸入檔案名稱,會自動依codec 讀入
-f :輸入格式,例:flv
-y : overwrite output files
-t : duration set the recording time,指定輸出影片最大長度,例:hh:mm:ss[.xxx]
-fs : 限定輸出影片最大大小
-ss : 從指定的時間開始轉檔,例 hh:mm:ss[.xxx]

 

一些可以設定的影片資訊
-tilte : string
-author : string
-copyright: string
-comment: string
-album: string
-track: number
-year: number

 

Video options:
-vcodec : 影像編碼格式,例:libxvid ,即XVID
-s : 輸出畫面的解析度,例如:-s 320×240,預設和source一樣, qvga = 320×240
-r : 指FPS,rate set frame rate,例: 25 (fps)
-b bitrate set video bitrate (in kbit/s),例: 200 (kb/s)
-pass n : n = [1|2],one pass , two pass
-newvideo : append 影片到輸出檔上

 

Audio options:
-acodec : 聲音編碼格式,例:libmp3lame , 即MP3
-ar : 聲音的取樣頻率,預設是 44100 Hz
-ac : 設定聲音的聲道數。1指是的單聲道
-ab : 指定聲音的bitrate,例: 64k
-an : 關掉聲音
-newaudio : 一樣 append

 

Subtitle options:
`-scodec codec’
Force subtitle codec (‘copy’ to copy stream).
`-newsubtitle’
append字幕到輸出檔上
`-slang code’
Set the ISO 639 language code (3 letters) of the current subtitle stream.
`-sbsf bitstream_filter’
Bitstream filters available are “mov2textsub”, “text2movsub”.

 

一些例子:(from ffmpeg常用轉檔參數)
把影像檔案轉換成avi格式
# ffmpeg -i filename.flv -f avi -vcodec libxvid -acodec libmp3lame -ar 22050 filename.avi
把影像檔案轉換成3gp格式
# ffmpeg -i filename.avi -s qcif -vcodec h263 -acodec libfaac -ac 1 -ar 8000 -r 25 -ab 32 filename.3gp
把影像檔轉換成flv格式
# ffmpeg -i filename.mpg -ab 56 -ar 22050 -b 500 -r 15 filename.flv
將聲音檔案轉成mp3
# ffmpeg -i filename.wav -acodec libmp3lame -ar 44100 -ab 128k filename.mp3

 

 

 

//————————————————————————–

 

ffmpeg,ffserver,ffplay相關說明筆記

 

ffmpeg是linux上的一個編解碼lib,主要可用來作轉檔的動作
而ffplayer和ffserver則是其上提供的一個簡單的播放器和影音串流服務器

 

以下稍微筆記一下各用法
ffserver
用來當影音串流服務器用,主要都是參考設定檔的動作來執行,可支援RTP/UDP ,HTTP/TCP等傳輸方式,預設的設定檔為
目錄下的 doc/ffserver.conf
因此一般的啟動方式為
./ffserver -f doc/ffserver.conf
當然也可自行修該設定檔並放到其他位置來執行
相關的server設定需到ffserver.conf中修改才行
啟動server後可利用 http://127.0.0.1:8090/stat.html 網址來得知server情況

 

ffplayer
播放器,可撥來自server的串流或主機上檔案
一般用法如下:
./ffplay 檔案位置
例如:
當主機有提供RTP串流時可用
./ffplay rtsp://127.0.0.1:5454/food.avi
播放主機上檔案可用
./ffplay /home/food.avi

 

另有相關設定參數
`-sync type’ :(type=audio或 video 或 ext),代表播放要和誰同步,當播放出來的影音有點奇怪時,可試著加入此參數作校正,其預設為audio

 

ffmpeg 參數說明:
-i :輸入的檔案
-formats :顯示可用的格式,編解碼的,協議的…
-f format :轉出檔案的格式,例如:avi,mp4…
-target type :設置目標文件類型(vcd,svcd,dvd) 所有的格式選項(比特率,編解碼以及緩衝區大小)自動設置,只需要輸入如下的就可以了:ffmpeg -i myfile.avi -target vcd /tmp/vcd.mpg
-vcodec codec:強制使用codec編解碼方式。如果用copy表示原始編解碼數據必須被拷貝
-sameq :使用同樣視頻質量作為源(VBR)
-pass n :選擇處理遍數(1或者2)。兩遍編碼非常有用。第一遍生成統計信息,第二遍生成精確的請求的碼率
-b bitrate :輸出影像的位元率(bitrate),預設 = 200 kb/s,說明-bitrate通常是指數位音樂或者視訊的平均位元速率,可以簡單的認為等於檔案大小除以播放時間。例如常用的RMVB在壓縮電影時常常設定視訊平均位元速率為450kbps,則平均每秒佔用約55千位元組,這樣可以估算10分鐘的視訊大小約為55KB*60*10=33MB,2小時的視訊則約為400MB。碼率並不是衡量音訊/視訊質量的唯一標準,格式、影像大小、音訊取樣頻率、音訊解析度等因素也是很重要的指標。
-r fps :輸出影像的幀率(frame rate),預設為25
-s size :輸出影像的大小,例如:800×600…
-acodec codec:使用codec編解碼
-ab bitrate :輸出音訊的位元率(bitrate),預設 = 64K
-ar freq :輸出音訊的取樣頻率,預設 = 44100Hz
-ac channels :輸出音訊的聲道數,1或2(Stereo)
-ss time :開始轉檔的影片時間,單位(秒)
-t duration :片長(duration set the recording time)
-y :overwrite output files

 

例如:
輸出純粹的YUV檔
ffmpeg -i mydivx.avi hugefile.yuv
播放YUV格式
./ffplay -s 1280×720 ../file.yuv
重點在於當初轉成YUV的影片大小要符合

 

./ffmpeg -i ../FF13.mp4 -f ffm -b 10000k -ab 64k -r 60 -ar 48000 -ac 2 -s hd720 ../file.ffm

————————-

 

兩個影音檔合併指令

01.ffmpeg -i 01.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts intermediate1.ts

02.ffmpeg -i 02.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts intermediate2.ts

03.ffmpeg -i “concat:intermediate1.ts|intermediate2.ts” -c copy -bsf:a aac_adtstoasc output.mp4

 

 

 

 




發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *