【视频】视频基本参数介绍
視頻(Video)泛指將一系列靜態(tài)影像以電信號(hào)的方式加以捕捉、紀(jì)錄、處理、儲(chǔ)存、傳送與重現(xiàn)的各種技術(shù)。
連續(xù)的圖像變化每秒超過(guò)24幀(frame)畫(huà)面以上時(shí),根據(jù)視覺(jué)暫留原理,人眼無(wú)法辨別單幅的靜態(tài)畫(huà)面;看上去是平滑連續(xù)的視覺(jué)效果,這樣連續(xù)的畫(huà)面叫做視頻。
單純傳輸視頻畫(huà)面,視頻量非常大,對(duì)現(xiàn)有的網(wǎng)絡(luò)和存儲(chǔ)來(lái)說(shuō)是不可接受的。
為了能夠使視頻便于傳輸和存儲(chǔ),人們發(fā)現(xiàn)視頻有大量重復(fù)的信息,如果將重復(fù)信息在發(fā)送端去掉,在接收端恢復(fù)出來(lái),這樣就大大減少了視頻數(shù)據(jù)的文件,因此有了H.264視頻壓縮標(biāo)準(zhǔn)。
視頻文件格式
視頻文件后綴都有諸如mp4、rmvb、mkv、avi等等,這些是文件的擴(kuò)展名,也就是視頻文件格式
視頻編碼方式
指視頻文件格式中視頻流數(shù)據(jù)的壓縮編碼方式,MPEG-4、MPEG-4/AVC、H.264等等
幀率
表示一秒播放的視頻中有多少個(gè)幀,單位是(Frame Per Second)簡(jiǎn)稱:FPS或“赫茲”(Hz)以及Gop(表示多少秒一個(gè)I幀),人眼能接受的視頻連續(xù)播放的最小幀率為25幀/秒。
幀是組成視頻的基本單位。視頻文件本身是由很多連續(xù)的圖片組成,當(dāng)這些圖片以一定的時(shí)間間隔顯示時(shí)就是所謂的視頻播放,而人眼感官視頻連續(xù)最大延時(shí)間隔為40ms,當(dāng)然每秒顯示的幀數(shù)越多畫(huà)面看起來(lái)就越流暢。
所以說(shuō)要想得到非常流暢的畫(huà)面感,幀率當(dāng)然是越高越好,但是超過(guò)60幀每秒估計(jì)人類也可能感知不出效果了。
ffmpeg -i input.mp4 –r 29.00 output.mp4
分辨率
單位英寸中所包含的像素點(diǎn)數(shù),影響圖像大小,與圖像大小成正比:分辨率越高,圖像越大;分辨率越低,圖像越小。
-s 640x360 ? ffmpeg -i input.mp4 -s 640x360 output.mp4
清晰度
在碼率一定的情況下,分辨率與清晰度成反比關(guān)系:分辨率越高,圖像越不清晰,分辨率越低,圖像越清晰。
在分辨率一定的情況下,碼率與清晰度成正比關(guān)系,碼率越高,圖像越清晰;碼率越低,圖像越不清晰。
碼率(比特率)
比特率,英文為 bit rate,描述每秒鐘輸出多少 KB 的參數(shù),單位是 Kbps,也就是 kbit/s,8Kbit/s = 1KB/s。也就是說(shuō)800Kbps意思就是每秒視頻就要占用100KB磁盤(pán)空間 ?規(guī)范寫(xiě)法是800Kbps,也就是800Kbit/s?
由于保存完整的一幀一幀圖片的視頻原文件太大,必須要通過(guò)某種視頻壓縮算法將視頻中的圖片壓縮,以減小視頻文件大小,那么讀者應(yīng)該可以想到,壓縮比越大,解壓縮還原后用來(lái)播放的視頻就會(huì)有越嚴(yán)重的失真,因?yàn)閴嚎s的同時(shí)不可避免的丟失了視頻中原來(lái)圖像的數(shù)據(jù)信息。
在理解這個(gè)的前提下,我來(lái)舉個(gè)例子,一個(gè)分辨率為1080P的原視頻(未經(jīng)壓縮)被壓縮成分別為4GB 和 1GB的兩個(gè)視頻文件。由于1GB的視頻的壓縮比更大,所以在觀看1GB視頻的明顯感覺(jué)到?jīng)]有4GB視頻清晰(雖然他們的分辨率都是1080P)。
所謂碼率,簡(jiǎn)單來(lái)說(shuō)就是指在壓縮視頻的時(shí)候給這個(gè)視頻指定一個(gè)參數(shù),用以告訴壓縮軟件期望的壓縮后視頻的大小。碼率的英文名為bps(bit per second),就是用平均每秒多少bit來(lái)衡量一個(gè)視頻大小。
比如那個(gè)被壓縮的1080P的視頻,假設(shè)它的長(zhǎng)度為100分鐘,大小為1GB。
100M=100X60S=6000s
1GB=1024MB= 1024X1024KB=1024X1024X1024Byte=1024X1024X1024X8bit=8589934592bit
那么這個(gè)視頻的碼率大概就是1.4Mbit/s(8589934592/6000),這個(gè)比特率在在線視頻中已經(jīng)是非常高的了,一般主流視頻平臺(tái)的最高碼率在1Mbit左右,比如直播網(wǎng)站斗魚(yú)的高清選項(xiàng)實(shí)際播放的視頻碼率是900Kbit/s(0.9Mbit)。
碼率控制對(duì)于在線視頻比較重要。因?yàn)樵诰€視頻需要考慮其能提供的帶寬。
那么,什么是碼率?很簡(jiǎn)單:?
bitrate = file size / duration?
比如一個(gè)文件20.8M,時(shí)長(zhǎng)1分鐘,那么,碼率就是:?
biterate = 20.8M bit/60s = 20.8*1024*1024*8 bit/60s= 2831Kbps
一般音頻的碼率只有固定幾種,比如是128Kbps,?
那么,video的就是?
video biterate = 2831Kbps -128Kbps = 2703Kbps。
那么ffmpeg如何控制碼率。?
ffmpg控制碼率有3種選擇,-minrate -b:v -maxrate?
-b:v主要是控制平均碼率。?
比如一個(gè)視頻源的碼率太高了,有10Mbps,文件太大,想把文件弄小一點(diǎn),但是又不破壞分辨率。?
ffmpeg -i input.mp4 -b:v 2000k output.mp4?
上面把碼率從原碼率轉(zhuǎn)成2Mbps碼率,這樣其實(shí)也間接讓文件變小了。目測(cè)接近一半。?
不過(guò),ffmpeg官方wiki比較建議,設(shè)置b:v時(shí),同時(shí)加上 -bufsize?
-bufsize 用于設(shè)置碼率控制緩沖器的大小,設(shè)置的好處是,讓整體的碼率更趨近于希望的值,減少波動(dòng)。(簡(jiǎn)單來(lái)說(shuō),比如1 2的平均值是1.5, 1.49 1.51 也是1.5, 當(dāng)然是第二種比較好)?
ffmpeg -i input.mp4 -b:v 2000k -bufsize 2000k output.mp4
-minrate 就簡(jiǎn)單了,在線視頻有時(shí)候,希望碼率波動(dòng),不要超過(guò)一個(gè)閾值,可以設(shè)置maxrate。?
ffmpeg -i input.mp4 -b:v 2000k -bufsize 2000k -maxrate 2500k output.mp4
總結(jié)
對(duì)于視頻來(lái)講,碼率應(yīng)該是最重要的參數(shù),從上面的例子我們看出,碼率直接與視頻壓縮比相關(guān)。直觀來(lái)講,碼率越大代表一個(gè)視頻的畫(huà)質(zhì)也清晰(不考慮各種壓縮算法的優(yōu)劣問(wèn)題)。
總結(jié)
以上是生活随笔為你收集整理的【视频】视频基本参数介绍的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: numpy 数组与矩阵的乘法理解
- 下一篇: 【探索测试篇】探索无界,BUG无限,让程