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
RMVB轉FLVCODE
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.mjpg、mask.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 6,4的品質比6高)
-acodec aac(音頻編碼用AAC)
-ac 2(聲道數1或2)
-ar 24000(聲音的採樣頻率,好像PSP只能支援24000Hz)
-ab 128(音頻資料流程量,一般選擇32、64、96、128)
-vol 200(200%的音量,自己改)
-f psp(輸出psp專用格式)
-muxvb 768(好像是給PSP機器識別的碼率,一般選擇384、512和768,我改成1500,PSP就說文件損壞了)
“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
解釋:切割視頻部分,從0分10秒開始,到1分10秒,時間長度為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中播放,不需要另外安裝插件。上面兩條命令,表示兩遍壓縮。為提高速度,也可以只實用第一條做單次壓縮。輸出視頻的fps為25。
任務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
解釋:這個過程由四條命令組成。上面的例子中,
第一步:切割部分為 1分59秒開始,到3分41.5秒結束,長度102.5秒。用戶需自己計算切割部分,設定上述參數。
第二步:用sox對音頻開頭3秒鐘做一個淡入效果(聲音逐漸增強)
第三步:用sox對音頻結束3.5秒鐘做一個淡出效果(聲音逐漸衰減)
第四步:將lame處理好的音頻重新編碼成160kbps的mp3檔
其中,第二、第三步是可以省略的。
任務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,圖像系列的fps為25,輸出視頻檔的fps為25. 視頻編碼為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的例子中,還提供了額外的切割選擇功能。切割的部分從0分10秒開始,到0分15秒結束,長達5秒。同時畫面也被切割,切割的位置從座標(80,60)開始,寬度480圖元,高度360圖元。這裏坐標系以螢幕左上角為(0,0).
任務13: 將 midi檔轉換為mp3檔
timidity input.mid -Ow
lame -b 160 -h -k input.wav output.mp3
解釋:第一條命令使用timidity將midi轉換為wav檔,第二條命令用lame將wav轉換為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檔,第二步用ffmpeg將wav檔轉換為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
—————
使用 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