FFmpeg命令系列
在Mac下編譯 FFmpeg 闪幽,并在Android中使用
每天一點FFmpeg(1)
每天一點FFmpeg(2)
每天一點FFmpeg(3)
每天一點FFmpeg(4)
每天一點FFmpeg(5)
每天一點FFmpeg(6)
分辨率
分辨率的概念
分辨率是一個表示圖像精細(xì)程度的概念。通常用橫向和縱向點的數(shù)量來衡量感挥。每英寸的像素點越多淌实,分辨率越高冻辩,圖像越精細(xì)。
圖片大小計算:
假設(shè)一張像素為1080X1920(清晰度拆祈,寬1080個像素點恨闪,高1920個像素點)的圖片,
大小為約為1080X1920X3 bytes 約等于 6M
之所以圖片大小是像素寬高相乘還要乘3 是因為一個像素點需要至少三原色(RGB)來顯示像素點本身的顏色.例如#ffffff - 代表白色 ffffff是十六進制數(shù)放坏,也就是4位二進制數(shù)咙咽,三原色需要3X4X2位二進制數(shù),也就是3個八位淤年,一個八位是一個字節(jié)钧敞,所以我們需要3個字節(jié)來顯示一個像素點。
改變視頻文件分辨率FFmpeg命令
1麸粮、使用 參數(shù)選項 -s wxh
溉苛,w
為寬度,h
為高度弄诲,單位px
還是使用demo.mp4愚战,視頻的原信息為:
把視頻的分辨率修改為 320 x 240:
ffmpeg -y -i demp.mp4 -s 320x240 demp-320x240.mp4
執(zhí)行結(jié)果
ffmpeg還支持了一些視頻預(yù)定義尺寸如下圖:
下面兩個命令齐遵,運行后是同樣的效果凤巨。
ffmpeg -y -i demp.mp4 -s 320x240 demp-320x240.mp4
ffmpeg -y -i demp.mp4 -s vga demp-320x240.mp4
2、使用scale filer調(diào)整分辨率
-vf scale=width:height[:interl={1|0|-1}][:eval={init|frame}]
參數(shù)說明:
-vf: video fliter
width:scale的寬度 (必填)
height:scale的高度(必填)
interl:
Set the interlacing mode. It accepts the following values:
‘1’
Force interlaced aware scaling.
‘0’
Do not apply interlaced scaling.
‘-1’
Select interlaced aware scaling depending on whether the source frames are flagged as interlaced or not.
Default value is ‘0’.
eval
Specify when to evaluate width and height expression. It accepts the following values:
‘init’
Only evaluate expressions once during the filter initialization or when a command is processed.
‘frame’
Evaluate expressions for each incoming frame.
Default value is ‘init’.
Scale 還有一些額外的常量洛搀。
| 常量 | 描述 |
| -------- |: -----: |
| in_w ,iw | 輸入視頻文件的寬度|
| in_h佑淀,ih| 輸入視頻文件的高度 |
| out_w留美,ow| 輸出視頻文件的寬度|
| out_h,oh| 輸出視頻文件的高度|
| a| iw / ih|
舉例:
1.把輸入視頻文件縮放200 x 100,下面的命令效果都一樣:
ffmpeg -y -i demp.mp4 -vf scale=200x100 demo-200x100.mp4
ffmpeg -y -i demp.mp4 -vf scale=200:100 demo-200x100.mp4
ffmpeg -y -i demp.mp4 -vf scale=w=200:h=100 demo-200x100.mp4
2.把輸入視頻文件縮放為原來的2倍谎砾,下面的命令效果都一樣:
ffmpeg -y -i demp.mp4 -vf scale=2*iw:2*ih demo-2double.mp4
ffmpeg -y -i demp.mp4 -vf scale=2*in_w:2*in_h demo-2double.mp4
3.在不知道視頻分辨率的情況下逢倍,保證調(diào)整的分辨率與源視頻有相同的橫縱比
假如寬度固定480,高度成比例:
ffmpeg -y -i demp.mp4 -vf scale=480:480/a dem0-a.mp4
ffmpeg -y -i demp.mp4 -vf scale=480:-1 dem0-a.mp4
同樣的景图,假如高度固定640较雕,寬度成比例:
ffmpeg -y -i demp.mp4 -vf scale=640*a:640 dem0-a.mp4
ffmpeg -y -i demp.mp4 -vf scale=-1:640 dem0-a.mp4
END.