2016年1月12日

ffmpeg常用指令介紹

以下內容轉於 此處

ffmpeg下載點(微軟平台)

ffmpeg -formats:查看ffmpeg支援的格式
D=解碼,E=編碼

ffmpeg -i (檔案名稱):查看檔案資訊,如解析度、bitrate

mp4轉檔範例(windows):
ffmpeg -i will.MTS -s 640x480 -b:v 500k -vcodec libx264 -r 29.97 -acodec libvo_aacenc -b:a 48k -ac 2 -ar 44100 -profile:v baseline -level 3.0 -f mp4 -y will.mp4

mp4轉檔範例(linux):
ffmpeg -i (檔案) -s 640x480 -b 500k -vcodec libx264 -r 29.97 -acodec libfaac -ab 48k -ac 2 -ar 44100 -profile baseline -level 3.0 -f mp4 -y (新檔名).mp4

-i : 指輸入的檔案名稱
-f : 強迫輸出的檔案格式。
-s : 畫面的解析度,格式是 wxh
-b:指定影像的bitrate
-vcodec : 指定影像的編碼格式
-r : 設定fps。
-acodec : 指定聲音的編碼格式
-ab : 指定聲音的bitrate
-ac : 設定聲音的聲道數。1指是的單聲道
-ar : 指定聲音的取樣頻率,一般預設是44100
-profile:指定profile
-level:指定level
-f:強迫輸出格式
-y:若檔名重覆即不詢問直接覆蓋

wmv轉檔設定
-vcodec wmv2
-acodec wmav2

flv轉檔設定
-vcodec flv
-acodec libmp3lame

ffmpeg 影片切割
-ss 01:00:00 指定從01:00:00開始切割
-t 00:00:30 切割00:00:30秒

jpg基本擷圖範例
ffmpeg -i test.flv -an -ss 00:00:10 -y test.jpg

jpg進階擷圖範例
ffmpeg -i test.flv -an -ss 00:00:42 -r 10 -vframes 70 -y NolanRyan-%d.jpg
-i:影片名稱
-an:把音訊 audio 取消
-ss:00:00:42 從第 42 秒鐘開始擷取
-r:10 每秒抓10張圖 (單位是 Hz,所以這個值設得越高,每秒鐘抓出來的圖檔越多)
-vframes:70 總共要抓 70 張圖,與上面的 -r 10 搭配之下,表示要抓長達 70/10 = 7 秒鐘的影像,並轉換成圖檔。
-y %d.jpg:表示抓出來的圖檔副檔名為 jpg,而檔名 %d 表示圖檔檔名會以數字 digit 的型式自動編號。
(此例會存成 NolanRyan-1.jpg NolanRyan-2.jpg ... NolanRyan-70.jpg)

查詢電腦中影像或聲音擷取裝置的名稱for windows
ffmpeg -list_devices true -f dshow -i dummy

ffmpeg版encoder
ffmpeg.exe -r 29.97 -f dshow -s 640x480 -i video="USB 2.0 VGA UVC WebCam":audio="Microphone (Realtek High Defini" -vcodec libx264 -acodec libvo_aacenc -f flv rtmp://192.168.0.164/live/test

左右翻轉
ffmpeg -i foo.avi -vf hflip hflip.avi
上下翻轉
ffmpeg -i foo.avi -vf vflip vflip.avi
順時針旋轉 90 度
ffmpeg -i foo.avi -vf transpose=1 transpose.avi



以下參考資料來源於此


ffmpeg
一般用來作轉檔用途
參數說明:
-i : 輸入的檔案
-fromats :顯示可用的格式,編解碼的,協議的...
-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 :輸出影像的大小,例如:800x600...

-acodec codec :使用codec編解碼
-ab bitrate :輸出音訊的位元率(bitrate),預設 = 64K
-ar freq  :   輸出音訊的取樣頻率,預設 = 44100Hz
-ac channels :   輸出音訊的聲道數,1或2(Stereo)

-ss time: 開始轉檔的影片時間,單位(秒)
-t duration :片長

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

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

沒有留言:

張貼留言